首页
社区
课程
招聘
[原创]flare-emu模拟执行静态解
发表于: 2021-1-7 15:56 4609

[原创]flare-emu模拟执行静态解

2021-1-7 15:56
4609

前因: 之前分析某一个样本,使用了一个很大的加密算法,该算法去解密很多字符串,用过idapython都知道这个时候就是搞懂算法然后批量解就行了,但是耗时,虽然算法最后都需要攻克,但是会搞心态,推荐模拟执行完成解密。

 

先看一下效果:
自定义一个demo,解密三个字符串,调用同一个解密算法,建议使用debuge模式,release直接优化了函数:
图片描述

 

简单分析一下:
图片描述
按照之前流程直接分析算法,然后idapython写脚本静态解密就行,但是这是一个简单的算法,如果比较大就会比较耗时。

 

看一下模拟执行脚本:
图片描述

 

放到ida看一下效果:
图片描述
后面就是MakeComm和xref函数循环调用的事情了。
正常运行:
图片描述

 

下载链接:https://github.com/fireeye/flare-emu
这三个文件放到ida 的plugins目录下
图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
from __future__ import print_function
import flare_emu
 
 
def myCallback(eh, address, argv, userDate):
    print("%08x: arg0: %08x" % (address, argv[0]))
 
 
eh = flare_emu.EmuHelper()
eh.iterate(0x0041196A, myCallback)  # 调用解密函数位置
myStack = [0, b"dgyf'dgh'}idg"]
mu = eh.emulateRange(0x004110DC, stack=myStack)  # 模拟起始位置
print("dec_string: %s" % eh.getEmuString(myStack[1]))

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1829
活跃值: (4045)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错,挺方便的,学到了
2021-1-8 14:33
0
雪    币: 10
活跃值: (422)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
周一试一下。
2021-1-8 23:36
0
雪    币: 10
活跃值: (422)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
周一试一下。
2021-1-8 23:36
0
游客
登录 | 注册 方可回帖
返回
//