IDA PRO动态调试 尝试脱壳记录
来源:互联网 发布:淘宝店铺介绍大全 编辑:程序博客网 时间:2024/05/23 01:59
一直对时下流行的apk加固很感兴趣,今天抽空看了一下,不得不感叹现在的加固技术已经发展得这么厉害了。
于是花了点时间研究 了一下, 废话不多说,先整理记录一下,都是整理自各路大神的。
1.开启调试模式
就是把手机弄成可调试的状态,就是ro.debuggable=1,这个是要修改ROM里面boot的,方法就不累赘了。
2.工具准备
PC端调试工具:IDA PRO,这里我用的是6.8版本的
把IDA安装目录下的dbgsrv/android_server 放到手机/data/目录下,可以用adb push ,拷贝到data/下需要ROOT权限,
并授予android_server执行权限,我是直接给777
现在有些加固会检测调试进程做反调试,因此android_server可以改成其它名字后使用
3.手机端准备
安装好要调试的apk,这个不用说
运行刚刚push的android_server,这个同样需要ROOT权限:adb shell /data/android_server,值得注意的是有些加固也会判断IDA默认的端口,所以可以自定义调试端口:android_server -p12345(-p端口号,中间没有空格)
用命令以调试方式调起来:adb shell am start -D -n 包名/主Activity
转发端口:adb forward tcp:23946 tcp:23946(23946是默认的,如果上面指定了端口那就用上面的)
转发调试端口:adb -d forward tcp:8700 jdwp:进程ID(进程ID就是要调试APK的进程id,可以用ps命令查看)
4.PC端准备
打开IDA pro,菜单 Debugger - > Attach -> Remote ArmLinux/Android debugger,弹出对话框:
点击”Debug options”按钮,
勾选
Suspend on process entry point
Suspend on thread start/exit
Suspend on library load/unload
OK
然后hostname 填 localhost
端口默认,或者上面指定了什么端口就填什么端口
OK
在弹出窗口中找到 要调试APK的进程,双击打开。
等载入完成后,该下断点的下断点。一般是断在dvmDexFileOpenPartial函数,在这里dump出dex
最后,点绿色播放按钮开始,或者按F9。
5.开始调试
做完上面的步骤后,给手机发连接命令:jdb -connect com.sun.jdi.SocketAttach:port=8700,hostname=localhost
这时IDA Pro 会进入调试,不出意外会停在断点,调试就算开始了。
困了,睡觉,下次继续
附DUMP代码:
auto fp, dex_addr,end_addr;fp = fopen("C:\\dump.dex","wb");end_addr = r0 + r1;for (dex_addr = r0; dex_addr < end_addr; dex_addr ++) fputc(Byte(dex_addr),fp);
- IDA PRO动态调试 尝试脱壳记录
- IDA pro脱壳实战过反调试
- IDA Pro脱壳实战(一)
- IDA Pro动态调试Android so文件
- 使用IDA Pro动态调试SO文件
- 转载:IDA Pro 5.0 动态调试 Smartphone 程序方法
- IDA Pro使用(静态分析+动态调试)
- OllyDbg、IDA Pro联合调试
- IDA 动态调试SO
- IDA动态调试程序
- ida动态调试笔记
- IDA动态调试so
- ida动态调试
- 安卓逆向学习笔记 (4) - 使用IDA Pro动态调试so文件
- IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总
- IDA PRO 静态反汇编与OllyDbg动态调试实战技巧汇总
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
- 安卓动态调试七种武器之孔雀翎 – Ida Pro
- 189. Rotate Array
- zip函数编写--python学习笔记30
- eclipse 加载spring 本地xsd
- EditText防止输入法顶走标题栏以及改变光标底部线颜色
- Mysql入门语句
- IDA PRO动态调试 尝试脱壳记录
- 有关C/C++指针的经典面试题
- 多层神经网络BP算法 原理及推导
- Vim + Vundle + YouCompleteMe 配置
- 我们不该这样的
- ubuntu-16 开机服务rc.local
- Apache Shiro入门
- Hibernate中的延迟加载、实体关联单向一对多及双向一对多实体关联
- the user must supply a jdbc connection 错误解决方法