使用 IDA Pro 进行静态分析
- IDA Pro:目前功能最强大的静态反编译分析工具,具备可交互、可编程、可扩展、多处理器支持等特点,软件逆向分析必备工具
IDA Pro 对 Android 的支持
- 从 6.1 版本开始提供对 Android 的静态分析与动态调试的支持,包括 Dalvik 指令集的反汇编、原生库(ARM/Thumb 代码)的反汇编、原生库(ARM/Thumb 代码)的动态调试等
- IDA Pro 6.95 对 Android 的静态分析与动态调试的支持已非常完善
- 本笔记用的是 7.0 版本
分析 DEX 文件
- 实例:Crackme0502
- 解压 APK 取得 classes.dex,打开 IDA Pro,将 DEX 拖入 IDA Pro(或用 IDA Pro 打开 DEX),选择默认选项,等待分析完成
- IDA Pro 支持以结构化形式显示数据结构。单击“IDA View-A”选项卡,来到反汇编代码界面(其实默认进入的就是此界面),然后单击菜单项“Jump”->“jump to address”,或按“G”键,会弹出地址跳转对话框,输入 0,跳转到 DEX 文件的开头(一开始一般就在开头)。可看到, IDA Pro 已自动解释了结构体信息并加上了注释
- 单击菜单项“Jump”->“Jump to segment”,或按组合键“Ctrl+S”,会弹出段选择对话框。如下图,IDA Pro 将 DEX 分成了 11 个段,每个段所对应的偏移量与 DexHeader 结构体相对应,最后两个段的偏移量可通过计算得出