iOS App安全防范總結(jié)

多開檢測:

http://bbs.iosre.com/t/ios/11611
https://www.cnblogs.com/huangzizhu/p/9361070.html

判斷bundleId是否是多開應用

防止抓包篡改數(shù)據(jù)

https://blog.csdn.net/u011656331/article/details/81120420

防止反編譯

阻止動態(tài)調(diào)試

https://blog.csdn.net/qq_25303213/article/details/78179492

第一、自己附加進程,先占坑,ptrace(PTRACE_TRACEME, 0, 0, 0)!
第二、簽名校驗不可或缺的一個選擇,本地校驗和服務端校驗雙管齊下!
第三、借助系統(tǒng)api判斷應用調(diào)試狀態(tài)和調(diào)試屬性,最基礎(chǔ)的防護!
第四、輪訓檢查android_server調(diào)試端口信息和進程信息,防護IDA的一種有效方式!
第五、輪訓檢查自身status中的TracerPid字段值,防止被其他進程附加調(diào)試的一種有效方式!

4.防止二次打包
https://segmentfault.com/q/1010000006819342
https://en.wikipedia.org/wiki/Ptrace

只修改資源文件是可以的,替換資源文件后重簽名。

解壓ipa得到 Payload/yourapp.app 文件夾,

  1. 進入.app目錄把 embedded.mobileprovision 文件替換成你的打包證書文件,注意這個文件的名字不要改。
  2. 如果有 xxx.entitlements.xcent 文件,把里面的內(nèi)容替換成你的。
  3. 增加、刪除、替換你的資源文件,圖標 圖片等。
  4. 編輯 Info.plist,修改 bundle ID.
  5. 命令行 cd 到 Payload 目錄里,然后執(zhí)行 codesign -fs "iPhone Distribution: your company" yourapp.app

iPhone Distribution: your company 是打包的證書全名,Keychain 里可以看到,必須是未過期的證書。

如果是企業(yè)證書打包,再加個參數(shù) --resource-rules="ResourceRules.plist"

ResourceRules.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>rules</key>
 <dict>
 <key>.*</key>
 <true/>
 <key>Info.plist</key>
 <dict>
 <key>omit</key>
 <true/>
 <key>weight</key>
 <real>10</real>
 </dict>
 <key>ResourceRules.plist</key>
 <dict>
 <key>omit</key>
 <true/>
 <key>weight</key>
 <real>100</real>
 </dict>
 </dict>
</dict>
</plist>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容