课程作者github:作者github资源
一,基本部分
一,用到的插件
keypatch LazyIDA 1,上面两个插件下载并解压,将py文件放入IDA的plugin目录,再执行命令:
pip install keystone-engine
2,电脑存在多个py环境,用idapyswitch.exe来选择指定的py版本。 图1
3,用64位可以打开32位程序,但是无法反编译;用32位打开64位报错。
4,字符串定位是通过已知字符串来定位代码,在字符串表中找到该字符串,查找字符串的交叉引用,跳转到交叉引用指向的代码。
图1
二,不同类型的整数
byte / char / uint8 / int8 db 1个字节 word / short / uint16 / int16 dw 2个字节 dword / int / uint .... dd 4个字节【32位指针】 qword / int64 ... dq 8个字节【64位指针】 大部分情况下,整数以小端序存储内存 0xA1B2C3D4 存储到内存为 D4 C3 B2 A1
二,IDA常用快捷键
文本模式 | 指令地址、指令间线性关系、机器码 图1 |
图形模式 | 方便观察控制流 图2 |
空格 | 文本与视图切换 |
ctrl+鼠标中键 | 图形模式下缩放 |
TAB和F5 | 代码和文本视图切换 |
shift+f12 | 切换到字符串表 |
ctrl+f | 查询 |
F2 | Hex窗口进入/退出编辑模式,断点 |
G | 地址跳转窗口 |
X | 查看交叉引用 |
N | 重命名符号 |
U | 取消IDA对当前地址的解释 |
D | 数据类型切换 |
C | 将地址标记为代码并反编译 |
图1
图2