現在很多apk都把一些關鍵代碼放在so文件裏執行,所以搞安卓逆向必須得會分析so文件,然而有時單純的靜態分析可能很難分析出關鍵出來,這時候就要藉助動態調試的方法來進行分析。
現在紀錄一下我用ida調試android so文件的經驗。今天先介紹下如何操作。
the most important process is rooting your phone.
飆一下英語,這裏是爲了突出root權限的重要性,一定要root好,不讓調試的時候跟中坑。哥就這樣被坑了兩天。然後你需要將你的ida自帶的android_server push到你的手機中。命令是:adb push c:\android_server.apk /data/local/tmp
接着建議給 android_server 改一下名字:mv android_server and_ser #防止被一些殺軟給檢測到
然後給and_ser賦權:chmod 777 /data/local/tmp/and_ser
然後再以靜態方式啓動需要分析的apk
adb shell am start -D -n cn.wjdiankong.encryptdemo/cn.wjdiankong.encryptdemo.MainActivity
然後再運行and_ser: ./data/local/tmp/and_ser -p23333 #這裏-p23333是指定端口,防治被檢測到,都是爲了避免以後遇到不必要的坑。對了,還要以root權限啓動,很重要。
然後開啓另一個cmd窗口,進行端口轉發:adb forward tcp:23333 tcp:23333
最後adb attach到23333這個端口上:debugger/attach/remote armlinux/android
然後在進程列表裏找到你需要分析的apk,接下來就可以動態分析了。