个人认为这个壳对于新手有那么一点点难度,所以用单步和ESP都跑一下,我觉得单步是最最基础的,所以一定要掌握

一、单步
1.PEID查壳

PECompact v2.xx (16 ms)

2.载入OD,除了以下标注的几个位置外,其他的都使用F8

0040A86D >  B8 74DE4500     mov eax,qqspirit.0045DE74         ; //入口点
0040A872 push eax
0040A873 :FF35 >push dword ptr fs:[]
0040A87A : >mov dword ptr fs:[],esp
0040A881 33C0 xor eax,eax
0040A883 mov dword ptr ds:[eax],ecx
0040A885 push eax

位置1:

778D711D    6A            push 0x0
778D711F push ecx
778D7120 E8 2BE5FFFF call ntdll.ZwContinue ; //程序会跑飞F7跟进
778D7125 EB 0B jmp short ntdll.778D7132
778D7127 5B pop ebx
778D7128 pop ecx
778D7129 6A push 0x0
 

位置2:

778D5650 >  B8 3C000000     mov eax,0x3C                      ; //F7落脚点
778D5655 BA 0003FE7F mov edx,0x7FFE0300
778D565A FF12 call dword ptr ds:[edx] ; //程序会跑飞F7跟进
778D565C C2 retn 0x8
778D565F nop
778D5660 > B8 3D000000 mov eax,0x3D 778D71B0 > 8BD4 mov edx,esp ; //第二个F7落脚点
778D71B2 0F34 sysenter
778D71B4 > C3 retn
778D71B5 8DA424 lea esp,dword ptr ss:[esp]
778D71BC 8D6424 lea esp,dword ptr ss:[esp]
778D71C0 > 8D5424 lea edx,dword ptr ss:[esp+0x8]

3.找到了指向OEP的跳转

0045DF34    5B              pop ebx
0045DF35 5D pop ebp
0045DF36 - FFE0 jmp eax ; //指向OEP的跳转
0045DF38 6D ins dword ptr es:[edi],dx
0045DF39 A8 test al,0x40
0045DF3B add byte ptr ds:[eax],al
 

4.来到OEP,脱壳吧

0040A86D >                push ebp                          ; //来到OEP
0040A86E 8BEC mov ebp,esp
0040A870 6A FF push -0x1
0040A872 push qqspirit.
0040A877 F4E14000 push qqspirit.0040E1F4
0040A87C :A1 mov eax,dword ptr fs:[]
0040A882 push eax
0040A883 : >mov dword ptr fs:[],esp
 

5.运行查壳

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

二、ESP定律

1.载入OD,看到两个push入栈,下一行ESP定律下硬件访问断点然后shift+F9运行一次

0040A86D >  B8 74DE4500     mov eax,qqspirit.0045DE74         ; //入口点
0040A872 push eax
0040A873 :FF35 >push dword ptr fs:[]
0040A87A : >mov dword ptr fs:[],esp ; //ESP定律一次
0040A881 33C0 xor eax,eax
0040A883 mov dword ptr ds:[eax],ecx
 

2.来到ESP的落脚点,单步F8跟下去就能到OEP了

0045DEA3    83C4          add esp,0x4                       ; //ESP落脚点
0045DEA6 push ebp
0045DEA7 push ebx
0045DEA8 push ecx
0045DEA9 push edi
 

3.来到关键跳,这就是指向OEP的跳转

0045DF34    5B              pop ebx
0045DF35 5D pop ebp
0045DF36 - FFE0 jmp eax ; //指向OEP的跳转
0045DF38 6D ins dword ptr es:[edi],dx
0045DF39 A8 test al,0x40
 

4.来到OEP,脱壳、运行、查壳

0040A86D >                push ebp                          ; //OEP
0040A86E 8BEC mov ebp,esp
0040A870 6A FF push -0x1
0040A872 push qqspirit.
0040A877 F4E14000 push qqspirit.0040E1F4
0040A87C :A1 mov eax,dword ptr fs:[]
0040A882 push eax
0040A883 : >mov dword ptr fs:[],esp
0040A88A 83EC sub esp,0x58
 

手脱PECompact v2.xx的更多相关文章

  1. 手脱ASPack v2.12变形壳2

    1.PEID载入 ASPack v2.12 2.载入OD,跟之前帖子的入口特征相同,都是一个pushad,但是请不要怀疑这是同一个壳,绝对不是,pushad下一行ESP定律下硬件断点,然后shift+ ...

  2. 手脱PEtite v2.1

    1.载入PEID PEtite v2.1 2.载入OD,先F8跟一下 0042C10F > B8 00C04200 mov eax,跑跑排行.0042C000 ; //程序入口点 0042C11 ...

  3. 手脱ASPack v2.12

    1.PEID查壳提示为: ASPack 2.12 -> Alexey Solodovnikov 2.载入OD,程序入口点是一个pushad,在他的下一行就可以进行ESP定律,下硬件访问断点然后s ...

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

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

  5. 手脱Aspack变形壳1

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

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

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

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

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

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

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

  9. 手动脱PeCompact 2.20壳实战

    作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...

随机推荐

  1. 【第八章】MySQL数据库备份—逻辑备份

    一.数据库备份 1.命令简介: # mysqldump -h 服务器 -u用户名 -p密码 数据库名 > 备份文件.sql1)关于数据库名: -A, --all-databases       ...

  2. eos开发实践

    一 下载前端代码 git clone https://github.com/baidang201/eos-todo 二 安装nodejs sudo apt-get install python-sof ...

  3. 剑指Offer66题的总结、目录

    原文链接 剑指Offer每日6题系列终于在今天全部完成了,从2017年12月27日到2018年2月27日,历时两个月的写作,其中绝大部分的时间不是花在做题上,而是花在写作上,这个系列不适合大神,大牛, ...

  4. Live Archive 训练题 2019/3/9

    7454 Parentheses A bracket is a punctuation mark, which is used in matched pairs, usually used withi ...

  5. Scrum7

    冲刺阶段的总结 一.各个成员今日完成的任务 组员 任务分工 贡献 林泽宇 团队分工.撰写博客.修改完善需求规格说明书.整理代码规范 李涵 后端架构设计 尹海川 logo设计修改.数据库数据 郏敏杰 课 ...

  6. CS小分队第二阶段冲刺站立会议(5月28日)

    昨日成果:昨天对我们的软件的主界面进行了思考,考虑到许多人建议我们团队添加可以自主增加软件快捷键的功能,我对这一想法的可行性和项目总体策划进行评估分析后,决定正式实施:已经完成从电脑上添加文件在我们的 ...

  7. 第6题 ZigZag转换

    题目描述如下: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of ro ...

  8. iOS界面设计之基础控件的学习 --- UITextField

    学习iOS界面设计也有段时间了,每次写到一些基础控件(如:UILable . UITextField)的时候就深觉应该总结一个函数来实现这些基础控件的属性设置,所以下面就是我对UITextField的 ...

  9. javascript之彻底理解prototype

    prototype很简单, 就是提供一种引用的机制. let BaseObject = { toString(){ return this.str; }, }; let Object1 = {str: ...

  10. 双主双写、只备份某些表且要在建表ID自增

    先展示下最终实现的配置 主1的配置(重要的,其他略) log-bin = mysql-bin #必须要有binlog auto_increment_offset = 1 #自增ID的初始值 auto_ ...