相关工具可在看雪及网上找到:
Oreans UnVirtualizer VM恢复插件
Code Virtualizer v1.3.8 加密工具
OD 调试工具
加密目标程序源码选择Code Virtualizer v1.3.8中自带的例子
路径:\Examples\C\VC\32-bit\Via API
编译环境 VC6.0
先观察下源码中准备加密的部分
//////////////////////////////////////////////////////////////////////////////////////////////////////
if (LOWORD(wParam) == IDC_BUTTON_ENCODE1)
{
// the following code, inside the VIRTUALIZER macro, will be converted
// into virtual opcodes
VIRTUALIZER_START //VM开始标志宏
for (int i = 0; i < 10; i++)
{
value += value * i;
}
MessageBox(NULL, "This is the Virtualizer macro #1", "Virtualizer Macro", MB_OK + MB_ICONINFORMATION);
VIRTUALIZER_END //VM结束标志宏
}
else if (LOWORD(wParam) == IDC_BUTTON_ENCODE2)
{
// the following code, inside the VIRTUALIZER macro, will be converted
// into virtual opcodes
VIRTUALIZER_MUTATE2_START //VM开始2
for (int i = 0; i < 10; i++)
{
value += value * i * 3;
}
MessageBox(NULL, "This is the Virtualizer with mutation level 2", "Virtualizer Macro", MB_OK + MB_ICONINFORMATION);
VIRTUALIZER_END //VM结束2
}
///////////////////////////////////////////////////////////////////////////////////////////////////////