IDA调试Android so文件 JIN_onLoad方法
来源:互联网 发布:java web 跨域访问 编辑:程序博客网 时间:2024/06/09 18:04
工具:IDA 6.8+eclipse
在AndroidMainifest.xml配置文件中添加 android:debuggable=”true” 属性
1). 如果有源码,则在代码中添加该属性;
2). 如果没有源代码,则反编译apk文件,添加此属性,再重新打包(如何反编译重新打包,网上有很多参考)。启动android_server程序
1). 拷贝IDA目录dbgsrv/android_server文件到手机中,如:/data/data/android_server,可通过命令行执行: adb push E:\IDA\dbgsrv\android_server /data/
2). 执行如下命令:
adb shell
su root
cd data
./android_server
启动后,此窗口不要关闭监听23946端口
另打开一个cmd窗口,执行 adb forward tcp:23946 tcp:23946通过命令行启动应用程序
如: adb shell am start -D -n com.example.jni/.MainActivity
此时应用程序会停在等待调试界面,打开IDA工具:
1). 打开要调试的so文件,可直接拖入;
2). 选择ELF for ARM (Shared object)[elf.ldw],等待so解析完成;
3). 点击Debugger选项,选择 Remote ARM Linux/Android debugger,点击OK;
4). 点击Debugger选项,选择Process options…,配置Hostname为127.0.0.1或者localhost(如果是真机调试,则查看手机IP地址,填写即可,如:192.168.2.167),端口使用默认值 23946;
5). 点击Debugger选项,选择 Attach to process…, 选择要调试应用的包名;
6). 于左侧列表中Ctrl+F,搜索JIN_onLoad函数,双击,打上断点;监听调试继续执行
命令行中输入 jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700 回车如果一切顺利,则可以断点调试;
调试其他方法类似;调试快捷键,F7单步进入,F8单步,F9运行;
注意事项:
1). 手机要有root权限;
2). 实际测试中发现,如果先打eclipse工程,再开始以上步骤,则最后未能断在断点处,而是直接运行结束了。此时应该关闭eclipse,待运行到第4步后,再打开eclipse工程,并在DDMS中选择要调试的工程,再进行第5步,则调试正常。以上是调试Android so方法大致流程和步骤,待有时间记录更详细步骤并添加截图,以防忘记。
实际中遇到的问题也比较多,但是由于时间较长,而且当时未作记录,所以不能一一写下,其中之一是,原电脑中python版本太低,每次启动IDA都提示xxx模块初始化失败,重新安装IDA目录中python-2.7.6后,此问题解决。
- IDA调试Android so文件 JIN_onLoad方法
- IDA调试Android so文件
- IDA Pro动态调试Android so文件
- IDA动态调试Android的SO文件
- Ida 调试so文件
- IDA动态调试so文件
- IDA调试Android SO笔记
- IDA调试Android so源码
- IDA动态调试Android SO
- IDA动态调试android so
- IDA调试android so文件.init_array和JNI_OnLoad
- IDA调试 android so文件的10个技巧
- IDA+VMWARE 调试 X86 版本 Android SO 最快的android so 调试方法
- 使用IDA Pro调试so文件
- IDA调试so文件基础篇
- IDA调试so文件进阶篇
- 使用IDA Pro动态调试SO文件
- IDA调试so文件基础篇
- 将二叉搜索树转换成链表
- C++ namespace 的一种用法
- Android SELinux avc dennied权限问题解决方法
- 砝码称重问题
- Vim好用的插件
- IDA调试Android so文件 JIN_onLoad方法
- 初识kotlin
- 文本编辑距离计算,简单清晰
- 【PMP认证考试之个人总结】第 10 章 项目风险管理
- Hadoop简介与环境搭建(独立模式/伪分布式)
- PHP 获取二维数组中某个key的集合
- ADB server didn’t ACK解决
- 浏览器indexedDB操作
- idea 开发工具 快捷键操作 整理