参考资料
资料下载: VMP1.21
说明:
1、加壳机的壳是秒杀壳,自行百度
2、HelloASM.exe是测试demo
3、保护全关
正文:
1、读取PE基本信息
定义的结构如下:
2、获取到壳要的各种API(这里没怎么看)
3、将用户要VM的Opcode进行解析(这个后面有详细说明)
4、如何定位到加密按钮
1、使用DarkDe4.exe
2、分析的设置是保护全关,所以ProtectOptions = 8
3、分析关键函数sub_4A3414(最核心的函数)
5、sub_4A3414函数分析
1、偏移到新区段的起始地址
2、判断RVA合法性
2、1 设置起始struct_VmpAllDataPY_60结构,构造好push jmp跳转地址
OD视图:
最终效果视图:
3、内存对齐后的总大小
3、1 将内存对齐后的总大小保存到struct_VmpAllDataPY_60结构里当作壳的OEP也就是Vmp入口
根据大小将地址往后移0x40或则0xC0个字节(这个就是VMCONTEXT的大小)
OD视图:
最终结果:
我们发现它是从0x40504B开始,并非0x405040地址开始,这个后续讲解