第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)

使用 IDA Pro 动态调试 APK

  • 要求:6.6 及更高版本
  • 既可调试 DEX 代码,也可调试 Native 代码,更可启动两个 IDA Pro 实例,同时完成两种代码的联合调试
  • 实例:GitHub

步骤

  • 将 MethodProfiling 用 IDA Pro 打开,选择 classes.dex,等待完成初步分析
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 点击菜单项“Debugger”->“Debugger options”,打开调试器设置窗口。若要分析的程序在启动后停在入口处,可勾选“Suspend on process entry point”
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 点击“Set specific options”
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 设置 adb 的完整路径,与要启动的 Activity 组件信息
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 设置好后,依次点击两个对话框的“OK”
  • 点击菜单项“Debugger”->“Process options”,设置端口号“8700”,点击“OK”
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 点击菜单项“Debugger”->“Start Process”,或点击下图中的位置,启动调试
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 此时会弹出执行代码会有风险的提示,点击“Yes”,IDA Pro 会以调试模式启动 Method Profiling
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 由于勾选了“Suspend on process entry point”,程序断在了入口处,不然会一直处于运行状态
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 点击菜单项“View”->“Open subviews”->“Exports”,再按“Ctrl+F”搜索关键字“onClick”,双击 [email protected]
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 在方法的第一行代码上按“F2”设置断点
    第六章 动态分析 Android 程序(五)(使用 IDA Pro 动态调试 APK)
  • 在手机或模拟器(不能使用 AS 的模拟器)上点击程序界面的“MethodProfiling”按钮,程序会在 IDA 中断在断点处
  • 点击菜单项“Debugger”->“Debugger windows”->“Locals”,可打开变量窗口
  • “F7”和“F8”为“步入”和“步过”的快捷键