反編譯

道高一尺魔高一丈, 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);按鈕,能看到這個方法的偽代碼,大部分的時候我們能從偽代碼中看出我們需要的信息。

預防:只要做好核心代碼,做好混淆就行了,比如涉及到密碼,核心算法。 可以看到具體的方法實現

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容