开源x64程序混淆器Alcatraz
项目地址 https://github.com/weak1337/Alcatraz
拿了一个驱动程序试了一下,效果还不错
混淆前
混淆后
就是不知道好不好anti了
源码分析
项目代码不多,大概一两千行吧。
通过pdb解析到exe中所有的函数,然后存在std::vector内。
auto functions = pdb.parse_functions();
利用zydis解析每个函数的每条指令
obfuscator obf(&pe);
obf.create_functions(functions);
remove_jumptables函数相关 不懂为什么要在混淆函数列表中删除这种函数。
bool obfuscator::analyze_functions()
mov混淆 lea混淆
都是动态解密数字的例子
flatten_control_flow 扁平化技术,google control flow flattening就能查到,处理起来比较费事。