zoukankan      html  css  js  c++  java
  • 【转】Android IDA 动态调试最完善攻略,跨过各种坑

    前提条件和运行环境一定要写清楚,不然会有很多坑,坑死人。

    (1)IDA 是最新的7.0版本  (2) JDB 使用Java安装目录下的 (3)系统是win10 使用命令窗口时有很大的差别

    (4)手机是4.4 以下系统    

    1.手机要有Root权限

    2.复制IDA 安装目录下dbgsrv 文件里面的android_server文件到   手机内存储的 /data/local/tmp 目录下

    3.控制台输入 adb shell su 命令获取管理员权限

    4.cd /data/local/tmp 进入android_server目录 ,输入chmod 777 android_server命令获取执行权限

    5.  ./android_server启动android_server

    6.新开一个命令窗口    不用获取管理员权限

    直接输入   adb forward tcp:23946 tcp:23946   命令 端口转发

    7.adb shell am start -D -n  包名/activity路径   启动应用

    adb shell am start -D -n com.cmxxzwy.mz/com.e4a.runtime.android.mainActivity

    8.打开IDA 

    9.菜单 debugger->attach->Remote ARM Linux/android debugger

    10.debug options一定要选

    11.hostname处输入127.0.0.1

    12.点击ok后,在弹出的进程选择框 选择要调试的com.cmxxzwy.mz 进程

    13.手机上的App开始运行后一定要点击IDA 的开始运行按钮。如果有反调试的话,一定要先下断点,不然一运行就崩溃了,一切重新来过。

    .

    14.打开DDMS,将Eclipse切换到DDMS界面,下一步要用

    15.查看  要调试的进程,发现8700端口被占用。可以使用8677端口

     jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8700要改为

     jdb -connect com.sun.jdi.SocketAttach:hostname=127.0.0.1,port=8677

    用jdb将app恢复执行。

    16.好了可以开始调试了 F7进入函数,F8单步调试,F9跳到下一个断点,F2下断点,G调到函数地址

    17.以某数字加固为例 给libc.so 的fopen函数起始位置下断点。

    然后一路F9,直到出现

    然后开始F8,一直F8执行,知道出现如下提示框

    才真正进入我们要调试的so库

    18.动态调试的时候面对的都是Arm汇编,理解能力要跟的上调试速度,这有点难。怎么办?

    那就是动静态结合调试。我们来看动态调试窗口

    1为这句代码的动态内存地址, 2为该so文件的动态内存基地址  3为内存段的大小

    那么我们知道,静态调试窗口显示的都是代码的相对偏移地址,所以我们用  1动态内存地址  - 2内存基地址 = 静态相对偏移地址

    所以 F24B4就是静态代码的偏移地址。

    所以我们打开静态调试窗口就可以看到

    这样,动态和静态的代码就对上了,用静态的代码来记录动态调试的位置信息,就不怕调试过程中断带来的麻烦。而且使用F5来辅助理解代码也是棒棒哒

    19.动态调试过程往往反反复复,命令有时候懒得重新输入。快捷键 ctrl +c结束当前命令程序,按上下键输入之前输过的命令。

    20.有时候,跳转到指定地址的时候全是DCB 数据,这怎么办

    这个时候可以按 C 键识别为代码,或者按 P 键识别为函数

    21.我们动态调试经常就是为了看内存,那么怎么看内存。很简单,执行下图前三步,就能在4步的视图中查看内存

    from:https://blog.csdn.net/marketandtechnology/article/details/82116074

  • 相关阅读:
    调试SQL Server的存储过程及用户定义函数
    寻找 vb.net 事务处理高级编程 的代码!!
    解析Java类和对象的初始化过程
    SQL 安装进程被挂起!
    教你成为一个受欢迎的人
    final class作用
    微软反跨站脚本库
    pdf解析
    ce'shi测试微博
    淘宝架构变化
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/11010319.html
Copyright © 2011-2022 走看看