IDA动态调试
-
安装命令
adb install xxx
-
推送
adb push /Users/zrzz/Programme/CTF/mobile/IDA\ Pro\ 7.0/ida.app/Contents/MacOS/dbgsrv/android_server /data/local/tmp
-
赋予权限
adb shell chmod 755 /data/local/tmp/android_server
-
启动调试服务器
adb shell su -c "/data/local/tmp/android_server"
-
进行端口转发
adb forward tcp:23946 tcp:23946
-
运行app 打开IDA Pro -
依次点击菜单栏上的"debugger - attach - remote Armlinux/android debugger",在弹出的窗口中填充以下内容:1
2Hostname:localhost
Port:23946 -
在弹出的窗口中选择要调试的app的数据包名,然后点击"ok"按钮 -
jeb运行jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
(这里出现了’致命错误。。。。’原因是apk的debuggable没开,得反编译后进去改成true后回编译)这里把新的东西搬一些过来
先打开静态so,打断点,打开debug选项
手机打开应用,
adb shell su -c "/data/local/tmp/android_server"
转发23946
attach
选中对应的apk后就开始了
适当继续,然后到手机输入东西。
由于在检验处打了断点,所以输入的值会被监视
按下确定键后
然后在debug里面打开local看当地变量
就看到了
进阶教程:
IDA使用https://www.01hai.com/note/av189045#IDA-4
绕过反调试https://blog.csdn.net/jltxgcy/article/details/50598670
2020-1-15补充:今天学长教了下进IDA要看一些什么,所以有一些感想
-
先View->Open subviews->segment看下.init和init_array
如果有一些反调试会在这里看到,图示是没有小动作的
-
进去观察JNI_Onload和有没有anti-debug(也可能功能相同但是名字不同)
-
可以通过动态调试patch重打包或者是ptrace等等(暂时还不懂、多学点反调试脱壳应该就懂了)
-
之后再找包名的函数进行查看就行了
-
一些问题
ddms报错
sdk的版本太高,重新安装1.8.0_144的版本就好了,很多都要重新配置
http://www.luyixian.cn/news_show_22299.aspx
ddms中进程不显示
是手机debug的问题,操作不难
https://www.cnblogs.com/afublog/p/11226492.html
直接用ddms吧,monitor太傻x了