因為公司android平臺APP被人破解缨伊,最近就學(xué)習(xí)了一些關(guān)于反編譯的知識,雖然在安全性上iOS要比android好一些财忽,上傳到appstore的app經(jīng)過了apple加密處理倘核,但是在debug下或者是release下產(chǎn)生的ipa或者是渠道包(各種應(yīng)用市場能下的ipa包)都能直接反編譯;apple加密過得也可以反編譯即彪,只不過相對麻煩一些罷了紧唱。工具有很多活尊,自行g(shù)oogle,這里只介紹個人用到的兩個:dump和hopper
利用class-dump反編譯出方法名
下載地址:http://stevenygard.com/projects/class-dump
class-dump 作用對象必須是未經(jīng)加密的可執(zhí)行文件
下載后將class-dump復(fù)制到/usr/local/bin目錄漏益,并在Terminal中執(zhí)行"sudo chmod 777 /usr/local/bin/class-dump" 命令賦予其執(zhí)行權(quán)限蛹锰。
新建一個項目。只在ViewController類里面做了改動绰疤,寫了兩個方法铜犬,其中一個方法做了聲明,另一個沒有
運行程序轻庆,找到Products下的Dump測試.app根目錄右鍵顯示包內(nèi)容癣猾,找到二進制文件,復(fù)制到桌面一個新文件夾里面
打開Terminal余爆,cd到放二進制文件的根目錄纷宇,輸入命令:class-dump -H Dump測試,運行成功后目錄下面多了幾個文件
打開ViewController.h可以看到反編譯出來的方法名蛾方,沒有聲明的方法也能反編譯出來
利用Hopper反編譯出偽代碼
要查看方法的具體實現(xiàn)可以利用hopper像捶,打開hopper,把二進制文件拖進去進行反編譯
在想看的地方選擇if(b)f(x):可以看到近似源碼的偽代碼