1
在使用IDAPython编写插件时,常使用的三个库为idaapi、idc和idautils,下面的这些API方法均来自这三个模块。Idaapi模块中导入了所有的以“ida_*.py”格式命名新模块,相当于所有新模块的整合。需要注意的是在IDAPython中有一个模块为idc_bc695,这是作为一个兼容之前版本(IDA 6.95)的脚本化插件而存在的模块,因为在IDA7.0版本发布时,其中的某些API函数名发生了变化。因此,对于同一个功能的实现,你可以使用不同的API方法来实现。
2
idc.MinEA():获取载入程序的最小的有效地址,兼容函数,等价于“get_inf_attr(INF_MIN_EA)”;
idc.MaxEA():获取载入的程序最大的有效地址,兼容函数,等价于“get_inf_attr(INF_MAX_EA)”;
ida_idaapi.get_inf_structure():获取当前打开的IDA的版本的信息,返回的是一个idainfo类型的结构体。
ida_ida.is_32bit()/is_64bit():判断IDA是否为32位的还是64位的,属于idainfo的一个方法属性。
idautils.Assemble(head, line):从head地址开始反汇编,寻找直到遇到line这条指令时停止,返回两个变量,一个表示是否成功,另外一个是最后这条line指令的字节表示,例如:ret就会是'\xc3'这一个字节来表示,有些指令可能由多个字节表示。
idc.GetMnem(ea):获取ea地址处的指令助记符,兼容函数,同“print_insn_