首先,先给出几个工具.大概都是伪码类的.之前也介绍过.首先推荐的是zdhysd 师傅的VMP分析插件 1.4 之前介绍过了..
下载地址:http://bbs.pediy.com/thread-154621.htm
剩下的大家也都用过.一个是木木老师的OoWoodOne 堪比Ximo师傅的zeus 个人用的觉得比zeus更好用一点.而且带源码.
下载地址:http://bbs.pediy.com/thread-203683.htm
其他的一些ximo老师的zeus,noboy老师FkVMP 之类的大家都熟悉就不提了..伪码类的VMP分析插件 1.4 用起来很好.除了某些小问题.而且最主要可以自定义规则识别.这个是很强大的地方..如果,对代码很熟悉那么还原起来 还是比较快的.只不过是手动还原罢了.容易出错.这些主要都是逻辑还原.本人觉得从技术上来讲纯asm还原并不现实.因为,我们所谓的轮转机制只不过是一个用寄存器体系 去理解的VM.跟实际寄存器并没有什么关系. 对于VM分析来讲 你用的是哪个寄存器 对我们对VM进行分析 并无影响.可以用伪码进行代表 还原逻辑.然后 再反推寄存器.这是一个很大的工程..根据我已知的消息.其实 已经有很多还原引擎 只不过 我们这些菜鸟未曾一见. 比如大部分cug ccg的前辈....好啦 吹逼就到这里.VM机制不是这个帖子要讲的.如果要讲 也不是我这个菜鸟能讲的..我只聊聊插件怎么用...233333很早之前用过VMSweeper1.4 觉得不太好用 之后就没有关注过.然后,这几天有个项目要还原VM.开始的时候 用ZEUS 分析好vmhandler 然后到VMVMP 也就是 disp什么的那个地方 分配跳转的..英文不好.专业名词不会.大概理解吧...手动记事本写了三页..瞬间觉得不是人做的工作..心好痛.又不会编程.得了吧..找找现成插件吧..开始的时候用的VM 分析插件handler 分析没错 但是算法分析有问题.调试起来问题很多..蛋疼的一腿..然后 就拿起了.VMSweeper 但是,还是不行.局限性太大...可是 默默的发现了 这玩意 还原VM还原起来 很是舒服啊. 除了很多插件上的BUG 但是 堆栈反推没有出错.于是有了这篇文章.事先说明.这些插件使用的局限性很大.毕竟一个系统的还原插件不是一时可以写出来的.就算写出来 大部分师傅 也只是 扔着烂硬盘....对 别看别人 就是你brack老师....这篇文章 我只是简单讲解一下.实际应用之中会遇到很多问题.大部分时候不适合实际应用....开课:先上未被VM时候的原始代码004010A1 /. 55 push ebp
004010A2 |. 8BEC mov ebp,esp
004010A4 |. 81EC 0C000000 sub esp,0xC
004010AA |. C745 FC 00000>mov [local.1],0x0
004010B1 |. C745 F8 00000>mov [local.2],0x0
004010B8 |. EB 10 jmp short 测试.004010CA
004010BA |. 56 4D 50 72 6>ascii "VMProtect begin",0
004010CA |> B8 A8E64700 mov eax,测试.0047E6A8 ; ASCII "23333"
004010CF |. 50 push eax
004010D0 |. 8B5D FC mov ebx,[local.1]
004010D3 |. 85DB test ebx,ebx
004010D5 |. 74 09 je short 测试.004010E0
004010D7 |. 53 push ebx
004010D8 |. E8 00010000 call 测试.004011DD ; jmp 到
004010DD |. 83C4 04 add esp,0x4
004010E0 |> 58 pop eax
004010E1 |. 8945 FC mov [local.1],eax
004010E4 |. B8 AEE64700 mov eax,测试.0047E6AE ; 你猜
004010E9 |. 50 push eax
004010EA |. 8B5D F8 mov ebx,[local.2]
004010ED |. 85DB test ebx,ebx
004010EF |. 74 09 je short 测试.004010FA
004010F1 |. 53 push ebx
004010F2 |. E8 E6000000 call 测试.004011DD ; jmp 到
004010F7 |. 83C4 04 add esp,0x4
004010FA |> 58 pop eax
004010FB |. 8945 F8 mov [local.2],eax
004010FE |. 8B45 F8 mov eax,[local.2]
00401101 |. 50 push eax
00401102 |. FF75 FC push [local.1]
00401105 |. E8 FAFEFFFF call
0040110A |. 83C4 08 add esp,0x8
0040110D |. 83F8 00 cmp eax,0x0