iOS逆向工具08-codeSign重簽名

一.重簽名是啥

  1. 越獄手機(jī)已經(jīng)破解了系統(tǒng)權(quán)限,不需要驗(yàn)證簽名,所以可以安裝任何macho文件(任何應(yīng)用)
  2. 想要把一個(gè)ipa文件裝到iOS手機(jī)上運(yùn)行,必須經(jīng)過iOS手機(jī)對ipa中mach-o文件的簽名驗(yàn)證.
  3. 如果我們修改了ipa中mach-o的內(nèi)容,那么便過不了iOS手機(jī)原有的簽名驗(yàn)證.
  4. 所以我們需要重簽名,將ipa中mach-o文件的簽名和iOS手機(jī)的簽名保持一致性.
  5. 重簽名的應(yīng)用可以將ipa安裝到非越獄機(jī)上.

二. 準(zhǔn)備工作

  • 使用codesign -vv -d WeChat.app查看WeChat的簽名信息
Executable=/Users/LYK/Desktop/My_iOS/tweak_WeChat/Payload/WeChat.app/WeChat
Identifier=com.tencent.xin
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20500 size=1573403 flags=0x0(none) hashes=24579+7 location=embedded
Signature size=4390
Authority=Apple iPhone OS Application Signing
Authority=Apple iPhone Certification Authority
Authority=Apple Root CA
Info.plist entries=66
TeamIdentifier=88L2Q4487U
Sealed Resources version=2 rules=22 files=1388
Internal requirements count=1 size=96
  • 使用security find-identity -v -p codesigning查看我們的證書
1) 2FD3F12C1331F6DA6D95AD91318C251021B78C6C "iPhone Developer: jing liu (98KRJBJXD8)"

三.使用

1.刪除掉ipa中的PlugIns文件夾
2.刪除掉ipa中的Watch文件夾

  1. Frameworks文件下的framework 一一簽名
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" mars.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" marsbridgenetwork.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" matrixreport.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" MultiMedia.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" QMapKit.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" TXLiteAVSDK_Smart_No_VOD.framework
codesign -fs "iPhone Developer: jing liu (98KRJBJXD8)" WCDB.framework
  1. chmod +x WeChat給與其執(zhí)行權(quán)限
  2. 修改 info.plist文件的bundleID,防止和手機(jī)上已有的bundleID重復(fù)(重復(fù)了就安裝不上).
  3. 從development_pp.mobileprovision文件里抽取entitlements文件
    ①:security cms -D -i embedded.mobileprovision > temp.plist
    /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.plist > entitlements.plist
    ③刪除 temp.plist
  4. entitlements.plist復(fù)制到WeChat.app同級路徑,對整個(gè)包簽名
    codeSign -fs "iPhone Developer: jing liu (98KRJBJXD8)" --no-strict --entitlements entitlements.plist WeChat.app
  5. 使用codesign -vv -d WeChat.app查看重簽過的WeChat
Executable=/Users/LYK/Desktop/My_iOS/tweak_WeChat/Payload/WeChat.app/WeChat
Identifier=com.tencent.yk
Format=app bundle with Mach-O thin (arm64)
CodeDirectory v=20400 size=786802 flags=0x0(none) hashes=24579+5 location=embedded
Signature size=4823
Authority=iPhone Developer: jing liu (98KRJBJXD8)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=Aug 8, 2019 at 19:18:20
Info.plist entries=66
TeamIdentifier=MQW9JGK5AS
Sealed Resources version=2 rules=10 files=1201
Internal requirements count=1 size=172
  1. 將簽名好的app放到Payload文件夾中,zip -ry WeChat.ipa Payload,得到WeChat.ipa
  2. 打開xcode -> window -> Devices and Simulators -> +號 安裝ipa.(前提是此iphone在pp文件的設(shè)備列表里面)

四.腳本簽名

下面附腳本簽名,需要修改少量的東西,例如開發(fā)者賬號.

#! /bin/bash
#
#將mobileprovision和ipa放到同一目錄下,給應(yīng)用重簽名
#
developerName="iPhone Developer: jing liu (98KRJBJXD8)"


read -p "請輸入文件夾的路徑:" path
tempPath="$path/temp"
rm -rf $tempPath
mkdir $tempPath
unzip -oqq "$path/*.ipa" -d $tempPath
appPath=$(set -- "$tempPath/Payload/"*.app; echo "$1")
cd ${appPath}

#1.刪除掉ipa中的PlugIns文件夾
rm -rf ${appPath}"/PlugIns"

#2.刪除掉ipa中的Watch文件夾
rm -rf ${appPath}"/Watch"

#3.將Frameworks文件下的framework 一一簽名
cd ${appPath}"/Frameworks"
for frameworkName in `ls`
do
    codesign -fs "$developerName" $frameworkName
done
cd ..


#4.給 WeChat 執(zhí)行權(quán)限   (/Users/LYK/Desktop/WeChat.app    截取到WeChat)
rightPath=`echo ${appPath##*/}`   #WeChat.app
chmod +x `echo ${rightPath%.*}`   #WeChat

#5.修改 info.plist文件的bundleID,防止和手機(jī)上已有的bundleID重復(fù)(重復(fù)了就安裝不上).
read -p "請輸入新的bundleID:" newBI
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $newBI" info.plist

#6.從development_pp.mobileprovision文件里抽取entitlements文件
cd $path
security cms -D -i development_pp.mobileprovision > temp.plist
/usr/libexec/PlistBuddy -x -c 'Print :Entitlements' temp.plist > entitlements.plist

#7.對整個(gè)包簽名
codeSign -fs "$developerName" --no-strict --entitlements entitlements.plist $appPath

#8.生成新的ipa包
mkdir Payload
mv $appPath ./Payload
zip -ry new.ipa Payload

if(($?==0))
then
    echo "??重簽完成..."
else
    echo "壓縮失敗"
fi

rm -rf Payload
rm -rf $tempPath
rm temp.plist
rm entitlements.plist
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鹦倚,一起剝皮案震驚了整個(gè)濱河市鼓寺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖悔橄,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異稻扬,居然都是意外死亡外傅,警方通過查閱死者的電腦和手機(jī)蹦哼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門鳄哭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纲熏,你說我怎么就攤上這事妆丘〕恚” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵飘痛,是天一觀的道長珊膜。 經(jīng)常有香客問我,道長宣脉,這世上最難降的妖魔是什么车柠? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮塑猖,結(jié)果婚禮上竹祷,老公的妹妹穿的比我還像新娘。我一直安慰自己羊苟,他們只是感情好塑陵,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蜡励,像睡著了一般令花。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凉倚,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天兼都,我揣著相機(jī)與錄音,去河邊找鬼稽寒。 笑死扮碧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的杏糙。 我是一名探鬼主播慎王,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宏侍!你這毒婦竟也來了赖淤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谅河,失蹤者是張志新(化名)和其女友劉穎漫蛔,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體旧蛾,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年蠕嫁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锨天。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剃毒,死狀恐怖病袄,靈堂內(nèi)的尸體忽然破棺而出搂赋,到底是詐尸還是另有隱情,我是刑警寧澤益缠,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布脑奠,位于F島的核電站,受9級特大地震影響幅慌,放射性物質(zhì)發(fā)生泄漏宋欺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一胰伍、第九天 我趴在偏房一處隱蔽的房頂上張望齿诞。 院中可真熱鬧,春花似錦骂租、人聲如沸祷杈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽但汞。三九已至,卻和暖如春互站,著一層夾襖步出監(jiān)牢的瞬間私蕾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工云茸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留是目,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓标捺,卻偏偏與公主長得像懊纳,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子亡容,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 一.iOS簽名 蘋果為了解決應(yīng)用濫用 a.限制在蘋果后臺注冊過的手機(jī)才可以安裝嗤疯,b.限制簽名只能針對某一個(gè)...
    木羊君閱讀 1,297評論 0 0
  • 一.常識 查看設(shè)備輸出信息:xcode - window - devices and simulators - l...
    李永開閱讀 1,125評論 1 3
  • 為了表示我對簡書『飽醉豚』事件的不滿,簡書不再更新闺兢,后續(xù)有文章只更新 個(gè)人博客和 掘金 歡迎移步 個(gè)人博客或者 掘...
    eagleyz閱讀 1,399評論 0 3
  • 為了表示我對簡書『飽醉豚』事件的不滿茂缚,簡書不再更新,后續(xù)有文章只更新 個(gè)人博客和 掘金 歡迎移步 個(gè)人博客或者 掘...
    eagleyz閱讀 7,227評論 0 4
  • ——送給憂傷的小虎 一楓堂的啤酒 融不化冰沙的心 王府井流動(dòng)人群 仿佛夜空漣漪的光影 一首《突然好想你》 濕紅了誰...
    河對岸的窗閱讀 327評論 0 1