1.PEID查壳

Upack 2.x - 3.x Heuristic Mode -> Dwing

2.载入OD,一上来就是一个大跳转,先F8跟一会

 >- E9 56D40300     jmp 跑跑排行.0043E48B                 ; //程序入口点
inc edx ; 跑跑排行.<ModuleEntryPoint>
jns short 跑跑排行.0040107C
ja short 跑跑排行.004010A3
0040103A 6E outs dx,byte ptr es:[edi]
0040103B : inc eax ; kernel32.BaseThreadInitThunk
0040103D add byte ptr ds:[eax],al
 

3.来到这里,我们看到一个push,可以使用ESP定律,下硬件访问断点,然后shift+F9运行一下

0043E49B    F3:AB           rep stos dword ptr es:[edi]
0043E49D AD lods dword ptr ds:[esi]
0043E49E push eax
0043E49F xchg eax,edi ; //ESP定律
0043E4A0 push ecx
0043E4A1 pop eax
0043E4A2 8D5485 5C lea edx,dword ptr ss:[ebp+eax*+>
 

4.ESP落脚点,这里就是落脚点了,别忘了清除硬件断点,然后继续F8,记住基本原则,向上跳转的下一行F4

0043E60E   /E3 1B           jecxz short 跑跑排行.0043E62B         ; //ESP落脚点
0043E610 |8A07 mov al,byte ptr ds:[edi]
0043E612 | inc edi
0043E613 | add al,0x18
0043E615 |3C cmp al,0x2
0043E617 ^| F7 jnb short 跑跑排行.0043E610 ; //向上跳转的下一行F4
0043E619 |8B07 mov eax,dword ptr ds:[edi]
0043E61B |3C cmp al,0x1
 

5.经常脱壳的朋友应该发现了,这里应该就是指向OEP的关键跳转了(因为第二列中间有个横杠),但是你会发现F8跳不过去,跳转没有实现,因为跳转的上一行”or eax,eax”这句话不解释了,需要一定的汇编基础,http://www.52pojie.cn/thread-420306-1-1.html可以在这个界面对照着查一下,也许你会懂,不懂我也没办法,然后我们需要做的是在这个跳转这行右键—断点—条件—输入”eax==0”—F9—F8,这样我们就实现了他的跳转

0043E631                  inc esi
0043E632 AD lods dword ptr ds:[esi]
0043E633 09C0 or eax,eax
0043E635 >- 0F84 E3BDFCFF je 跑跑排行.0040A41E ; //指向OEP的跳转
0043E63B push esi
0043E63C xchg eax,edi
0043E63D FF53 FC call dword ptr ds:[ebx-0x4]

6.来到OEP,可以脱壳了

0040A41E                  push ebp                          ; //来到OEP
0040A41F 8BEC mov ebp,esp
0040A421 6A FF push -0x1
0040A423 C8CB4000 push 跑跑排行.0040CBC8
0040A428 A4A54000 push 跑跑排行.0040A5A4
0040A42D :A1 mov eax,dword ptr fs:[]
0040A433 push eax
0040A434 : >mov dword ptr fs:[],esp
0040A43B 83EC sub esp,0x68
 

7.运行,查壳

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

手脱Upack 2.x - 3.x的更多相关文章

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

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

  2. 手脱Aspack变形壳1

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

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

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

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

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

  5. 深入底层逆向分析TDC‘s keygenme(手脱压缩壳)

    系统 : Windows xp 程序 : TDC‘s keygenme 程序下载地址 :http://pan.baidu.com/s/1gdWyt6z 要求 : 脱壳 & 注册机编写 使用工具 ...

  6. 填坑专记-手脱FSG壳

      妈呀,脱FGS壳真的是坎坷颇多,多亏吾爱破解前辈们的帮忙.我一定要记录下来,省的以后再无法解决.   已经查看是FSG壳了.找到入口也容易了.重点就是脱壳并修复好它. 脱壳   OEP为:   使 ...

  7. 手脱ACProtect v1.35(无Stolen Code)之二

    首先,想说明的是这个壳在我的PC上是可以用上一个帖子中的方法来到假的OEP的:http://www.52pojie.cn/forum.php?mod=viewthread&tid=433462 ...

  8. 手脱ASPack v2.12

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

  9. 手脱nSPack 3.7

    方法一: 1.   OD查壳—nSpack3.7的壳 2. 载入OD 看起来很眼熟,F8一次,然后下面就可以使用ESP定律了,使用ESP定律下断点,然后F9四次 3.   F9四次后落到这个位置 接下 ...

随机推荐

  1. 清空git缓存

    git rm -r --cached .git add . git commit -m 'update .gitignore' 读了下git文档,才发现,这些东西其实很简单,很容易理解.cached其 ...

  2. 动态语言的灵活性是把双刃剑 -- 以 Python 语言为例

    本文有些零碎,总题来说,包括两个问题:(1)可变对象(最常见的是list dict)被意外修改的问题,(2)对参数(parameter)的检查问题.这两个问题,本质都是因为动态语言(动态类型语言)的特 ...

  3. 【转】nodeJs学习之项目结构

    新建的项目结构应该是这样 bin:项目的启动文件,也可以放其他脚本. node_modules:用来存放项目的依赖库. public:用来存放静态文件(css,js,img). routes:路由控制 ...

  4. Fiveplus--王者光耀1

    **光耀101** 汇总博客: 关文涛: 博客地址:随笔1 随笔2 杨蓝婷: 博客地址:随笔1 随笔2 蔡雅菁: 博客地址:随笔1 随笔2 黄森敏: 博客地址:随笔1 随笔2 林兴源: 博客地址:随笔 ...

  5. TCP系列47—拥塞控制—10、FACK下的快速恢复与PRR

    一.概述 FACK下的重传我们在之前的重传部分已经进行了介绍,这里简单介绍一下随着FACK提出的拥塞控制算法的改进及随后的进一步改进. 从我们之前介绍的RFC2582和RFC5681中可以看到,快速恢 ...

  6. MySQL 备份和恢复 理论知识

    为什么要备份 数据无价   制定备份策略的注意点 1:可容忍丢失多少数据     2:恢复需要在多长时间内完成     3:备份的对象   数据.二进制日志和InnoDB的事务日志.SQL代码(存储过 ...

  7. 转载:理解OAuth 2.0

    转载地址:http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html 作者: 阮一峰 日期: 2014年5月12日 OAuth是一个关于授权(autho ...

  8. [C/C++] 虚函数机制

    转自:c++ 虚函数的实现机制:笔记 1.c++实现多态的方法 其实很多人都知道,虚函数在c++中的实现机制就是用虚表和虚指针,但是具体是怎样的呢?从more effecive c++其中一篇文章里面 ...

  9. LoadRunner脚本增强技巧之检查点

    检查点的设置理解起来非常简单,就是要在服务器返回的页面中检查是否存在关键信息.检查点函数的错误会导致整个脚本运行结果的失败,通过这个功能可以方便地定位脚本运行中的逻辑错误.检查点的设置通常分为两种,一 ...

  10. BZOJ 1835 基站选址(DP+线段树)

    # include <cstdio> # include <cstring> # include <cstdlib> # include <iostream& ...