-
-
[分享][转帖]movfuscator: 只利用mov指令的开源虚拟机加密编译器
-
发表于:
2016-3-22 04:37
5890
-
[分享][转帖]movfuscator: 只利用mov指令的开源虚拟机加密编译器
剑桥大学的Stephen Dolan证明了
x86的mov指令是图灵完全的(论文见
此)。这意味着从理论上来讲,x86只要有mov这一条指令就可以完成几乎所有功能了(可能还需要jmp),其他指令都是“多余的”。受此启发,有个大牛做了一个虚拟机加密编译器。它是一个修改版的LCC编译器,输入是C语言代码,输出的obj里面直接包含了虚拟机加密后的代码。如它的名字,
函数的所有代码只有mov指令,没有其他任何指令。对,完全没有,连call,jz,ret之类的都没有。
开源项目地址:https://github.com/xoreaxeaxeax/movfuscator
目前只能在Linux下编译运行。可能cygwin也可以,没有试过。项目主页里面有这个虚拟机的原理解释。
可以对比看效果,一个C函数is_prime,以下是普通的gcc编译器输出的结果:
以下是这个虚拟机混淆编译器输出的结果:
可见茫茫一片全是mov指令!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课