10-應(yīng)用重簽名

前言

本篇文章繼續(xù)逆向準(zhǔn)備的另一個(gè)基礎(chǔ)知識(shí)點(diǎn) ?? 應(yīng)用重簽名枷邪。首先介紹相關(guān)的概念,然后利用工具腳本自動(dòng)化2種方式诺凡,結(jié)合示例執(zhí)行一次重簽名的過程东揣。

一、重簽名

上篇文章09-應(yīng)用簽名詳細(xì)介紹了簽名的整個(gè)過程腹泌,簡(jiǎn)而言之嘶卧,簽名(signature)是蘋果公司的一種安全機(jī)制APP只有簽名有效才被iOS系統(tǒng)允許執(zhí)行凉袱。

1.1 重簽名的概念

重簽名芥吟,就是在APP原來的基礎(chǔ)上,用現(xiàn)有的簽名替換原來的簽名专甩。

1.2 為什么要重簽名

  1. 沒有源代碼的情況下钟鸵,你已經(jīng)對(duì)某個(gè)應(yīng)用進(jìn)行了資源修改(比如修改了啟動(dòng)圖圖標(biāo)等)。修改完成以后涤躲,如果想要讓APP可以正常使用棺耍,該APP一定要重新簽名然后壓縮成IPA文件。
  2. 如果你想讓你的APP 不經(jīng)過蘋果審核种樱,就可以私自發(fā)布HTTPS服務(wù)器上烈掠,不越獄也能安裝,且沒有設(shè)備臺(tái)數(shù)限制缸托,那么你就要把個(gè)人開發(fā)者簽名,替換成企業(yè)開發(fā)者In-House證書簽名瘾蛋,之后OTA發(fā)布就行了俐镐。
  3. 一個(gè)開發(fā)者的應(yīng)用,需要在另一個(gè)開發(fā)者帳號(hào)下發(fā)布到App Store哺哼。上傳的ipa包佩抹,是重簽名后的包。
  4. 過期或者失效簽名的應(yīng)用取董,正常使用需要重新簽名棍苹。

二、重簽名工具-CodeSign

codesign安裝Xcode就有茵汰,Xcode也是用的這個(gè)工具完成的簽名的流程枢里。簽名改動(dòng)的文件包含??

  1. 資源文件
  2. macho文件
  3. framework
  4. ...其它

2.1 終端命令

在利用codesign工具重簽名之前,我們先來了解下關(guān)于簽名的一些終端指令??
1. 查看簽名信息

codesign -vv -d xxx.app

2. 列出鑰匙串里可簽名的證書

security find-identity -v -p codesigning

3. otool分析macho文件信息并導(dǎo)出到指定文件

otool -l xxx > ~/Desktop/machoMessage.txt

其中cryptid0表示沒有用到加密算法(也就是脫殼的), 其它則表示加密栏豺。

也可以直接過濾查看是否砸殼??

otool -l xxx | grep cryptid

4. 強(qiáng)制替換簽名

codesign –fs “證書串” 文件名

codesign -fs "Apple Development: xxx@qq.com (9AN9M5S786)" andromeda.framework

5. 給文件添加權(quán)限

chmod +x 可執(zhí)行文件

6. 查看描述文件

security cms -D -i ../embedded.mobileprovision

7. macho簽名

codesign -fs “證書串” --no-strict --entitlements=權(quán)限文件.plist APP包

8. 將輸入文件壓縮為輸出文件

zip –ry 輸出文件 輸入文件 

2.2 codesign命令重簽名

這里以砸過殼微信(7.0.8)為例彬碱,使用免費(fèi)開發(fā)者賬號(hào)重簽名微信,然后安裝到非越獄手機(jī)上奥洼。(文章末尾會(huì)附上微信(7.0.8)ipa包

  1. 解壓縮.ipa包巷疼,Payload中找到.app,右鍵顯示包內(nèi)容灵奖。

需將后綴.ipa改為.zip嚼沿,才能解壓縮??

??由于免費(fèi)證書沒有辦法簽名PlugInsWatch,直接將這兩個(gè)文件夾刪除??

  1. 簽名Frameworks

逐個(gè)簽名Frameworks目錄下的framework(使用自己本機(jī)的免費(fèi)證書)??

codesign -fs "Apple Development: xxx@qq.com (9AN9M5S786)" andromeda.framework
  1. 確保要簽名的appmacho文件可執(zhí)行權(quán)限
?  WeChat.app ls -l WeChat
  1. 獲取免費(fèi)賬號(hào)對(duì)應(yīng)的描述文件

創(chuàng)建空工程使用免費(fèi)賬號(hào)&真機(jī)編譯獲運(yùn)行取描述文件瓷患。

在【設(shè)置】-【通用】-【描述文件】信任該描述文件骡尽。

接著將獲取到的描述文件拷貝到 WeChat app包中。

  1. 修改bundleId

找到WeChatinfo.plist修改BundleId為我們生成描述文件的BundleId??

  1. 獲取描述文件的權(quán)限
security cms -D -i embedded.mobileprovision

找到對(duì)應(yīng)的權(quán)限Entitlements??

<dict>
                                                                            
                <key>application-identifier</key>
        <string>J7C267M8SE.com.xl.-XFAlgorithmPrj.testWeChat</string>
                
                <key>keychain-access-groups</key>
        <array>
                <string>J7C267M8SE.*</string>
        </array>
                
                <key>get-task-allow</key>
        <true/>
                
                <key>com.apple.developer.team-identifier</key>
        <string>J7C267M8SE</string>
                                                        
    </dict>

接著創(chuàng)建一個(gè)Entitlements.plist文件尉尾,將權(quán)限內(nèi)容粘貼進(jìn)去??

權(quán)限文件(Entitlements.plist)拷貝到和PayloadWeChat.app同一目錄??

  1. 簽名Wechat
codesign -fs "Apple Development: xxx@qq.com (9AN9M5S786)" --no-strict --entitlements=entitlements.plist WeChat.app

再查看WeChat.app的簽名信息爆阶,就已經(jīng)替換了??

這個(gè)時(shí)候通過XcodeWeChat.app包安裝到手機(jī),應(yīng)該能正常安裝了??

然后通過debug->attach to process->WeChat就可以調(diào)試微信了??

??注意:這個(gè)時(shí)候不要用自己的常用賬號(hào)登錄重簽名的微信(有可能被封號(hào))沙咏。

小結(jié)

以上重簽名的步驟??

  1. 刪除插件以及帶有插件的.app包
    • PlugInsWatch文件夾
  2. 對(duì)Frameworks文件夾中的庫(kù)重簽名
    • codesign -fs "Apple Development: xxx@mail.com (xxxxxxxxxx)" andromeda.framework
  3. 對(duì)可執(zhí)行文件+X(可執(zhí)行)權(quán)限
    • chmod +x WeChat
  4. 添加描述文件
    • 創(chuàng)建空殼工程辨图,真機(jī)運(yùn)行,將描述文件安裝到手機(jī)
    • 系統(tǒng)設(shè)置中信任該描述文件
  5. 替換WeChat.app包中的info.plist的 BundleId(BundleId要和描述文件中的一致)
  6. 通過授權(quán)文件(entitlments)重簽名.app包
    • security cms -D -i embedded.mobileprovision 獲取描述文件的權(quán)限
    • 新建Entitlements.plist文件肢藐,將權(quán)限dict部分粘貼進(jìn)來
    • 用權(quán)限文件簽名App包:codesign -fs "Apple Development: xxx@mail.com (xxxxxxxxxx)" --no-strict --entitlements=entitlements.plist WeChat.app
  7. XCode安裝WeChat.app包故河,debug->attach to process->WeChat調(diào)試微信。

大功告成吆豹!????????????????????????????

三鱼的、利用Xcode重簽名調(diào)試三方應(yīng)用

以上是通過attach to process的方式調(diào)試微信的,那能不能像我們平時(shí)開發(fā)一樣痘煤,直接debug聯(lián)調(diào)呢凑阶?當(dāng)然能!請(qǐng)看下面步驟??

  1. 新建和微信同名工程WeChat
  1. 真機(jī)運(yùn)行該空工程
  2. 解壓微信的.ipa包衷快,并且刪除WatchPlugIns文件夾
  3. 重簽名Frameworks
  4. 修改BundleId
  5. 將修改后的WeChat.app替換空工程的ProductsWeChat.app
  1. 運(yùn)行
    這個(gè)時(shí)候Products工程中有WeChat.app宙橱,Xcode認(rèn)為有就直接使用這個(gè)了。這個(gè)時(shí)候就可以調(diào)試了(不需要attach

注意:??在某些系統(tǒng)下會(huì)出現(xiàn)啟動(dòng)重簽名微信黑屏蘸拔,建議通過腳本重簽名师郑。

四、SHELL腳本

shell是一種特殊的交互式工具调窍,它為用戶提供了啟動(dòng)程序宝冕、管理文件系統(tǒng)中文件以及運(yùn)行在系統(tǒng)上的進(jìn)程的途徑。Shell一般是指命令行工具邓萨。它允許你輸入文本命令地梨,然后解釋命令菊卷,并在內(nèi)核中執(zhí)行。
Shell腳本湿刽,也就是用各類命令預(yù)先放入到一個(gè)文本文件中的烁,方便一次性執(zhí)行的一個(gè)腳本文件。
最常用的相關(guān)指令??

4.1 腳本切換

chsh -s /bin/zsh

4.2 執(zhí)行腳本的幾種方式

首先新建一個(gè)shell腳本文件shell.sh诈闺,里面輸入終端指令??

可以先建一個(gè).txt文檔渴庆,再把后綴名改為.sh

mkdir shell1
cd shell1
touch test.txt

上圖中可知??

  1. bash FileNamezsh FileName
    • 作用:重新建立一個(gè)子shell(進(jìn)程)雅镊,在子shell中執(zhí)行腳本里面的句子襟雷。當(dāng)前環(huán)境沒有變化
  2. source FileName
    • 作用:在當(dāng)前shell環(huán)境中讀取并執(zhí)行FileName中的命令
    • 特點(diǎn):命令可以強(qiáng)行讓一個(gè)腳本去立即影響當(dāng)前的環(huán)境(一般用于加載配置文件)仁烹。
      命令會(huì)強(qiáng)制執(zhí)行腳本中的全部命令耸弄,而忽略文件的權(quán)限
  3. ./FileName
    • 作用:讀取并執(zhí)行文件中的命令卓缰。但有一個(gè)前提计呈,腳本文件需要有可執(zhí)行權(quán)限

4.3 MAC中shell種類

cd /private/etc
cat shells
  • bash ?? macOS默認(rèn)shell(老系統(tǒng))征唬,新系統(tǒng)切換為zsh了捌显。
  • csh ?? 被tcsh替換了
  • dash ?? 比bash小很多,效率高总寒。
  • ksh ?? 兼容bash
  • sh ?? 已經(jīng)被bash替換了
  • tcsh ?? 整合了csh提供了更多功能
  • zsh ?? 替換了bash

五扶歪、用戶組&文本 權(quán)限

剛才我們利用chmod +x修改了shell.sh的權(quán)限,那么我們來看看權(quán)限具體是個(gè)什么概念摄闸。

UnixLinux都是多用戶善镰、多任務(wù)的系統(tǒng),所以這樣的系統(tǒng)里面就擁有了用戶年枕、的概念炫欺。那么同樣文件的權(quán)限也就有相應(yīng)的所屬用戶所屬組
windows不同的是熏兄,unix竣稽、linuxmacOS都是多用戶的系統(tǒng)??

5.1 Mac文件屬性

Mac系統(tǒng)中可以通過ls -l指令查看當(dāng)前文件目錄下所有文件屬性霍弹,例如??

最左側(cè)紅框就是【權(quán)限】,往右依次是【鏈接】【所有者】【所屬組】【文件大小】【最后修改日期】【文件名稱】

5.2 權(quán)限

權(quán)限有10位??

上圖中??

  • 第1位文件類型d/-

    • d ?? 目錄(directory)
    • - ?? 文件
  • 后面9位,文件權(quán)限:

    • [r] ?? read娃弓,讀
    • [w] ?? write典格,寫
    • [x] ?? execute,執(zhí)行

??這三個(gè)權(quán)限的位置不會(huì)變台丛,依次是rwx耍缴。出現(xiàn)-對(duì)應(yīng)的位置代表沒有此權(quán)限砾肺。

  • 一個(gè)文件的完整權(quán)限分為三組:
    • 第一組 ?? 文件所有者權(quán)限
    • 第二組 ?? 這一組其它用戶權(quán)限
    • 第三組 ?? 非本組用戶的權(quán)限

5.3 chmod

  1. 文件權(quán)限的改變使用chmod命令。
  2. 設(shè)置方法有兩種 ?? 數(shù)字類型改變 和 符號(hào)類型改變防嗡。
  3. 文件權(quán)限分??
    • 三種身份 ?? [user][group][other]
    • 三個(gè)權(quán)限 ?? [read] [write] [execute]
5.3.1 數(shù)字類型

各個(gè)權(quán)限數(shù)字對(duì)照:r:4(0100) w:2(0010) x:1(0001)变汪,這么設(shè)計(jì)的好處是可以按位或。與我們開發(fā)中位移枚舉同理蚁趁。

示例
如果一個(gè)文件權(quán)限為[!–rwxr-xr-x]裙盾,則對(duì)應(yīng)??
User ?? 4+2+1 = 7
Group ?? 4+0+1 = 5
Other ?? 4+0+1 = 5
那么命令則為 ?? chmod 755 文件名

數(shù)字與權(quán)限的對(duì)應(yīng)表??

其中0代表沒有任何權(quán)限

5.3.2 符號(hào)類型

chmod [u(User)他嫡、g(Group)番官、o(Other)、a(All)] [+(加入)钢属、-(除去)徘熔、=(設(shè)置)] [r、w淆党、x] 文件名稱

例如??

chmod a+x test.txt

默認(rèn)是all酷师。

六、shell腳本自動(dòng)重簽名

腳本實(shí)現(xiàn)邏輯和codesign邏輯相同染乌。完整腳本如下??

#臨時(shí)解壓目錄
TEMP_PATH="${SRCROOT}/Temp"
#資源文件夾山孔,我們提前在工程目錄下新建一個(gè)APP文件夾,里面放ipa包(砸殼后的)
ASSETS_PATH="${SRCROOT}/APP"
#目標(biāo)ipa包路徑
TARGET_IPA_PATH="${ASSETS_PATH}/*.ipa"


#清空&創(chuàng)建Temp文件夾
rm -rf TEMP_PATH
mkdir -p TEMP_PATH


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

#2. 將解壓出來的.app拷貝進(jìn)入工程下
#2.1拿到當(dāng)前工程目標(biāo)Target路徑
# BUILT_PRODUCTS_DIR 工程生成的APP包的路徑
# TARGET_NAME target名稱
TARGET_APP_PATH="$BUILT_PRODUCTS_DIR/$TARGET_NAME.app"
echo "app path:$TARGET_APP_PATH"

#2.2刪除工程本身的Target慕匠,將解壓的Target拷貝到工程本身的路徑
rm -rf "$TARGET_APP_PATH"
mkdir -p "$TARGET_APP_PATH"
cp -rf "$TEMP_APP_PATH/" "$TARGET_APP_PATH"


# 3. 刪除extension和WatchAPP饱须,個(gè)人證書沒法簽名Extention
rm -rf "$TARGET_APP_PATH/PlugIns"
rm -rf "$TARGET_APP_PATH/Watch"



# 4. 更新info.plist文件 CFBundleIdentifier
#  設(shè)置:"Set : KEY Value" "目標(biāo)文件路徑",PlistBuddy是蘋果自帶的台谊。
/usr/libexec/PlistBuddy -c "Set :CFBundleIdentifier $PRODUCT_BUNDLE_IDENTIFIER" "$TARGET_APP_PATH/Info.plist"

#刪除UISupportedDevices設(shè)備相關(guān)配置(越獄手機(jī)dump ipa包需要?jiǎng)h除相關(guān)配置)
/usr/libexec/PlistBuddy -c "Delete :UISupportedDevices" "$TARGET_APP_PATH/Info.plist"

# 5. 給MachO文件上執(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\<`
#上可執(zhí)行權(quán)限
chmod +x "$TARGET_APP_PATH/$APP_BINARY"



# 6. 重簽名第三方 FrameWorks
TARGET_APP_FRAMEWORKS_PATH="$TARGET_APP_PATH/Frameworks"
if [ -d "$TARGET_APP_FRAMEWORKS_PATH" ];
then
for FRAMEWORK in "$TARGET_APP_FRAMEWORKS_PATH/"*
do
#簽名 --force --sign 就是-fs
/usr/bin/codesign --force --sign "$EXPANDED_CODE_SIGN_IDENTITY" "$FRAMEWORK"
done
fi
使用方式
  1. 創(chuàng)建空工程(例如shellTestWeChat)蓉媳,編譯運(yùn)行空工程至真機(jī)上(信任證書)。
  2. appResign.sh腳本拷貝到工程根目錄(要有可執(zhí)行權(quán)限)锅铅。
  3. 工程根目錄創(chuàng)建APP文件夾蓬衡,并將微信.ipa拷貝到APP文件夾
  4. 配置腳本
  1. 運(yùn)行工程

補(bǔ)充: 如何調(diào)試一個(gè)任意app?

1. 獲取對(duì)應(yīng)ipa包

使用越獄手機(jī)dump ipa包??

下載舊版本ipa包可以通過抓取iTunes的下載鏈接改版本號(hào)(后綴是app的版本萝招,直接改版本)
iTunes

2. 砸殼

砸殼后由于是dump越獄手機(jī)上的正版包衔瓮,所以需要將info.plist中支持的設(shè)備信息(UISupportedDevices刪除。當(dāng)然可以寫在腳本中??

#刪除UISupportedDevices設(shè)備相關(guān)配置(越獄手機(jī)dump ipa包需要?jiǎng)h除相關(guān)配置)
/usr/libexec/PlistBuddy -c "Delete :UISupportedDevices" "$TARGET_APP_PATH/Info.plist"

刪除完畢保存重新打包ipa??

zip -ry WeChat1.ipa Payload/

總結(jié)

應(yīng)用重簽名可以說是逆向第一步準(zhǔn)備工作贼邓,希望大家能夠跟著本篇文章的順序阶冈,實(shí)際操作一遍,都說實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)塑径,這點(diǎn)很重要女坑!

  • 重簽名
    • codesign重簽名
      • 刪除不能簽名的文件:PlugInsWatch(包含了Extension)
      • 重簽名Frameworks里面的庫(kù)
      • 給MachO添加可執(zhí)行權(quán)限
      • 修改Info.plist文件(BundleID
      • 拷貝描述文件(該描述文件要在iOS真機(jī)中信任過)
      • 利用描述文件中的權(quán)限文件簽名整個(gè)App包
    • Xcode重簽名
      • 刪除不能簽名的文件:PlugInsWatch(包含了Extension)
      • 重簽名Frameworks里面的庫(kù)
      • 給MachO添加可執(zhí)行權(quán)限
      • 修改Info.plist文件(BundleID
      • 拷貝描述文件(該描述文件要在iOS真機(jī)中信任過)
      • 將App包拷貝進(jìn)入Xcode工程目錄中(剩下的交給Xcode
    • Shell腳本
      • 切換shell
        • $chsh -s shell路徑
        • 現(xiàn)在macOS中shell默認(rèn)zsh(早期bash
        • 配置文件
          • zsh ?? .zshrc
          • bash ?? .bash_profile
      • 文件權(quán)限&用戶組
        • 每個(gè)文件都有所屬的用戶、組统舀、其它
        • 文件權(quán)限
          • 歸屬 ?? 用戶匆骗、組劳景、其它
          • 權(quán)限 ?? 寫、讀碉就、執(zhí)行
        • 修改權(quán)限chmod
          • 數(shù)字:r:4 w:2 x:1
            • chmod 751 文件名
              • user ?? 4+2+1 = 7
              • group ?? 4+0+1 = 5
              • other ?? 0+0+1 = 1
          • 字符
            • 歸屬 ?? u(用戶) g(組) o(其它) a(所有)
            • +(添加)-(去掉) =(設(shè)置)
            • 默認(rèn)a ?? chmod + x
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盟广,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓮钥,更是在濱河造成了極大的恐慌筋量,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骏庸,死亡現(xiàn)場(chǎng)離奇詭異毛甲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)具被,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門玻募,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人一姿,你說我怎么就攤上這事七咧。” “怎么了叮叹?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵艾栋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我蛉顽,道長(zhǎng)蝗砾,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任携冤,我火速辦了婚禮悼粮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘曾棕。我一直安慰自己扣猫,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布翘地。 她就那樣靜靜地躺著申尤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衙耕。 梳的紋絲不亂的頭發(fā)上昧穿,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音橙喘,去河邊找鬼时鸵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛渴杆,可吹牛的內(nèi)容都是我干的寥枝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼磁奖,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼囊拜!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起比搭,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤冠跷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后身诺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜜托,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年霉赡,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了橄务。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡穴亏,死狀恐怖蜂挪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嗓化,我是刑警寧澤棠涮,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站刺覆,受9級(jí)特大地震影響严肪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜谦屑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一驳糯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧伦仍,春花似錦结窘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至谓苟,卻和暖如春官脓,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背涝焙。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工卑笨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人仑撞。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓赤兴,卻偏偏與公主長(zhǎng)得像妖滔,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子桶良,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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

  • 應(yīng)用重簽名座舍,就是把已經(jīng)存在的ipa包,重新配置一套證書和描述文件陨帆,再簽名生成一個(gè)新的ipa包 codesign重簽...
    帥駝駝閱讀 1,526評(píng)論 0 7
  • 了解了iOS應(yīng)用簽名之后曲秉,發(fā)現(xiàn)蘋果就是通過簽名來驗(yàn)證我們的證書能否能簽名我們的App,那我們能不能用我們的證書對(duì)別...
    有夢(mèng)想的程序員閱讀 817評(píng)論 1 1
  • 聲明:此文章僅是學(xué)術(shù)探討類文章疲牵,僅僅用于學(xué)習(xí)研究承二,也請(qǐng)讀者不要用于商業(yè)或其他非法途徑上,否則一律與筆者無關(guān)纲爸。 Ap...
    黑夜夢(mèng)閱讀 1,564評(píng)論 0 2
  • 首先理解一件事:簽名是可以被替換的亥鸠。簽名:原始數(shù)據(jù)->hash->加密重簽名:原始數(shù)據(jù)->hash->加密這也就是...
    HotPotCat閱讀 1,882評(píng)論 0 4
  • 獲取脫殼的ipa包 從iTunes 12.6.3及以前的版本上直接下載 (macOS Mojave Doesn’t...
    鼬殿閱讀 1,042評(píng)論 0 0