【转】IDA 调试 Android
最近都在学一些反编译安卓相关的东西,其实网上有很多教程关于用 IDA 调试 Android 的过程,主要记录一下我遇到的坑
首先 Android手机要是root过的
还要注意的一点是apk中的 AndroidManifest.xml 中debuggable要为true
1、将 apk 装到手机上,然后执行命令行:
adb shell am start -D -n "com.gabo.test/com.unity3d.player.UnityPlayerActivity"
最后一个参数是"包名/要运行的Activity"
2、查找运行的应用的端口号,并执行命令:adb forward tcp:5005 jdwp:9973
3、首先打开 IDA 中dbgsrv文件夹,将里面的 android_server 弄到手机上:
adb push android_server /data/local/tmp
4、运行android_server
adb shell
chmod 755 android_server
5、打开另一个CMD 窗口,运行 adb forward tcp:23946 tcp23946
6、运行 IDA,设置Debugger
选择Android debugger
输入Hostname为localhost,点击 Debug options 按钮设置
然后确定
若有发现其他错误的话,可能是因为没有第三步没有弄或端口号弄错了,或者失败了,在操作一次第5步,然后再进行第6步就可以了
若发现以下问题,可能是因为运行了64位的IAD,重新运行32位的IDA
上面是32位,下面64位,重新运行上面的重新操作一变就可以了。。我当时就是弹窗的,现在就变成只提示下面的错误了
上面的问题解决完后,会弹出窗口,然后选中我们要的进程,点ok就行
7、第6步结束后,IDA 会自动暂停,这时候执行 jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=5005
因为上面运行了adb shell am start -D -n 这条命令,设备上运行的应用会等附加调试后才会继续执行下去,上面的jdb命令就是为了让应用继续执行
8、之后回到 IDA,可以先找到自己想要断点的地方设置好断点后,按 F9 继续执行下去,刚才的jdb 命令就会看到结果
然后就结束了。。
IDA下载地址
链接: http://pan.baidu.com/s/1kV2JRZx 密码: s59q
from:https://www.cnblogs.com/gabo/p/5631643.html
原文地址:https://www.cnblogs.com/xuan52rock/p/11010304.html
- Go语言的标准输入-scan 和bufio
- Java案例-判断给定年份是闰年
- 分分钟搭建Oracle环境 (r9笔记第23天)
- Java面试系列25-spring(4)-国际化、加入web容器,标签、事务等
- Java面试系列24-spring(3)-配置文件相关问题
- Java基础-day03-基础题
- 简单易学的机器学习算法——EM算法
- 备库跳归档恢复的有趣案例(r9笔记第19天)
- Java基础-day02-代码题
- 优化算法——拟牛顿法之L-BFGS算法
- 一次性能突发情况的紧急修复(r9笔记第18天)
- Java基础-day02-基础题
- 简单易学的机器学习算法——AdaBoost
- 用脚本来讲一个技术生活的故事 (r9笔记第32天)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释