ida调试安卓应用刚开始的那些坑


1.
用adb将IDA中的android_server 弄进手机的/data/local/tmp目录中:
打开cmd

cd C:\Program Files\IDA 6.6\dbgsrv  (ida android_server所在的路径,具体根据实际路径修改)
adb push android_server /data/local/tmp/android_server 
adb shell
su
cd /data/local/tmp
chmod 777 android_server
./android_server

坑:'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。
解决:手机驱动是否已安装,把adb所在路径添加到环境变量或者直接复制adb到C:\WINDOWS\system32下OK(xp系统)

2.
另开一个cmd 转发端口
adb forward tcp:23946  tcp:23946

3.
再来一发cmd
adb shell am start -D -n 包名/包名.主启动actary
例如:adb shell am start -D -n com.mxk.app.test/com.mxk.app.test.MainActivity

这时手机会提示 waiting for debugger....(一坨英文).....
坑来了:.......(一大坨的)Error type 3...(又是一坨).....
Error: Activity class {包名/包名..Activit} does no
t exist.

解决:检查包名和程序入口输入是否正确,和要调试的应用是否已安装。。。。

继续;;;;


4.
启动IDA主程序,点击菜单 Debugger->Attach->Remote ArmLinux/Android
debugger ,弹出调试对话框,在hostname一栏输入localhost,password 留空
然后点击 Debug Opitions 在弹出的Debugger setup窗口的
Events中选择 stop on thread start/exit 以及 stop on library load/unload 点击OK退出。
继续点击ok,然后在IDA弹出的窗口中,选择自己要附加的进程后点击OK。

继续坑:ida 不出进程列表,或者很少
解决:检查 android_server 是否与当前使用的ida版本匹配,android_server 是否拥有root权限,一定记得先su一下,都不行换个手机试下撒☺☺

5.
adb forward tcp:8700 tcp:进程id
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700

接着坑:'jdb' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

解决:jdk jre是否已安装,检查java环境变量。

5.1
再来一坑:致命错误: 无法附加到目标 VM。

解决:
打开 DDMS->点击进程名然后回到ida下断点再打开cmd执行

又来一发cmd
jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700
好了,妥妥的,,

6.
ida里按F9后手机上的“waiting for debugger"提示会自动消失

然后开撸;;;;,,,
开始调试的坑大概就这些,关于F9以后的那些坑有空接着填。。
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
IDA(Interactive Disassembler)是一款反汇编工具,版本7.0是其最新版本。动态调试安卓应用程序是使用IDA 7.0进行分析和调试。 首先,我们需要准备一个安卓设备(手机或模拟器)和一台运行IDA 7.0的计算机。 1. 在计算机上安装IDA 7.0,并确保它与安卓设备能够进行通信。可以通过连接设备到计算机,或者使用网络调试器,如Frida或Xposed等。 2. 打开IDA 7.0并创建一个新的分析项目。可以选择从APK文件或已经安装在设备上的应用程序进行分析。 3. 如果选择从APK文件进行分析,可以通过"File"菜单下的"Load File"选项加载APK文件。如果选择从已安装应用程序进行分析,则可以通过"File"菜单下的"Attach to process"选项选择目标应用程序。 4. 一旦应用程序被加载或附加,IDA 7.0会自动进行静态分析,并将汇编代码显示在界面上。 5. 接下来,可以使用IDA 7.0的动态调试功能。通过"Debugger"菜单下的"Debugger options"选项,可以设置断点、单步执行代码、查看和修改寄存器值等。 6. 当应用程序执行到断点处时,IDA 7.0会暂停执行,并显示当前的程序状态。此时,可以查看当前的寄存器、内存内容以及堆栈等信息,以帮助分析程序。 7. 可以通过IDA 7.0的调试功能来逐步执行代码,以便分析应用程序的行为和逻辑。可以在特定的代码位置设置断点,并观察寄存器和内存的变化。 8. 在动态调试过程中,可以使用IDA 7.0的其他功能,如动态数据流分析、函数调用图等来深入分析应用程序。 9. 最后,可以通过"Debugger"菜单下的"Detach"选项或关闭IDA 7.0来结束动态调试。 总之,使用IDA 7.0动态调试安卓应用程序可以帮助我们深入分析程序的执行过程和逻辑,从而更好地理解和修改应用程序的行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值