-
-
[原创]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 ]))
|
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!