本文源链接:http://blog.csdn.net/qq393830887/article/details/54692438
参考
IDA调试Android native
使用ida调试so文件
记录下android SELinux造成ida无法调试
通过ida dump Uinity3D的加密dll
【练习】IDA调试Android native(Crackme)
重点
- 尽量使用真机而不是模拟器
- 机子得刷Root权限
- Apk中Androidmanifest.xml中的debuggable=”true”
命令详解
- adb install “path”
- 将程序安装进手机
- adb push “path\android_server” “data/local/tmp”
- 将ida对应的android_server调试器装进手机中
- adb shell su
- 进入shell环境,并且获取root权限
- 这里得注意,先输入adb shell进入shell环境,再输入su
- cd “data/local/tmp”
- 进入刚刚拷贝android_server进入的路径
- chmod 777 android_server
- 提权android_server
- ./android_server
- 运行andriod_server
- ps | grep name
- 匹配name的程序,不一定得是全名,根据包名匹配
- USER PID PPID VSIZE RSS WCHAN PC NAME
- 匹配name的程序,不一定得是全名,根据包名匹配
- kill -s 9 “pid”
- 杀掉pid进程
- adb forward tcp:23946 tcp:23946
- PC端口转发Android端口,第一个端口可以不用23946,第二个端口就是android_server
- adb shell am start-D -n packagename/activityname
- 调试模式运行程序
- jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=”id”
- 以调试模式运行的程序,得先用ida attach,然后再用jdb恢复运行,id可通过DDMS查看
- getenforce
- 获取SELinux状态
- setenforce 0
- 临时关闭SELinux状态,机子下次重启恢复
IDA
- 这里监听PC转发的23946
- 选择要连的程序
- 程序运行之后载入的.so无法搜索到
- 要不就先load.so,再去搜
- 要不就先用IDA打开这个.so,然后读取的时候就会询问是否相同,这时候就可以定位到这个.so文件
DDMS
- jdb连上的时候会显示绿色
- 对于等待连接的,显示红色