IDAPython学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDAPython学习相关的知识,希望对你有一定的参考价值。
1、概述
IDAPython在IDA中集成了Python解释器,除了提供了Python功能外,使用这个插件还可以编写实现IDC脚本语言的所有Python脚本。
IDAPython显著优势在于,它可以充分利用Python强大的数据处理能力及所有的Python模块。
IDAPython还具有IDA SDK的大部分功能,与IDC相比,使用它可以编写功能更加强大的脚本。
IDAPython有一个缺点就是文档资源太少,容易造成障碍。
2、IDAPython三个模块:
- idaapi.py: 负责访问核心IDA API。
- idautils.py: 提供大量的使用函数。
- idc.py: 负责提供IDC中所有函数的功能。
参考链接:三个文件介绍可用函数
在IDAPython的idautils模块中包含了多个生成器函数,使用它们可以生成比我们在IDC脚本中看到的列表更加直观的交叉引用列表。
3、实例
# ## another way to search all not safe functions # from idaapi import * def judgeAduit(addr): ‘‘‘ not safe function handler ‘‘‘ MakeComm(addr,"### AUDIT HERE ###") SetColor(addr,CIC_ITEM,0x0000ff) #set backgroud to red pass def flagCalls(danger_funcs): ‘‘‘ not safe function finder ‘‘‘ count = 0 for func in danger_funcs: faddr = LocByName( func ) if faddr != BADADDR: # Grab the cross-references to this address cross_refs = CodeRefsTo( faddr, 0 ) for addr in cross_refs: count += 1 Message("%s[%d] calls 0x%08x\n"%(func,count,addr)) judgeAduit(addr) if __name__ == ‘__main__‘: ‘‘‘ handle all not safe functions ‘‘‘ print "-------------------------------" danger_funcs = ["strcpy","sprintf","strncpy"] flagCalls(danger_funcs) print "-------------------------------"
以上是关于IDAPython学习的主要内容,如果未能解决你的问题,请参考以下文章