1.打开cmd进入IDA6.8目录的dbgsrv子目录,执行以下命令:
adb push android_server /data/local/tmp
adb shell
cd /data/local/tmp
chmod 755 android_server
su
./android_server
2.IDA 设置
菜单->Debugger->Select Debugger... 选择Remote ARM Linux/Android debugger
菜单->Debugger->Process options... HostName填写手机IP地址
菜单->Debugger->Attack to process.. 在显示的进程列表中选择需要调试的进程。调试器附加成功后选择对应的so模块。
将dbgserver拷贝到android手机的/data/data/目录下,需要root权限
D:\ProgramFiles (x86)\IDA 6.8\dbgsrv>adb push android_server /data/data/sv
3094 KB/s (523480bytes in 0.165s)
添加执行权限
D:\ProgramFiles (x86)\IDA 6.8\dbgsrv>adb shell chmod 755 /data/data/sv
启动dbgserver
D:\ProgramFiles (x86)\IDA 6.8\dbgsrv>adb shell /data/data/sv
IDA Android 32-bitremote debug server(ST) v1.19. Hex-Rays (c) 2004-2015
Listening on port#23946...
另外启动一个命令窗口输入如下命令开启端口转发:
adb forward tcp:23946 tcp:23946
启动ida的调试器,先选择run和是attach(根据需要),调试器选择Remote ArmLinux/Android debugger
Attach方式
Hostname写localhost,port 23946
然后选择进程attach
Run方式
(
启动一个新进程
)
设置相关属性项。
注意这些路径都是是在android手机上的路径,如果程序在PC上需要先push到设备上,添加执行权限:
如果出现:
Bogus or irresponsive remote server
错误
在adb shell中执行
setenforce 0
关闭selinux安全机制(需要root权限)