iOS逆向之旅(進(jìn)階篇) — 重簽名APP(二)

使用Xcode進(jìn)行重簽名【這種方式就相對(duì)簡(jiǎn)單很多了】

步驟:
1.新建一個(gè)Xcode工程
2.從微信的ipa包解壓后拿出.app文件李丰,進(jìn)行替換


image.png

3.接下操作該包

  • 刪除PlugIns/Watch文件夾
  • 替換成自己的bundleid,找到info.plist進(jìn)行修改

修改info.plist里面的Bundle ID 【這個(gè)Bundle ID 必須跟我們剛新建的工廠的Bundle ID一致】


image.png
  • 用證書(shū)重簽名Framewroks下面的框架

簽名動(dòng)態(tài)庫(kù)【這里需要把.app/Frameworks目錄下的所有動(dòng)態(tài)庫(kù)進(jìn)行簽名】
codesign -fs "iPhone Developer: XXX (XXXXXXXX)" mars.framework
codesign -fs "iPhone Developer: XXX (XXXXXXXX)" MMCommon.framework
codesign -fs "iPhone Developer: XXX (XXXXXXXX)" MultiMedia.framework
codesign -fs "iPhone Developer: XXX (XXXXXXXX)" WCDB.framework

4.Xcode運(yùn)行灿巧,便可以把該WeChat跑到自己的手機(jī)上了

使用XCode腳本自動(dòng)簽名

在項(xiàng)目下創(chuàng)建一個(gè)APP的文件夾,只要在哪個(gè)文件夾放置ipa包靠粪,就能制動(dòng)重簽名安裝到自己的手機(jī)【仿照Monkey】
1.先將需要重簽名的ipa包放置到APP目錄下

image.png

2.往項(xiàng)目添加一個(gè)腳本文件

image.png

3.往腳本中寫(xiě)入自動(dòng)化簽名步驟

image.png

腳本信息(其實(shí)這些步驟都是我們手動(dòng)簽名做的事)

# ${SRCROOT} 這個(gè)是工程目錄
TEMP_PATH="${SRCROOT}/Temp"
# 資源文件夾
ASSETS_PATH="${SRCROOT}/APP"
# ipa包路徑
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"

#新建Temp文件夾
rm -rf "${TEMP_PATH}"
mkdir -p "${TEMP_PATH}"

# --------------------------------------
# 1. 解壓IPA 到Temp下
# 解壓ipa包到Temp目錄
unzip -oqq "$TARGET_IPA_PATH" -d "$TEMP_PATH"
# 拿到解壓的臨時(shí)App的路徑
TEMP_APP_PATH=$(set -- "$TEMP_PATH/Payload/"*.app;echo "$1")
# 打印一下
echo "TEMP_APP_PATH:$TEMP_APP_PATH"

# -------------------------------------
# 2. 把解壓出來(lái)的.app拷貝進(jìn)去
#BUILT_PRODUCTS_DIR 工程生成的APP包路徑
#TARGET_NAME target名稱
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "TARGET_APP_PATH:$TARGET_APP_PATH"

rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH/"


# -------------------------------------
# 3. 為了是重簽過(guò)程簡(jiǎn)化聊疲,移走extension和watchAPP. 此外個(gè)人免費(fèi)的證書(shū)沒(méi)辦法簽extension
echo "Removing AppExtensions"
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"

# -------------------------------------
# 4. 更新 Info.plist 里的BundleId
# 設(shè)置 "Set :KEY Value" "目標(biāo)文件路徑.plist"
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

# 5.給可執(zhí)行文件上權(quán)限
#添加ipa二進(jìn)制的執(zhí)行權(quán)限,否則xcode會(huì)告知無(wú)法運(yùn)行
#這個(gè)操作是要找到第三方app包里的可執(zhí)行文件名稱,因?yàn)閕nfo.plist的 'Executable file' key對(duì)應(yīng)的是可執(zhí)行文件的名稱
#我們grep 一下,然后取最后一行, 然后以cut 命令分割搭儒,取出想要的關(guān)鍵信息穷当。存到APP_BINARY變量里
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#這個(gè)為二進(jìn)制文件加上可執(zhí)行權(quán)限 +X
chmod +x "$TARGET_APP_PATH/$APP_BINARY"

# -------------------------------------
# 6. 重簽第三方app Frameworks下已存在的動(dòng)態(tài)庫(kù)
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
#遍歷出所有動(dòng)態(tài)庫(kù)的路徑
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
echo "????????????FRAMEWORK : $FRAMEWORK"
#簽名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi

使用Monkeydev自動(dòng)簽名

步驟
image.png
  • 把砸了殼的IPA包放到Target目錄下
image.png

直接運(yùn)行就可以跑到我們的手機(jī)上了

Monkeydev的原理

我們到同樣的地方就能發(fā)現(xiàn),Monkeydev也有自己的腳本


image.png

里面也做了同樣重簽名的操作淹禾,這里有興趣的自己去看馁菜,我就不多做解釋了

【晚點(diǎn)我再把這幾個(gè)項(xiàng)目的源碼上傳分享出來(lái)...】

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市铃岔,隨后出現(xiàn)的幾起案子汪疮,更是在濱河造成了極大的恐慌,老刑警劉巖德撬,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件铲咨,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡蜓洪,警方通過(guò)查閱死者的電腦和手機(jī)纤勒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隆檀,“玉大人摇天,你說(shuō)我怎么就攤上這事】致兀” “怎么了泉坐?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)裳仆。 經(jīng)常有香客問(wèn)我腕让,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任纯丸,我火速辦了婚禮偏形,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘觉鼻。我一直安慰自己俊扭,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布坠陈。 她就那樣靜靜地躺著萨惑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仇矾。 梳的紋絲不亂的頭發(fā)上庸蔼,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音若未,去河邊找鬼朱嘴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛粗合,可吹牛的內(nèi)容都是我干的萍嬉。 我是一名探鬼主播,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼隙疚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼壤追!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起供屉,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤行冰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后伶丐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體悼做,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年哗魂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了肛走。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡录别,死狀恐怖朽色,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情组题,我是刑警寧澤葫男,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布,位于F島的核電站崔列,受9級(jí)特大地震影響梢褐,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一利职、第九天 我趴在偏房一處隱蔽的房頂上張望趣效。 院中可真熱鬧,春花似錦猪贪、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至斤寇,卻和暖如春桶癣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背娘锁。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工牙寞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人莫秆。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓间雀,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親镊屎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子惹挟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容