一、准备设备
1.打开设备的USB调试模式
2.复制android_server文件到设备上。此文件在IDA目录下dbgsrv文件夹中
3.设备连接到电脑。
二、准备软件
1.下载并安装android sdk
2.设置环境变量,把目录……\android-sdk\platform-tools设置进path(为了方便的使用adb.exe)
三、把android_server复制到system/bin目录下,并运行服务端
1.进入远程shell
命令:adb shell
2.提升到root权限
命令:su
3.重新挂在系统分区为读写模式
命令:mount -o rw,remount -t yaffs2 /dev/block/mtdblock3/system
说明:/dev/block/mtdblock3/ 这个路径有可能是需要改变的,可以使用命令mount列出所有路径,并查找/system所在位置
4.复制android_server文件
命令:cat android_server > /system/bin/android_server
说明:前一个路径要正确,按实际情况修改
5.修改文件权限
命令:chmod 777 android_server
说明:路径同样要正确
6.运行服务端
命令:cd /system
cd bin
./android_server
说明:运行服务端之后,就可以看到监听端口,一般是23946
7.转发到设备端口
命令:adb forward tcp:23946 tcp:23946
说明:这是在windows 控制台(cmd)下执行的
四、反编译so文件。然后attach到安卓设备上运行的程序就行。
五、一些错误处理
1.android_server进程已经存在。首先用命令“ps -ef | grep -i android_server”找到进程,然后用“kill”命令结束进程。
六、挂起进程然后再恢复运行
1.运行并挂起进程
命令:adb shell am start -D -n [包名]/[入口]
2.运行android sdk 中tools目录下的 “monitor.bat”,启动“Android Device Monitor”
记下途中红圈中的数字:8648。
3.恢复运行
命令:jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8648
参考资料:
http://wenku.baidu.com/link?url=Io9pa0SWbD4k1t4IRCVnBoA5N4phmoLb1AevyHXNEkFqZVzxu4mK-GkrnHGgwTinf87Rhhsz9vtKHygsA3-AVzevf7lM6HQTfq7MfP3Klii
http://blog.youkuaiyun.com/chence19871/article/details/37599397