-
-
[原创]VMProtect分析(一)
-
发表于:
2021-7-6 18:50
34070
-
由于工作需要,经常会接触一些加过壳的软件,VMProtect是其中自己比较'欣赏'的一款加壳软件,曾考虑过做一次庖丁解'V',无奈工作较忙,一直没有合适的机会(太懒),不过,好在终于说服自己开始了。言归正传,先从运行时开始。
将下述代码编译为控制台X64可执行程序VMP.exe.
使用VMProtect Ultimate v 2.13.5 加壳处理,生成VMP_UserDebugger.exe:
X64DBG启动调试:
先运行跟踪抓一些代码,方便分析:
当执行到如下所示代码处时,所需的寄存器环境已基本初始化完成完成(000-05B为寄存器初始化代码):
此时,运行环境已基本初始化完成(分析见下文),需特别关注的寄存器如下表所示:
R12
Handler表(未赋值)
R13
Handler基址
RBP
栈顶指针
RSI
字节码缓冲区(偏移)
RDI
伪寄存器组
RBX
解密Seed
PS:
此时,栈中已压入Handler基址数据,此时栈顶指针RBP指向栈底-8位置,而不是栈底。
分析后续代码:
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-7-7 09:59
被Anakin Stone编辑
,原因: