开源x64程序混淆器Alcatraz

项目地址 https://github.com/weak1337/Alcatraz

拿了一个驱动程序试了一下,效果还不错

混淆前


image.png

混淆后


image.png image.png

就是不知道好不好anti了

源码分析


项目代码不多,大概一两千行吧。

通过pdb解析到exe中所有的函数,然后存在std::vector内。

auto functions = pdb.parse_functions();

利用zydis解析每个函数的每条指令

obfuscator obf(&pe);
obf.create_functions(functions);

remove_jumptables函数相关 不懂为什么要在混淆函数列表中删除这种函数。 image.png image.png

bool obfuscator::analyze_functions() image.png image.png

mov混淆 image.png image.png lea混淆 image.png

都是动态解密数字的例子

flatten_control_flow 扁平化技术,google control flow flattening就能查到,处理起来比较费事。