IDA调试Android


本文源链接: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”

命令详解

  1. adb install “path”
    • 将程序安装进手机
  2. adb push “path\android_server” “data/local/tmp”
    • 将ida对应的android_server调试器装进手机中
  3. adb shell su
    • 进入shell环境,并且获取root权限
    • 这里得注意,先输入adb shell进入shell环境,再输入su
  4. cd “data/local/tmp”
    • 进入刚刚拷贝android_server进入的路径
  5. chmod 777 android_server
    • 提权android_server
  6. ./android_server

    • 运行andriod_server
  7. ps | grep name
    • 匹配name的程序,不一定得是全名,根据包名匹配
    • USER PID PPID VSIZE RSS WCHAN PC NAME
  8. kill -s 9 “pid”
    • 杀掉pid进程
  9. adb forward tcp:23946 tcp:23946
    • PC端口转发Android端口,第一个端口可以不用23946,第二个端口就是android_server
  10. adb shell am start-D -n packagename/activityname
    • 调试模式运行程序
  11. jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=”id”
    • 以调试模式运行的程序,得先用ida attach,然后再用jdb恢复运行,id可通过DDMS查看
  12. getenforce
    • 获取SELinux状态
  13. setenforce 0
    • 临时关闭SELinux状态,机子下次重启恢复

IDA

IDA调试Android_第1张图片

IDA调试Android_第2张图片
- 这里监听PC转发的23946


- 选择要连的程序

IDA调试Android_第3张图片

- 程序运行之后载入的.so无法搜索到
- 要不就先load.so,再去搜
- 要不就先用IDA打开这个.so,然后读取的时候就会询问是否相同,这时候就可以定位到这个.so文件

DDMS

IDA调试Android_第4张图片
- jdb连上的时候会显示绿色
- 对于等待连接的,显示红色


你可能感兴趣的:(逆向)