摘要:关于IDA python的一些api进行记录

打印字符串

ASCSTR_C
ASCSTR_UNICODE 为字符串类型
GetString(ea, length = -1, strtype = STRTYPE_C)

idc版本

auto aa,bb;
aa=0x00403000;
bb= GetString(aa,-1,ASCSTR_C);
print(bb);

python版本

aa=0x00403000;
bb= GetString(aa,);
print(bb)

关于MinEA()和BeginEA()

其中MinEX是指程序被加载到的地方,例如0x401000L。BeginEA()是指程序的入口点,不一定就在0x401000L。

MinEA()和BeginEA().jpg

关于idc.Wait() 和 idaapi.autoWait()

两者没什么区别,idc.Wait() 最后调用的还是idaapi.autoWait()

AddBpt与add_bpt

AddBpt(address)
在address设置软件断点

add_bpt(0x0040100E, 1, BPT_EXEC)
在地址0x0040100E处的1字节设置可执行硬件断点

Add_Bpt(ea_t ea, asize_t size = 0, bpttype_t type =BPT_SOFT) ,貌似也可以设置硬件断点()。
// BPT_EXEC = 0, // 可执行的指令
// BPT_WRITE = 1, // 可写
// BPT_RDWR = 3, // 可读写
// BPT_SOFT = 4; // 软件断点