本帖最后由 默小坑 于 2016-2-10 18:05 编辑
首先祝大家新年快乐、、、
图就不截了,新手会遇到的,,,
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以后的那些坑有空接着填。。
|