美文网首页
android调试系列--使用ida pro调试so

android调试系列--使用ida pro调试so

作者: 格老子 | 来源:发表于2017-06-06 10:34 被阅读769次

    1、工具介绍

    IDA pro: 反汇编神器,可静态分析和动态调试。

    模拟机或者真机:运行要调试的程序。

    样本:阿里安全挑战赛第二题:http://pan.baidu.com/s/1eS9EXIM

    2、前期准备

    2.1  安装样本程序

    adb install AliCrackme_2.apk

    2.2 上传android_server文件

    adb push android_server /data/local/tmp/adb shell chmod777 /data/local/tmp/android_server

    3、调试步骤

    3.1  开启android_server,监听23946端口,与IDA pro通信

    adb shell /data/local/tmp/android_server

    3.2  设置本地端口转发

    adb forward tcp:23946 tcp:23946

    3.3  以调试模式启动程序

    adb shell am start -D -n com.yaotong.crackme/.MainActivity

    3.4 启动IDA pro,点击Debugger->attach->Remote ARMLinux/Android debugger,输入localhost,选择要调试的进程即可。

    3.5 附加程序成功后,选择,Debugger option,勾选

    suspend on process entry point

    suspend on thread start/exit

    suspend on library load/unload

    三项,然后按f9运行调试程序,此时IDA pro 挂起

    3.6  使用jdb恢复程序执行

    jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

    3.7 此时IDA pro断在linker中,此时module中并没有libcrackme.so,说明licrackme.so还没有加载到内容中,只需要跟几步f8,在寄存器中看到libcrackme.so加载进来了,就可以在module中找到,有两种情况

    1、如果IDA Pro能够解析成功,双击module中的libcrackme.so就可以看到它export的函数,就可以右键下断点了

    2、如果IDA Pro解析失败,需要再开一个IDA,查找到要下断的函数地址,加上libcrackme.so加载到内存的地址即可(在init_array下断只能使用这种方法)。

    3.8  IDA Pro按F9几次,直到断在自己下断的地方即可

    3、总结

    本章内容和调试原生程序有重复,就省略了一些内容。

    另外还有一种so函数是在用户操作的时候才能触发,只需要下好断点,用户进行触发即可

    from:http://www.cnblogs.com/gordon0918/p/5594067.html

    相关文章

      网友评论

          本文标题:android调试系列--使用ida pro调试so

          本文链接:https://www.haomeiwen.com/subject/lxjgfxtx.html