首页
论坛
专栏
课程

[分享]VMP学习笔记之壳基础流程(一)

2019-8-8 22:18 3398

[分享]VMP学习笔记之壳基础流程(一)

2019-8-8 22:18
3398


【文章标题】: 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:[esi] = mov al,[esi] + inc esi 或则 mov al,[esi] + add esi,1

  第五章内容  :
  主题:壳的重定位修复

  第六章内容 :
  主题:壳的伪代码生成与排序等等

  第七章内容:

  主题:万用门介绍

  1、NOR实现逻辑运算

  2、cmp实现(sub)

  3、jxx实现



  第八章内容:
  主题: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://qifu.kanxue.com

最后于 2019-9-14 18:08 被黑手鱼编辑 ,原因:
上传的附件:
最新回复 (2)
113254.. 2019-8-9 01:10
2
0
大佬学这个要什么基础
kanxue 8 2019-8-21 18:12
3
0
这个精华,是针对文章头部几篇系列文章总评。
游客
登录 | 注册 方可回帖
返回