1.载入PEID

PEncrypt 4.0 Gamma / 4.0 Phi -> junkcode [Overlay]

2.载入OD,没什么头绪,忽略所有异常,用最后一次异常法shift+F9运行两次,因为第三次会跑飞,所以运行两次,另外这个壳使用单步太费劲了,一不小心就跑飞了,所以直接使用的最后一次异常法进行脱壳的

 >  FC              cld                               ; //入口点
FC cld
FC cld
nop
- E9 BDBA0000 jmp PEncrypt.0040CAC6
- E3 D5 jecxz short PEncrypt.00400FE0
0040100B 4F add al,0x4F
0040100D - A4 je short PEncrypt.00400FB3
0040100F D248 ror byte ptr ds:[eax+0x74],cl
 

3.最后一次异常法的落脚点,落脚后,右键—转到—表达式—输入SE句柄(也叫SE处理程序)”0040CCD7”—回车

0040CCD0    9D              popfd
0040CCD1 nop
0040CCD2 4B dec ebx ; //最后一次异常法落脚点
0040CCD3 6F outs dx,dword ptr es:[edi]
0040CCD4 arpl word ptr ds:[eax+0x69],bp
0040CCD7 8B4424 mov eax,dword ptr ss:[esp+0x4]
0040CCDB 8B00 mov eax,dword ptr ds:[eax]
0040CCDD 3D cmp eax,0x80000004 0012FF88 0040CCD7 SE处理程序

4.回车后的位置,然后F2,SHIFT+F9,F2,也就是让程序运行到转到的位置上,然后继续F8,F8过程中,记得在向上跳转的下一行F4,也就是让程序运行到向上跳转的下一行,这是脱壳的基本原则,尽量不让程序往回跳

0040CCD3    6F              outs dx,dword ptr es:[edi]
0040CCD4 arpl word ptr ds:[eax+0x69],bp
0040CCD7 8B4424 mov eax,dword ptr ss:[esp+0x4] ; //回车的位置
0040CCDB 8B00 mov eax,dword ptr ds:[eax]
0040CCDD 3D cmp eax,0x80000004
0040CCE2 je short PEncrypt.0040CCEA
0040CCE4 4B dec ebx
 

5.找到关键跳,指向OEP的关键跳

0040CD26    9D              popfd
0040CD27 popad
0040CD28 BD CC104000 mov ebp,PEncrypt.004010CC
0040CD2D - FFE5 jmp ebp ; //指向OEP的关键跳
0040CD2F add byte ptr ds:[eax],al
0040CD31 add byte ptr ds:[eax],al
0040CD33 add byte ptr ds:[eax],al
 

6.来到OEP,进行脱壳,需要注意的是脱壳后无法正常运行,需要使用loadPE重建PE表才可以正常运行

004010CC                  push ebp                          ; PEncrypt.004010CC
004010CD 8BEC mov ebp,esp
004010CF 83EC sub esp,0x44
004010D2 push esi
004010D3 FF15 E4634000 call dword ptr ds:[<&KERNEL32.Get>; kernel32.GetCommandLineA
004010D9 8BF0 mov esi,eax
004010DB 8A00 mov al,byte ptr ds:[eax]
004010DD 3C cmp al,0x22
004010DF 1B jnz short PEncrypt.004010FC

7.运行查壳

运行OK,查壳:Microsoft Visual C++ v6.0 SPx

手脱PEncrypt 4.0的更多相关文章

  1. 手脱EZIP v1.0

    一.单步 1.载入PEID查壳 EZIP v1.0 2.载入OD,一上来就是一个大跳转,F8单步一直走 0040D0BE > $ /E9 jmp Notepad.004102DC ; //入口点 ...

  2. 手脱ACProtect V2.0(无Stolen Code)

    1.载入PEID ACProtect V2.0 -> risco 2.载入OD > 00A04000 push ACP_Feed.0040A000 ; //入口点 0B104000 pus ...

  3. 手脱FSG 2.0 -> bart/xt

    声明: 只为纪录自己的脱壳历程,高手勿喷 1.在入口的第二行ESP定律下硬件断点然后F9运行8次(因为第9次就跑飞了) 0040955C > pushad 0040955D EB jmp //E ...

  4. 手脱Aspack变形壳1

    1.载入PEID Aspack v2.12 -> www.aspack.com 2.载入OD,不管是看查壳信息还是看入口特征都跟我上一次发的一个手脱Aspack v2.12的帖子相同http:/ ...

  5. 简单脱壳教程笔记(2)---手脱UPX壳(1)

    本笔记是针对ximo早期发的脱壳基础视频教程,整理的笔记. ximo早期发的脱壳基础视频教程 下载地址如下: http://down.52pojie.cn/%E5%90%BE%E7%88%B1%E7% ...

  6. 简单脱壳教程笔记(7)---手脱PECompact2.X壳

    本笔记是针对ximo早期发的脱壳基础视频教程.整理的笔记.本笔记用到的工具下载地址: http://download.csdn.net/detail/obuyiseng/9466056 简单介绍: F ...

  7. 手动脱KBys Packer(0.28)壳实战

    作者:Fly2015 吾爱破解培训第一课选修作业第5个练习程序.在公司的时候用郁金香OD调试该加壳程序的时候出了点问题,可是回家用吾爱破解版的OD一调试,浑身精神爽,啥问题也没有. 首先使用查壳工具对 ...

  8. 【个人笔记】ximo早期发的脱壳教程——手脱UPX壳

    [个人笔记]ximo早期发的脱壳教程--手脱UPX壳   壳分为两种:压缩壳和加密壳,UPX是一种很简单的压缩壳.   手脱UPX壳: 工具:ExeinfoPE.OD 对象:rmvbfix 方法1:单 ...

  9. 手脱PE Pack v1.0

    1.PEID查壳 PE Pack v1.0 2.载入OD,一上来就这架势,先F8走着 > / je ; //入口点 -\E9 C49D0000 jmp Pepack_1.0040D000 004 ...

随机推荐

  1. FIsherman丶Team

    小组成员:郝恒杰,洪佳兴,张子祥 组长:郝恒杰 项目:Fisher Job(渔夫兼职) 简介: 我们的产品渔夫兼职是为了解决大学生兼职群体 的痛苦,他们需要一个好的渠道去找一个让自己满意的兼职,但是现 ...

  2. 按Right-BICEP要求的对任务二的测试用例

    测试方法:Right-BICEP 测试计划 1.Right-结果是否正确? 2.B-是否所有的边界条件都是正确的? 3.P-是否满足性能要求? 4.是否有乘除法? 5.是否有括号? 6.是否有真分数? ...

  3. 【Leetcode】50. Pow(x, n)

    Implement pow(x, n). Example 1: Input: 2.00000, 10 Output: 1024.00000 Example 2: Input: 2.10000, 3 O ...

  4. 安恒杯-babysql

    1. 库名 ?id= and extractvalue(,(select group_concat(0x3a,schema_name) from information_schema.schemata ...

  5. jetty之maven配置

    <!-- jetty 插件配置 --><plugin> <groupId>org.mortbay.jetty</groupId> <artifac ...

  6. PHP中访问控制修饰符

    访问控制修饰符 形式: class  类名{ 访问控制修饰符  属性或方法定义: } 有3个访问修饰符: public公共的:在所有位置都可访问(使用). protected受保护的:只能再该类内部和 ...

  7. eclipse官方网址、各个版本的下载

    Eclipse3.1后各版本代号 (2013-07-10 20:48:42) 转载▼   分类: Java Eclipse 3.1 版本代号 IO [木卫1,伊奥]  Eclipse 3.2 版本代号 ...

  8. 【转】Base64算法详解

    原文链接:https://blog.csdn.net/robertcpp/article/details/51628647 完整的BASE64定义可见RFC 1421和RFC 2045.编码后的数据比 ...

  9. 开源人脸识别face_recognition

    环境:python36 1.安装dlib.face_recognition windows版 下载dlib,cp后面是py版本 下载地址:https://pypi.org/simple/dlib/ 提 ...

  10. Android自动化 -- sendevent/getevent 用法

    getevent&sendevent 是android系统下的一个工具,可以 模拟 多种按键和触屏操作,产生的是raw event,raw event经过event hub处理产生最终的ges ...