鱼无论次 发表于 2019-8-8 22:29

VMP学习笔记之壳基础(一)

本帖最后由 鱼无论次 于 2019-9-5 23:17 编辑

【文章标题】: Vmp1.21学习笔记
【文章作者】: 黑手_鱼
【软件名称】: Vmp1.21
【下载地址】: 自己搜索下载
【加壳方式】: UPX 0.89.6 - 1.02 / 1.05 - 2.90 (Delphi)
【编写语言】: Borland Delphi 4.0 - 5.0
【操作平台】: win7 32位
【作者声明】: 以看雪作者waiWH的VMP还原系列为参考原型逆向分析
--------------------------------------------------------------------------------
【详细过程】
章节目录:
第一章内容:
主题:壳的基本操作
1、读取PE结构信息
2、增加区段
3、根据加密等级选择不同的框架
第二章内容:
主题:Opcode快速入门
1、了解Opcode解析过程
2、辅助第三章解析Opcode引擎而编写的
3、无脑查表就对了
第三章内容:
主题:反汇编引擎框架学习
1、看懂第二章就看得懂第三章
2、无脑查表就对了
第四章内容:
主题:壳的初始化与Handle块优化
1、去掉无用的Handle块(不重要)
2、指令的等级变换
3、部分指令变形
4、汇编的多变性
例如;
jmp = push + retn或则lea + jmp
lods byte ptr ds: = mov al, + inc esi 或则 mov al, + add esi,1
第五章内容 :
主题:壳的重定位修复
第六章内容:
主题:壳的伪代码生成与排序等等
第七章内容 :
主题:万用门介绍
第八章内容:
主题:Vmp壳的实现或则去混淆插件(不打算写了感觉太麻烦了)

--------------------------------------------------------------------------------

                                                       2019年08月09日 23:31:16
说明:
1、加壳机的壳是秒杀壳,自行百度
2、HelloASM.exe是测试demo
3、保护全关








正文:
0、基础知识之加壳基本套路:
1、读取PE信息
2、添加区段
3、修复重定位
4、获取壳需要使用的API(PEB那一套)

1、读取PE基本信息


定义的结构如下:


2、获取到壳要的各种API(这里没怎么看)

3、将用户要VM的Opcode进行解析(这个后面有详细说明)




4、如何定位到加密按钮
1、使用DarkDe4.exe

2、分析的设置是保护全关,所以ProtectOptions = 8

3、分析关键函数sub_4A3414(最核心的函数)


5、sub_4A3414函数分析
1、偏移到新区段的起始地址

2、判断RVA合法性


3、内存对齐后的总大小

4、根据保护等级选择使用哪个壳模板,并设置区段保护属性

5、壳模板一共有6个

6、我们使用的是474974,到这里这篇章节就完成了


下一篇内容解析Opcode

使用到的资料打包:

链接: https://share.weiyun.com/5vkBktK (密码:52pj)

heiketian10 发表于 2019-8-9 07:52

顶你出系列

Hnldxjh 发表于 2019-8-9 10:22

老师辛苦了,继续关注!

yuanshengyin 发表于 2019-8-9 10:36

谢谢老师分享

吾爱阿伤 发表于 2019-8-9 12:10

多多学习 支持大佬

yaoyao7 发表于 2019-9-30 10:00

支持师傅出系列

yuehen 发表于 2019-10-1 15:09

谢谢分享,学习一下

异乡人在他乡 发表于 2019-10-6 10:51

学习一下,感谢分享
页: [1]
查看完整版本: VMP学习笔记之壳基础(一)