首页 > 代码库 > IDAPython学习(一)
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学习(一)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。