适用于Androlua的虚拟化代码混淆CM
文件在附件。这是适用于Androlua的虚拟化代码混淆例子,需要破解的是apk中crackme.lua,因为是混淆对抗,所以就不编译字节码给各位增加额外的麻烦了,直接看混淆文本就行啦!我的实现方案:先写了一个Lua版虚拟机,然后用C写了一个翻译器,翻译指令为Lua代码,翻译过程提供选项设置比如是否加密数字什么的配置,然后输出的Lua就是虚拟化混淆后的了。原理是这个原理,但是我在的群扔demo属实没人理我,我就只好在这里发布喽。 BB不错BB不错 说下设计结构,省得其他人先费劲分析这玩意:局部变量绑定(那一堆local),虚拟运行函数定义(主要是包装调用循环抽取指令函数运行),调用。调用参数第一个是一个巨大无比的数据表(他就是翻译器翻译的核心数据输出啦),指令概念具体到每个函数的运行实现,也就是说这个“虚拟机”部分情况是没有操作数概念的,是直接翻译行为。如果走传统识别到操作数还原重构回字节码,感觉挺难的,但是走代码优化我心里没底不知道有没有希望。好了,结构上基本就这样介绍完了。
页:
[1]