识别应用程序版本#
16 进制编辑器 HxD 查看应用版本
可以看到上述应用是 32 位程序,PE 这个词后面接 PE..L...,如果是 64 位程序,PE 这个词后面接 PE..d+。
通过 ide 查看也可以知道应用程序版本。
既然知道这是个 32 位程序,那么就使用 32 位的 ida 打开。
打开后,弹出 IDA:Quick strat 窗口
点击 new,查找目标应用程序,并载入,界面如下:
点击 OK 即可,这里不需要任何设置,IDA 会自动识别程序对应的架构。
视图#
打开后,显示的窗口如下,加载可执行程序后最先打开的是反汇编视图。
按空格键可以在图形化和非图形化的指令列表间切换现实模式。
在 Options-General-Disassembly 中,勾选 Line prefixes 可以显示图形视图中的指令的地址。
一开始效果如下:
修改后
IDA 有多种视图模式,可以在 view-Open subviews 菜单中看到
函数起点识别#
当在函数起点有多个指向同一地址的引用时,可将最后一次重复作为函数的起点,此处就是 push 0。
保存设置#
通过此设置可以保存当前的各种配置,下次就直接加载此配置。
字符搜索#
在 IDA 包含列表的选项卡中,如 FUNCTIONS, STRINGS, NAMES 等,可以通过 “CTRL+F” 进行搜索,并且根据输入的字符进行过滤。打开菜单栏 VIEW-OPEN SUBVIEW-STRINGS, 可以搜索到所有包含 “Lu” 的字符串。
打开菜单栏 VIEW-OPEN SUBVIEW-DISASSEMBLY, 可以打开第二个反汇编选项卡显示与第一个不同的内容。
此处有 3 个反汇编显示视图。
打开菜单栏 VIEW-OPENSUBVIEW- HEX DUMP 可以显示十六进制视图。
右键,可切换成文本模式,也可以按空格键盘切换。
文本视图如下;
打开 view-Open subviews-import 可以查看引用的外部函数