现在很多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,接下来就可以动态分析了。