ida-idapython

IDAPython

IDAPython是Gergely Erfelyi开发的一个插件,在IDA中集成了python解释器,并且IDAPython还具有IDA SDK大部分功能,所以它能比IDC写出功能更加强大的脚本。但是IDAPython能够参考的文档较少。

我们可以通过IDA目录下python子目录关于IDAPython的三个模块进行学习。

实例

代码来自《揭秘家用路由器0day漏洞挖掘技术》。

#源代码 IDAPython处理危险函数交叉引用
def getFuncAddr(fname):
	return LocByName(fname)
def judgeAduit(addr):
	'''
	not safe function handler
	'''
	MakeComm(addr,"### AUDIT HERE ###")
	SetColor(addr,CIC_ITEM,0X0000ff) #set background to red
def flagCalls(funcname):
	'''
	not safe function finder
	'''
	count=0
	fAddr=ger_func(fAddr)
	if not func is None:
		fname=Name(func.startEA)
		items=FuncItems(func.startEA)
		for i in items:
			for xref in XrefsTo(i,0):
				if xref.type=fl_CN or xref.type==fl_CF:
					count+=1
					Message("%s[%d] calls 0x%08x from =>%08x\n"%(fname,count,xref.frm,i))
					judgeAduit(xref.frm)
	else:
		Warning("No function named '%s' found at location %x"%(funcname,fAddr))

if __name__='__main__':
	'''
	handle all not safe functions
	'''
	flagCalls('strcpy')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值