道高一尺魔高一丈, ios沒有傳說中的安全.
現狀: ? 自己編寫的App上架到AppStore, 被apple 加密. 但是在 DeBug下產生的 ipa(蘋果應用程序文件iPhoneApplication) 和 release下的ipa包或者是渠道包(各種應用市場能下的ipa包)都能直接反編譯。
工具:
clutch ? dumpdecrypted gdb AppCrackr
class-dump ? ? ? http://stevenygard.com/projects/class-dump/
Hopper Disassembler ? http://www.onlinedown.net/soft/558448.htm#down
class-dump ? class-dump,是可以把Objective-C運行時的聲明的信息導出來的工具。 是一個可以導入其他應用的工具, 是逆向工程中的一個入門級工具.
1 下載完后,將dmg文件中的 class-dump復制到 /usr/bin/目錄下 , ?如果是OS X 10.11 及以后 版本,因為沒有/usr/bin文件夾的寫權限,所以將class-dump復制到/usr/local/bin/class-dump即可。
2 ?打開Terminal,執行命令賦予其執行權限:
sudo chmod 777/usr/bin/class-dump ?
3 ?使用class-dump導出頭文件的命令格式: class-dump -H 需要導出的框架路徑
-o 導出的頭文件存放路徑
我們run一下工程,然后打開 ?Products ?文件夾下, ?xxxxxx.app 所在目錄,顯示包內容,拿到二進制文件。
在桌面創建文件夾,將二進制文件拖入 終端執行如下操作
沒有聲明的方法也被dump出來
接下來使用 ?Hopper Disassembler 拿到方法的具體實現 ?打開應用,直接將二進制文件拖入 會看到一堆匯編語言 ? ----> ?點右上角的if(b)f(x);按鈕,能看到這個方法的偽代碼,大部分的時候我們能從偽代碼中看出我們需要的信息。
預防:只要做好核心代碼,做好混淆就行了,比如涉及到密碼,核心算法。 可以看到具體的方法實現