本文为看雪论坛优秀文章!
看雪论坛作者id:黑手鱼
【加壳方式】upx 0.89.6 - 1.02 / 1.05 - 2.90 (delphi)星辰云网络验证,星辰云网络验证网络验证系统是为软件作者设计的一套完整免费的网络验证体系。可以为开发的软件增加收费授权的功能,让作者开发的软件可以进行销售、充值、登陆等操作,并且提供防破解验证功能,可以更好的保护您的作品。同时增加了一系列代理管理机制,让您更好的管理代理售卡、换卡、结算等操作。
【编写语言】borland delphi 4.0 - 5.0
【操作平台】win7 32位
【作者声明】以看雪作者waiwh的vmp还原系列为参考原型逆向分析壳基础流程说明:加壳机的壳是秒杀壳,自行百度helloasm.exe是测试demo保护全关
1、读取pe 基本结构
定义的结构如下:
2、获取到壳要的各种api
4、定位到加密按钮
(1)使用darkde4.exe(2)分析的设置是保护全关,所以protectoptions=8(3)分析关键函数sub_4a3414(最核心的函数)
5、sub_4a3414函数分析
(1)偏移到新区段的起始地址(2)判断rva合法性(3)内存对齐后的总大小(4)根据保护等级选择使用哪个壳模板,并设置区段保护属性(5)壳模板一共有6个(6)我们使用的是474974,到这里这篇章节就完成了
1、快速入门opcode
intel-64和ia-32架构指令编码是图2-1所示格式的子集。一条指令包括可选的指令前缀(顺序任意),主操作码(最多3字节),由modr/m和sib字节(可选)组成的地址格式描述符(如果需要的话),偏移量(可选)以及立即数(可选)。总结:a. 根据上图所示我们知道一条汇编指令分为以下几个部分:
1)legacy prefix(可选)
2)rex prefix(用于64位模式,这里不做讲解)
3)opcode(必须有)
4)modrm(可选)
5)sib(可选)
6)displacement(可选)
7)immediate(可选)
b. opcode结构顺序是不能被打乱的