IDA 调试android 遇到的问题及解决方案

本文汇总了使用IDA进行调试时常见的问题及解决方案,包括调试服务器不兼容、权限问题、连接异常关闭、调试工具冲突等,并提供了详细的解决步骤。

【问题】

Incompatible debugging server:

address size is 4 bytes, expected 4

【解决】

你的android_server 是32位的 
而你启动的 ida 是64位的 
换成32位的ida 就OK

=====================================

【问题】

adb shell ls /data/data/ 命令权限被拒绝

opendir failed, Permission denied

【解决】

adb不是最高权限启动的

先adb kill-server,然后 adb start-server

或者执行 adb root , adb remount

再测试,问题解决

=====================================

 【问题】

The connection has been gracefully closed by peer.
Check that IDA is the only debugger for the target.

【解决】

除了IDA 还开启了其他的调试工具或开发工具比如 Android Studio 或 Eclipse,关闭其他即可。

=====================================

【问题】

adb shell am start -D -n (包名)/ (包名+类名)

......

adb forward tcp:17178 jdwp:16406

jdb -connect com.sun.jdi.SocketAttach:port=17178,hostname=localhost

当使用 jdb 调试时出现以下错误:

……

致命错误:
无法附加到目标 VM。

【解决】

有可能是因为 apk 忘记了修改 AndroidManifest.xml 里的 manifest -> application ->> android:debuggable="true"  导致的。

=====================================

【问题】

IDA 调试so 时遇到了

got SIGCHLD signal (Child status has changed) (exc.code 11, tid 3756)

等消息提示

【解决】

直接 pass to apptication... 就可以了 = =

=====================================

Warning
---------------------------
Timed out while waiting for a JWDP reply
---------------------------
OK   
---------------------------
---------------------------
Warning
---------------------------
The debugger could not attach to the selected process.
This can perhaps indicate the process was just terminated, or that you don't have the necessary privileges.
---------------------------
OK   
---------------------------

出现这种提示,说明你导入的Dex文件可能太大了,IDA解析不过来,用BackSmali把Dex导出,把无关的代码删除,再用 smali 重新打包成小的Dex文件,再进行调试就可以了

也有可能 是接线出现了问题,手机拔了重插。

=====================================

The function has undefined instruction/data at the specified address.
Your request has been put in the autoanalysis queue.

创建函数失败,用选择代码的方法,再按P,具体参看下面地址

http://bbs.pediy.com/archive/index.php?t-158896.html

=====================================

【问题】

The debugger could not attach to the selected process.
This can perhaps indicate the process was just terminated, or that you don't have the necessary privileges.

【解决】

1.不要用模拟器,用真机

2.换系统 ro.debugger = 1

3.换手机 


待追加……

内容概要:本文档《IDA调试命令.txt》详细记录了Android应用动态调试过程中所需的各类命令及其使用方法,包括ADB(Android Debug Bridge)命令、JDB(Java Debugger)调试命令、so层逆向分析技巧、Android系统启动流程以及JNI_onLoad函数的反汇编代码片段。文档重点介绍了如何通过ADB命令行操作设备,如安装应用、设置调试模式、启动应用并附加调试器,同时涵盖了so文件的加载与内存映射、进程模块信息获取等高级调试技术。此外,还探讨了Android系统的启动过程,从电源开启到Launcher启动的各个阶段,为深入理解系统底层机制提供了理论支持。 适合人群:具备一定Android开发经验和逆向工程基础知识的研发人员,尤其是对动态调试、so层逆向分析感兴趣的开发者。 使用场景及目标:①帮助开发者掌握ADB和JDB命令的使用,以便于快速定位和解决应用运行时的问题;②提供so层逆向分析的具体方法,如通过IDA附加调试、获取模块信息等,以破解加密算法或研究第三方库的实现;③深入了解Android系统启动流程,为优化系统性能、开发系统级应用提供参考。 其他说明:文档内容较为专业,涉及大量命令行操作和技术细节,建议读者在实际环境中反复练习,结合官方文档和社区资源进行学习。对于遇到的具体问题,可以通过调整命令参数、检查设备和应用配置等方式逐步排查。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值