IDA Python
IDA Python
前言
IDAPython 是 IDA Pro(一款二进制静态分析工具)的 Python 插件,它为用户提供了使用 Python 脚本进行自动化和扩展功能的能力。通过 IDAPython,用户可以在 IDA Pro 环境中编写脚本来执行各种任务,包括二进制分析、自动化反汇编、插件开发等。
常用函数
函数名 | 功能 |
---|---|
patch_byte(EA,buf) | 将地址EA处的字节值替换为buf的值 |
get_wide_qword(ea) | 读取指定地址处的 8 字节数据 |
get_wide_dword(ea) | 读取指定地址处的 4 字节数据 |
get_wide_word(ea) | 读取指定地址处的 2 字节数据 |
get_wide_byte() | 获取在指定地址处的 1 字节宽度的字节(Byte)值 |
here() | 获取IDA当前地址 |
实战
以[GFCTF 2021]wordy题目为例,找到main
函数之后可以发现是花指令。
这个题我们只要把这些花指令nop
掉就可以了。可以看出来这个花指令有亿
点多,所以我们需要写个脚本。
for i in range(0x1135,0x3100): # 0x3100是花指令结束的地址
if get_wide_byte(i) == 0xeb and get_wide_byte(i+1) == 0xff:
patch_byte(i,0x90)
可以看到换完之后数据已经出来了。接下来把这些数据打印出来就可以了。
for i in range(0x1135,0x3100):
if get_wide_byte(i) == 0xbf:
print(chr(get_wide_byte(i+1)),end='')
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Cristrik010
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果