发布网友 发布时间:2024-10-23 17:59
共1个回答
热心网友 时间:2024-10-27 03:31
【文章标题】: Vmp1.21学习笔记
【软件名称】: Vmp1.21
【编写语言】: Borland Delphi 4.0 - 5.0
【操作平台】: win7 32位
【详细过程】
【章节目录】
第一章: 壳的基础操作
第二章: Opcode快速入门
第三章: 反汇编引擎框架学习
第四章: 壳的初始化与Handle块优化
第五章: 壳的重定位修复(未完成)
第六章: 壳的伪代码生成与排序等等(未完成)
第七章: 万用门介绍(未完成)
第八章: Vmp壳的实现或则去混淆插件(不打算写了感觉太麻烦了)
2019年08月09日 23:31:16
【基础知识之加壳基本套路】
【读取PE基本信息】
定义的结构如下:
【获取到壳要的各种API】
【将用户要VM的Opcode进行解析】
【如何定位到加密按钮】
【sub_4A3414函数分析】
【指令前缀讲解】(可选)
【Opcode结构顺序是不能被打乱的】
【指令前缀分为四组】
【强制性前缀应当位于其他可选的前缀之后(例外的情形请查看第2.2.1节,”REX前缀”)】
【操作数大小重载前缀允许程序在16位和32位操作数大小间切换】
【地址尺寸重载前缀(67H)允许程序在16位和32位地址间切换】
【ModR/M 和 SIB 字节】(可选)
【ModR/M字节包含3个域信息】
【某些ModR/M字节编码需要第二寻址字节(SIB)。基址+索引或者比例+索引形式的32位寻址需要SIB字节】
【针对前面内容进行实践】
【举例说明】
【指令拆解】
【解析Opcode】
【分析ModRM】(查表)
【分析SIB】(查表)
【得到:MOV DWORD PTR ES:[EAX+ECX*8+0x11223344],0x12345678