日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决 iOS 12.4 Killed: 9 的问题

發(fā)布時間:2024/4/18 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决 iOS 12.4 Killed: 9 的问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

解決 iOS 12.4 Killed: 9 的問題

隨著 iOS 12.4 的越獄出來之后,不少人的手機(jī)都升級到 12.4,最近我也在使用 12.4 做調(diào)試機(jī),一開始 debugserver 也遇到一些坑,不過好在都解決了。最后剩下一個很頭疼的問題,就是自己寫的 App 上傳到手機(jī) /Applications 目錄下,發(fā)現(xiàn)既然不能運(yùn)行,提示 Killed: 9。

按照老套路,使用 codesign 或者 ldid 簽名:

codesign -s - --entitlements ent.plist -f test12

由于 iOS 12 需要添加 platform-application,和簽名 debugserver 一樣,完整的 ent.plist 如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict><key>com.apple.backboardd.debugapplications</key><true/><key>com.apple.backboardd.launchapplications</key><true/><key>com.apple.diagnosticd.diagnostic</key><true/><key>com.apple.frontboard.debugapplications</key><true/><key>com.apple.frontboard.launchapplications</key><true/><key>com.apple.security.network.client</key><true/><key>com.apple.security.network.server</key><true/><key>com.apple.springboard.debugapplications</key><true/><key>com.apple.system-task-ports</key><true/><key>get-task-allow</key><true/><key>platform-application</key><true/><key>run-unsigned-code</key><true/><key>task_for_pid-allow</key><true/> </dict> </plist>

簽名之后再次上傳到 /Applications,運(yùn)行還是提示 Killed 9,嘗試 setuid(0); setgid(0);,還有設(shè)置文件權(quán)限也都不管用,都是提示 Killed 9

chown root:wheel test12 chmod u+s test12

不過發(fā)現(xiàn)之前寫的插件打包成 deb 可以在 iOS 12.4 運(yùn)行,文件也是會釋放到 /Applications 目錄,于是嘗試把 test12.app 制作成 deb 包,上傳到 /var/mobile/test12.deb,使用 dpkg 命令安裝,安裝成功后發(fā)現(xiàn)果然是可以執(zhí)行。

dpkg -i /var/mobile/test12.debuicache

使用 ldid -e /Applications/test12.app/test12 >> /var/mobile/test12.plist,將 entitlement 導(dǎo)出查看比之前的多了兩條,不過添加上這兩條重新簽名依然是不行。

<key>com.apple.private.skip-library-validation</key> <true/> <key>com.apple.private.security.no-container</key> <true/>

思考一個問題,為什么手動上傳的文件不能運(yùn)行,而制作成 deb 包安裝就可以呢?這兩者有什么區(qū)別嗎?嘗試對 deb 安裝后的文件靜態(tài)修改,插入 LoadCommand 加載動態(tài)庫,發(fā)現(xiàn)只要靜態(tài)改過可執(zhí)行文件,運(yùn)行就提示 Killed 9,但是改過的文件打包成 deb,發(fā)現(xiàn)又可以運(yùn)行了。

看樣子是因?yàn)?dpkg 做了什么特殊的操作。在手機(jī)上找到 /usr/bin/dpkg,載入 IDA 靜態(tài)分析,在 dir_sign_file 函數(shù)中找到了一條和簽名相關(guān)的命令,猜測可能是和這個命令有關(guān)系,在釋放完文件后,執(zhí)行了簽名命令。

最終得到的簽名命令是這個,使用下面的命令對文件進(jìn)行簽名即可解決 Killed 9 的問題。

/usr/bin/ldid -P -K/usr/share/jailbreak/signcert.p12 -S/usr/share/entitlements/global.xml -M /Applications/test12.app/test12

原文地址:https://www.ioshacker.net/thread-187-1-1.html

總結(jié)

以上是生活随笔為你收集整理的解决 iOS 12.4 Killed: 9 的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。