Virtualize
Tigress官网virtualize
虚拟化指的是用不同的解释器去执行一个程序里不同部分的代码。具体的原理这篇博客讲的特别好。
总结一下,通过Virtualize变换后的源代码中有以下几个部分。
- virtual instruction set
- bytecode array
- virtual program counter
- virtual stack pointer
- dispatch unit
- instruction handlers
在Tigress里面,使用如下命令生成经过virtualize变换后的.c文件,可以找到以上这几部分:
混淆命令
tigress \
--Environment=x86_64:Linux:Gcc:4.6 \
--Transform=Virtualize \
--Functions=fib \
--VirtualizeDispatch=switch \
--Transform=CleanUp --CleanUpKinds=annotations \
--out=out.c test1.c
- virtual instruction set
指这里采用的指令集的定义