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

一、单步
1.PEID查壳

  1. PECompact v2.xx (16 ms)

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

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

位置1:

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

位置2:

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

3.找到了指向OEP的跳转

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

4.来到OEP,脱壳吧

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

5.运行查壳

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

二、ESP定律

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

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

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

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

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

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

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

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

手脱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. [题解] 洛谷 P3603 雪辉

    模拟赛中遇到了这个题,当时我这个沙雕因为把一个\(y\)打成了\(x\)而爆零.回来重新写这道题,莫名其妙的拿了rank1... 我的解法与其他几位的题解有些不同我太蒻了.并没有选取所谓的关键点,而是 ...

  2. Codeforces Round #613 Div.1 D.Kingdom and its Cities 贪心+虚树

    题目链接:http://codeforces.com/contest/613/problem/D 题意概述: 给出一棵树,每次询问一些点,计算最少删除几个点可以让询问的点两两不连通,无解输出-1.保证 ...

  3. music, let's go

    最近研究个新玩意,叫window.AudioContext;不懂?没关系,我也是才接触,这完全可以说个全新领域,这玩意干啥的?顾名思义,媒体上下文,也就是你媒体的数据分析,就是一串数据啊?那有啥用呢? ...

  4. 0329--Scrum团队准备工作

    一.团队名称,团队目标.团队口号.团队照 1.团队名称:Blackhriar 2.团队目标:完成一个完善的,可以投入市场供用户使用,甚至具有一定商业价值的项目~come on! 3.团队口号:抱怨事件 ...

  5. 复利计算器app发布

    复利计算器app发布 抱歉:由于无法实现服务端的持续开启,发布的app仅为简单的单机版,暂时舍弃了c/s版本的一些功能,如:投资动态管理功能. 应用详情博客:请点击这里 apk下载地址1(百度手机助手 ...

  6. 20162320MyOD重做版

    博客说明 由于上次的MyOD.java没有得分,所以这次我重做了这个java,代码是自己完成的,请教了一些同学的思路.故补交一篇博客来说明我对每一步代码的编写的想法以及理解. 代码片段及理解 1.先创 ...

  7. Android开发第二阶段(5)

    今天:对图片的替换修改,使整个app的图案化更美观. 明天:对Android的对sdcard的操作学习

  8. 《我是一只IT小小鸟》心得

    虽然读这本书是老师布置的作业,但是读了几页后就被书中的内容所吸引住了.或许是因为我也是学这个专业的,所以书中的一些内容让我觉得非常的有兴趣.作为一个学习软件工程的大一学生还没真正的认识到这个专业的深奥 ...

  9. 跨域写cookie

    假设a站想往b站写cookie,那么目前有两种方案,参考如下: 第一种(使用jsonp): a站js代码如下: $.ajax({ url: 'http://www.b.com/jsonp.jsp?do ...

  10. L1正则化与L2正则化的理解

    1. 为什么要使用正则化   我们先回顾一下房价预测的例子.以下是使用多项式回归来拟合房价预测的数据:   可以看出,左图拟合较为合适,而右图过拟合.如果想要解决右图中的过拟合问题,需要能够使得 $ ...