IDApython的学习 世界今热点
2023-07-01 06:15:44
博客园 2023-07-01 06:15:44
(资料图)
我的IDA情况:IDA7.7,idapython3.8这个可以作为文件导入和命令行内输入,我一般习惯命令行这里要注意是python不是IDC
idc.get_wide_byte(ea) // 获取单字节,按整形解释idc.get_wide_word(ea) // 获取双字节,按整形解释idc.get_wide_dword(ea) // 获取四字节,按整形解释idc.get_qword(ea) // 获取八字节,按整形解释idc.GetFloat(ea) //获取四字节,按浮点解释idc.GetDouble(ea)//获取八字节,按浮点解释idc.get_bytes(ea,size) // 在ea获取size字节,按byte解释
从ea获取一个字节,以整形的形式返回
从ea获取2个字节,以整形的形式返回,这里 为了方便大家看,我把整形转为16进制这里注意小端序
从ea获取4个字节,以整形的形式返回
从ea获取8个字节,以整形的形式返回
从ea获取4个字节,以浮点的形式返回
从ea获取8个字节,以浮点的形式返回
在ea获取size字节,按byte解释
一般和获取原数据的api配合使用idc.patch_byte(ea, value)idc.patch_word(ea, value)idc.patch_dword(ea, value)idc.patch_qword(ea, value)
下面就不一一演示了。
idc.GetDisasm(ea)//获取ea的汇编指令 比如 mov rbp, rspidc.print_insn_mnem(ea)//获取ea的汇编指令的名字,比如movidc.print_operand(ea,0)//获取操作数的文本表示形式指令(或数据)的线性地址N -操作数个数:0 -第一个操作数1 -第二个操作数返回:操作数的当前文本表示形式比如 rbp,同理idc.print_operand(ea,1)为rsp