吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4890|回复: 8
收起左侧

[Python 转载] 几个ida python脚本的实战例子

  [复制链接]
buzhifou01 发表于 2019-11-24 19:02
在使用IDA工具进行逆向分析时,有时需要用到ida python脚本来帮助我们分析程序,接下来分享几个实战例子供大家学习。
例子1:遍历程序中所有的函数并输出程序的起始地址和函数名
[Python] 纯文本查看 复制代码
ea = ScreenEA()
for function_ea in Functions(SegStart(ea), SegEnd(ea)):
    print hex(function_ea), GetFunctionName(function_ea)

例子2:循环遍历所有段并逐字节获取它们的数据
[Python] 纯文本查看 复制代码
segments = dict()
for seg_ea in Segments():
data = []
for ea in range(seg_ea, SegEnd(seg_ea)): #遍历段内每个地址

data.append(chr(Byte(ea))) #获取字节及字节对应的字符

segments[SegName(seg_ea)] = ''.join(data) #赋值段中的数据
for seg_name, seg_data in segments.items(): #输出段名及段中数据大小
print seg_name, len(seg_data)
例子3:输出代码段中的指令,并统计指令数量
[Python] 纯文本查看 复制代码
memories=dict()

for seg in Segments(): #遍历所有的段
	if SegName(seg)=='.text': 
		for head in Heads(seg,SegEnd(seg)): #遍历所有指令,head为地址
			if isCode(GetFlags(head)): #判断是否为指令
				flag=GetMnem(head) #获取汇编指令
print "flag ",flag
memories[flag]=memories.get(flag,0)+1 #统计指令个数
all=map(lambda x:(x[1],x[0]),memories.items()) 
all.sort() #排序

for pri,sed in all:
	print pri,sed

例子4:该例子遍历所有函数,并查找所有对每个函数执行的调用,引用将存储在两个字典中。
[Python] 纯文本查看 复制代码
from sets import Set
ea=ScreenEA()
Par=dict()
son=dict()
for fun in Functions(SegStart(ea),SegEnd(ea)):  #遍历函数
	f_name=GetFunctionName(fun) 
	Par[f_name]=Set(map(GetFunctionName,CodeRefsTo(fun,0))) #创建一个集合,其中包含调用(引用)的所有函数的名称
	for fun_son in CodeRefsTo(fun,0): #遍历所有的引用
		fname_son=GetFunctionName(fun_son) #获取引用函数的名称
		son[fname_son]=son.get(fname_son,Set())
		son[fname_son].add(f_name); #将当前函数添加到函数列表中
	functions=Set(Par.keys()+son.keys()) #获取所有函数的列表
for per in functions:
   print "%d %s %d" % (len(Par.get(per,[])),per,len(son.get(per,[])))

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
thenow + 1 + 1 谢谢@Thanks!
0xdada + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

s98 发表于 2019-11-24 19:27
感谢大佬了
bluerabbit 发表于 2019-11-24 19:32
0xdada 发表于 2019-11-24 19:34
光之继承者 发表于 2019-11-24 20:01
python脚本这么厉害吗?看来学习python还是很有用的
iamoutdoors 发表于 2019-11-24 20:28
谢谢大侠分享。
道本 发表于 2019-11-24 21:23
多谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 14:29

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表