-
-
[原创]谈谈vmp的还原(3)
-
发表于:
2018-4-14 19:32
7892
-
先说context
init初始化context分两种情况
那么第二种,就是随机生成了
关于pushad pushfd的保存
选取空闲的context
代码如下:
这里说下,看到这部分实现的时候,脑子里的想法是当成树结构,用dfs去识别判断,因为以为是真轮转。记得,还给校长说,加密与解密那个目录处理的方法好像是图算法。
再注意到a2/v13 == 2, 才会去get context
随意看一个调用,很明显tpye == 2才会去
那么其他的情况在只是return context,那么就好办了,因为可以得到,并不是真轮转
0x10 变形
下面这个东西,也是我最佩服vmp作者的地方,因为就这点东西,就可以做很多事情了。
注意是倒叙进行判断的
当我进行分析的时候,如果不是语言不在同一个频道,可能就膜拜了。
随意的,举个例子。这里可能会需要一些数据结构的知识
。
记当前结构为一个_cur_node
记当前上一个节点为_prev_node
记当前下一个节点为_next_node
假定
这两条在操作什么,很明显,可以看出vmp不是没有一些组合的
那么可能会出现下面的情况
_next_node变成PUSH ESP
new node,生成一个新的节点,记为_tmp_node
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-4-15 18:22
被waiWH编辑
,原因: