非越獄機(jī)通過(guò)Xcode對(duì)ipa進(jìn)行重簽名

  • 前提:越獄ipa包(可以在pp助手下載),Xcode员凝,真機(jī)
    重新打包的過(guò)程大致是:

1.解壓ipa包
2.刪除extension和watch(如果有的話就刪除了 钞翔,因?yàn)閭€(gè)人賬號(hào)是不能給插件簽名的削彬,至于watch就不用用了嘛)
3.修改Info.plist文件,要保持目標(biāo)app包中Info.plist文件中的Bundle identifier和工程中的BundleID 一致
4.給macho文件添加執(zhí)行權(quán)限
5.重簽Frameworks(因?yàn)閄code運(yùn)行工程的時(shí)候是不會(huì)給frameworks重新簽名的)

大致的步驟就是以上幾點(diǎn)。接下來(lái)先給大家介紹一個(gè)用腳本快速重簽的方法

1.首先新建一個(gè)Xcode工程 在工程目錄下新建一個(gè)APP的文件夾
1.png

2.在工程中新增一個(gè)腳本運(yùn)行 如圖


2.png

然后在腳本里粘入如下代碼


ASSETS_PATH="${SRCROOT}/APP"

TEMP_PATH="${SRCROOT}/temp"

TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"


#刪除temp文件夾下的內(nèi)容 然后新建
rm -rf "${SRCROOT}/temp"
mkdir -p "${SRCROOT}/temp"


#-----------------------------
#1.解壓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"

#-----------------------------
#2. 將解壓出來(lái)的app拷貝到工程下
#BUILT_PRODUCTS_DIR 工程生成包的路徑
#TARGET_NAME
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
#echo "app路徑是:$TARGET_IPA_PATH"

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


#-----------------------------
#3. 刪除extension和watch
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/watch"

#-----------------------------
#4. 修改 info.plist

# 設(shè)置 "Set : KEY Value" "目標(biāo)文件路徑"

#/usr/libexec
# CFBundleIdentifier
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

#-----------------------------
#5. 給可執(zhí)行文件上執(zhí)行權(quán)限
#拿到macho 文件路徑
APP_BINARY=`plutil -convert xml1 -o - $TARGET_APP_PATH/Info.plist|grep -A1 Exec|tail -n1|cut -f2 -d\>|cut -f1 -d\<`
#上權(quán)限
chmod +x "$TARGET_APP_PATH/$APP_BINARY"


#-----------------------------
#6.重簽名第三方app 第三方的frameworks
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ] ; then
#echo "六六六:$FRAMEWORK";
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
#echo "包的路徑:$FRAMEWORK"
#簽名
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
    done
fi
  1. 現(xiàn)在將你要重簽的ipa包放到工程下的APP文件夾下使兔,然后運(yùn)行就ok了。

注意: 這個(gè)只是一個(gè)簡(jiǎn)單的重簽藤韵,我拿微信試的ok虐沥,但是qq不行,大家也可以下載MonkeyDev進(jìn)行ipa重簽泽艘。

  • 補(bǔ)充: 如果大家覺(jué)得每次都要復(fù)制這么多在工程中很復(fù)雜欲险,可以這么做:

1.新建一個(gè)shell.sh腳本文件,然后將上面那個(gè)腳本復(fù)制進(jìn)去匹涮。

2.我們?cè)诠こ讨型瑯有枰赽uile Phases中添加一個(gè)run script 天试,在里面寫(xiě)上你的shell.sh的路徑就ok啦,

3.最后然低,你還需要給腳本添加執(zhí)行權(quán)限喜每,cd 到腳本路徑下 $ chmod +x shell.sh

====================分割線==================

上面講了用腳本自動(dòng)重簽名,接下來(lái)說(shuō)一下用命令重簽
首先將我們的目標(biāo)ipa解壓脚翘,在Payload中拿出xxx.app文件 灼卢,xxx.app文件在下文中統(tǒng)稱為 目標(biāo)app

1.新建一個(gè)工程,用真機(jī)運(yùn)行一下来农,然后可以看見(jiàn)如下圖位置有一個(gè)autoSign.app的包


3.png

2.接著我們show in finder 鞋真。在文件中用目標(biāo)app替換原來(lái)的autoSign.app包,注意:我們要把目標(biāo)app的名字改成autoSign.app的名字

3.現(xiàn)在我們已經(jīng)替換了app包了沃于,接著我們右鍵顯示包內(nèi)容涩咖,在包內(nèi)我們要做以下幾個(gè)事

1.修改Info.plist 中的Bundle identifier 海诲,這個(gè)Bundle Identifier必須和工程中的一致

2.刪除插件和watch包 刪除PlugIns文件夾和Watch文件夾(如果有的話就刪)

3.對(duì)framework進(jìn)行重簽名 首先用終端cd到xxx/xxx.app/Framework目錄下 。
用命令 $ codesign -fs "iPhone Developer: XXX (Q6NXXXXX)" xxx.framework 其中 "iPhone Developer: XXX (Q6NXXXXX)" 是你要用的證書(shū)檩互。
ps: 查看證書(shū)命令 $ security find-identity -p codesigning

4.手動(dòng)給macho文件添加執(zhí)行的權(quán)限
cd到目標(biāo)app路徑下 特幔,執(zhí)行命令 $ chmod +x autoSign,工程的macho文件和我們的工程是同名的闸昨,比如我的app叫autoSign.app ,那么macho文件叫autoSign蚯斯。將autoSign替換成你的目標(biāo)app中的macho文件。

5.在次運(yùn)行你的工程

=================分割線======================
隨便說(shuō)說(shuō)饵较,我也不知道怎么分類了拍嵌。

  • 配置文件相關(guān)
    1. cd 到配置文件路徑下
      $ cd /Users/xxx/Library/MobileDevice/Provisioning\ Profiles
      然后我們可以通過(guò) $ls查看當(dāng)前文件夾下的文件列表
    2. 查看某個(gè)配置文件的具體信息
      $ security cms -D -I xxx.mobileprovision
  • 查看簽名信息
    先解壓ipa包,然后cd到包里的Payload路徑下 循诉,然后執(zhí)行命令
    $ codesign -vv -d xxx.app
    我們拿出一小段來(lái)看
Executable=/Users/donkey/Desktop/微信-6.6.5(越獄應(yīng)用)/Payload/WeChat.app/WeChat
Identifier=com.tencent.xin
Format=app bundle with Mach-O universal (armv7 arm64)
CodeDirectory v=20200 size=503759 flags=0x0(none) hashes=15735+5 location=embedded
Signature size=4297
Authority=(unavailable)
Info.plist=not bound
TeamIdentifier=88L2Q4487U
Sealed Resources version=2 rules=19 files=822
Internal requirements count=1 size=96

Authority字段表面沒(méi)有簽名信息横辆。這是下載別人已經(jīng)砸過(guò)殼的應(yīng)用。大家可以自行對(duì)比一下正版的應(yīng)用

  • 查看可執(zhí)行文件的加密信息 可以用這個(gè)用來(lái)看app包有沒(méi)有被加密
    $otool -l WeChat | grep crypt
    cryptid 0說(shuō)明沒(méi)有加密 cryptid 1說(shuō)明加密

  • 全命令簽名茄猫,不通過(guò)Xcode那種 狈蚤。
    1.需要修改描述文件的指向,先通過(guò)查看描述文件的命令打開(kāi)描述文件(配置文件)
    2.取出下面一段生成一個(gè)Plist文件划纽,放在與目標(biāo)app同級(jí)

    <dict>
        <key>keychain-access-groups</key>
        <array>
            <string>5AGKMCU79F.*</string>
        </array>
        <key>get-task-allow</key>
        <true/>
        <key>application-identifier</key>
        <string>5AGKMCU79F.*</string>
        <key>com.apple.developer.team-identifier</key>
        <string>5AGKMCU79F</string>
    </dict>

3.簽名整個(gè)app
codesign -fs "iPhone Developer: xxx (Q6xxxxxx)" --no-strict --entitlements=en.plist xxx.app
PS: 之前的去插件脆侮、簽名framework、給macho文件權(quán)限依舊要做阿浓,然后才是第2點(diǎn)的修改描述文件他嚷,第3點(diǎn)的簽名整個(gè)app

4.將新簽名好的app打包成ipa ,cmd + shift +2打開(kāi)設(shè)備芭毙,如下圖

4.png
可以將ipa運(yùn)行到手機(jī)上筋蓖。

================分割線====================

安裝好后進(jìn)行動(dòng)態(tài)的調(diào)試 Debug -> Attach to Process -> 你要調(diào)試的進(jìn)程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市退敦,隨后出現(xiàn)的幾起案子粘咖,更是在濱河造成了極大的恐慌,老刑警劉巖侈百,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓮下,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡钝域,警方通過(guò)查閱死者的電腦和手機(jī)讽坏,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)例证,“玉大人路呜,你說(shuō)我怎么就攤上這事。” “怎么了胀葱?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵漠秋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我抵屿,道長(zhǎng)庆锦,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任轧葛,我火速辦了婚禮搂抒,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘尿扯。我一直安慰自己燕耿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布姜胖。 她就那樣靜靜地躺著,像睡著了一般淀散。 火紅的嫁衣襯著肌膚如雪右莱。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天档插,我揣著相機(jī)與錄音慢蜓,去河邊找鬼。 笑死郭膛,一個(gè)胖子當(dāng)著我的面吹牛晨抡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播则剃,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼耘柱,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了棍现?” 一聲冷哼從身側(cè)響起调煎,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎己肮,沒(méi)想到半個(gè)月后士袄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谎僻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年娄柳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艘绍。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赤拒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情需了,我是刑警寧澤跳昼,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站肋乍,受9級(jí)特大地震影響鹅颊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜墓造,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一堪伍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧觅闽,春花似錦帝雇、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至孕锄,卻和暖如春吮廉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背畸肆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工宦芦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人轴脐。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓调卑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親大咱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子恬涧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • 重簽名目的:越獄包重簽名運(yùn)行到非越獄手機(jī)進(jìn)行調(diào)試。 手動(dòng)重簽名大體步驟(以墨跡天氣app 為例子): 1.刪除插件...
    道道明明白白閱讀 5,174評(píng)論 3 2
  • 一 開(kāi)發(fā)者調(diào)試安裝app到手機(jī)的簽名過(guò)程 Mac電腦生成公鑰M和私鑰M 公鑰M傳給蘋(píng)果服務(wù)器碴巾,蘋(píng)果服務(wù)器的私鑰A對(duì)...
    meryin閱讀 8,398評(píng)論 5 16
  • 重簽名的流程: 1.干掉插件Plugins文件夾里面的內(nèi)容! 2.Watch 直接干掉! 3.對(duì) Framewor...
    iOS小肖閱讀 586評(píng)論 0 0
  • 前幾天在微博看到一個(gè)“好聽(tīng)的名字”的征集碳锈,看到許多從古語(yǔ)里摘出來(lái)的名字,諸如“徽因”欺抗、“清和”售碳、“靜姝”、“安...
    安的嘉子閱讀 415評(píng)論 0 2
  • 我習(xí)慣走走停停间景,拍路過(guò)的風(fēng)景。僅僅是風(fēng)景艺智! 舊日的秋倘要,我們不再言語(yǔ),那是過(guò)去的時(shí)光十拣,也是心底的...
    蕭昨閱讀 260評(píng)論 0 1