使用OllyDbg快速脱壳
使用OllyDbg快速脱壳
破解教程★★使用OllyDbg快速脱壳★★
使用OllyDbg快速脱壳
dOSKEY lEE
目标:采用ASPACK、UPX加壳的NOTEPAD.EXE
工具:OllyDbg 1.09英文版、DUMP插件、PEditor
系统:Win98SE
关键词:脱壳、OllyDbg、OD、DUMP、PUSHAD、POPAD
预备知识
大多数壳都有一个共同的特点。在壳准备开始解压时都要执行PUSHAD,当壳解压完时都要调用POPAD。到底PUSHAD和POPAD是什么干什么用的呢?其实PUSHAD是用来将
所有普通寄存器顺序进栈的指令,POPAD是所有普通寄存器顺序出栈指令。POPAD的出栈顺序和PUSHAD相反。壳为了保护寄存器,便在解压前将所有寄存器进栈保护起来,当解压完成后又将寄存器出栈,恢复其原貌,并将IP设置为原程序的OEP。这样我们就
可以通过这个特点快速脱掉多种软件的壳。
ASPACK篇
先用ASPACK将NOTEPAD.EXE加壳。用OllyDbg(以下简称OD)载入。看见光标停在
壳的入口处。
0040D001 > 60 PUSHAD ;壳的入口。准备开始解压,保护寄存器
0040D002 E8 03000000 CALL NOTEPAD.0040D00A
……
我们不管它,直接向下翻页找POPAD指令。在40D3AF处找到POPAD
……
0040D3AF 61 POPAD ;解压完成,恢复寄存器
0040D3B0 75 08 JNZ SHORT NOTEPAD.0040D3BA
0040D3B2 B8 01000000 MOV EAX, 1
第9课 用ollydbg追出注册码
第九课用ollydbg追出注册码
一、破解对象:QQ游戏[对对碰]助手
二、用peid查壳,为aspack2.12。用aspackdie轻松脱壳。试着注册,弹出错误信息
三、ollydbg打开脱壳后的程序,用ultra string插件搜索Find UNICODE 无法找到“注册码错误”。
但可以找到
点击,来到
向上找第1个条件跳转
参考上节,爆破修改。
改后如图:
改名另存为其他文件后,任意注册成功。
注册码保存在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\qqddpyx中,删除可重新注册。
追出注册码:
使软件为未注册状态,定位在关键call处:即4AF814
F2设断,F9运行程序,输入注册码11111111,被断
右上角寄存器窗口看到
假码在eax中,真码在edx中。
看到破解经典句式:
bdbxzvjav即为我机器的注册码。
注册码根据机器码算出,不同的机器注册码不同。
好了,可以用keymake制作内存注册机了。
启动keymake1.73,选择其他中的“内存注册机”
浏览中选定程序
点“添加”按钮
解释:004AF814 E8 E74EF5FF call unpacked.00404700
填关键call处的东东两个数算一个指令,共5个指令
添加完后,如图,选EDX寄存器,因为它装真码:
点生成按钮选一个界面,如3,产生一个可执行文件,如a.exe,最后的结果如图。
可以发布破解了。不知道我是哪个组织的。
作业:练习本软件作者的其他软件。
几种用OD脱壳方法
几种用OD脱壳方法
OD是反编译软件的一种,可以将可执行文件转换为可读的源代码。
脱壳是指从已经加密或保护的软件中提取出原始的未加密或未保护的代码。下面是几种常见的OD脱壳方法:
1.静态分析法:
静态分析是指对二进制文件进行分析,了解其结构、函数调用和控制
流程等信息。通过对逆向工程的分析,可以分析出加密算法和解密函数的
位置。使用静态分析法脱壳的主要步骤如下:
-打开OD软件,将加密的可执行文件加载到OD中。
- 使用各种OD工具,如IDA Pro,OllyDbg等,显示可执行文件的汇
编代码。
-通过分析代码和调试程序,找到加密算法和解密函数的位置。
-根据找到的位置,修改程序的执行流程,跳过解密函数,使得程序
直接执行解密后的代码。
2.动态调试法:
动态调试是指在运行时对程序进行调试和分析。使用动态调试法脱壳
的主要步骤如下:
-打开OD软件,将加密的可执行文件加载到OD中。
- 使用动态调试工具,如OllyDbg或GDB等,在程序执行期间跟踪和
记录函数调用和内存访问。
-通过分析函数调用和内存访问,找到加密算法和解密函数的位置。
-在找到的位置上下断点,执行程序并使用OD工具查看解密后的代码。
3.内存镜像法:
内存镜像法是指通过将程序加载到内存中,并对内存进行镜像和分析
来脱壳。使用内存镜像法脱壳的主要步骤如下:
-运行加密的可执行文件。
- 使用内存镜像工具,如DumpBin或WinDBG等,将程序的内存镜像
保存到磁盘上。
-使用OD软件加载内存镜像文件。
-通过分析内存镜像文件,找到加密算法和解密函数的位置。
-修改程序的执行流程,跳过解密函数,使得程序直接执行解密后的
最新使用OllyDbg从零开始Cracking第三十四章-手脱UPX,修复IAT
第三十四章-手脱UPX,修复IA T
我们在上一章中给大家介绍了IT(导入表),IA T(输入函数地址表)的相关概念以及原理。有的人可能会认为,我们只是想修复IA T呀,并不需要知道IA T的具体原理以及它是如何被填充的吧?不是有现成的IA T自动修复工具吗?可以很明确的告诉大家,了解操作系统是如何填充IA T的过程非常有必要的。因为很多壳会检测这些常用的IA T修复工具,致其不能正常运行,在这种情况下,我们就需要自己进行相应的手工修复。
本章我们还是用最简单的CRACKME U PX作为例子,我们将对其进行脱壳以及修复IA T,让其能正常运行。
首先第一步我们来定位OEP,我们用OD加载CRACKME UPX。
这里我们用ESP定律来定位OEP,现在我们停在了入口点处,单击F7键执行PUSHAD。
在ESP寄存器值上面单击鼠标右键选择-Follow in Dump。
就可以在数据窗口中定位到刚刚PUSHAD指令保存到堆栈中的寄存器环境了,我们选中前4个字节,我们通过单击鼠标右键选择Breakpoint-Hardware,on access-Dword给这4个字节设置硬件访问断点。
运行起来,马上就断在了JMP OEP指令处。
我们直接按F7键单步到OEP处。
好了,现在我们处于OEP处,原程序区段已经解密完毕,我们现在可以进行dump了。
前面已经提到过,有很多dump的工具,OD有一个款插件OllyDump的dump效果也不错。上一章中我们使用LordPE来进行dump 的,这里我们来使用另外一个工具PE TOOLS来进行dump。
使用OllyDbg从零开始Cracking 第三十二章-OEP寻踪
第三十二章-OEP寻踪
在上一章中我们提到了OEP(Original EntryPoint)的概念,也就是应用程序原本要执行的第一行代码,OEP %99的情况位于第一个区段中(本章中有一个例子,OEP就不在第一个区段,我是特意举的这个例子,嘿嘿)。
我们知道当到达OEP后,各个区段在内存中的分布跟原始程序很接近,这个时候我们就可以尝试将其转储到(dump)文件中,完成程序的重建工作(PS:脱壳)。
通常脱壳的基本步骤如下:
1:寻找OEP
2:转储(PS:传说中的dump)
3:修复IAT(修复导入表)
4:检查目标程序是否存在AntiDump等阻止程序被转储的保护措施,并尝试修复这些问题。
以上是脱壳的经典步骤,可能具体到不同的壳的话会有细微的差别。本章我们主要介绍定位OEP的方法。
很多时候我们遇到的壳会想方设法的隐藏原程序的OEP,要定位OEP的话就需要我们尝试各种各样的方法了。
首先我们来看看上一章CRACKME UPX,然后再来看其他的壳。
1)搜索JMP或者CALL指令的机器码(即一步直达法,只适用于少数壳,包括UPX,ASPACK壳)
对于一些简单的壳可以用这种方式来定位OEP,但是对于像AsProtect这类强壳(PS:AsProtect在04年算是强壳了,嘿嘿)就不适用了,我们可以直接搜索长跳转JMP(0E9)或者CALL(0E8)这类长转移的机器码,一般情况下(理想情况)壳在解密完原程序各个区段以后,需要一个长JMP或者CALL跳转到原程序代码段中的OEP处开始执行原程序代码。
下面我们将上一章中加了UPX壳的那个CrueHead的CrackMe加载到OD中:
手脱Armadillo教程之DJ JAVA Decompiler
图 11、html 提示界面 从上图可以看出这是一个使用次数限制。在脱完壳之后可以看到其它没有其他限制 了。 在这个界面点击关闭按钮, 会在我们设置的硬件断点被断下来, 接下来大概两次 shift+f9 之后在内存窗口会出现图 10。 在这里就是前辈们提到的返回时机。 转到硬件断点窗口将 设置的硬件断点删除,然后 ctrl+f9 返回。 (注意:前辈们提到的 alt+f9 不是很好用,还 是 ctrl+9,到 retn 语句 F8 返回吧) 。 4、 找魔法跳(magic jump)
图 15、找 OEP 关键处 这个位置有一个明显的标志:就是调用 user32.DestroyWindow 函数,很明显直接在销毁 窗口这个语句下断是不行的,因为它不会进去。
注意: 在图 15 中被选中的地方其实我们不用上边的方式都可到达, 因为被选 中的这个位置的上方的 call 将会有很大的缓冲效果。我们只需根据缓冲效果 就可以找到这个位置。当然魔法跳在上边的 call 中,其实我们只要找到这个 位置, 然后再调用这个位置上方的 call 中时就可以以在 kernel32.LoadLibraryA 下断即可找到魔法跳,这区域是可以下断的。
图 26、OllyDBG 获取 OEP 步骤 A 在 OEP 入口右键然后选择转存调试进程。进入图 27:
图 27:OllyDBG 获取 OEP 步骤 A 图 27 中 Modify: 2DBA84 这个数据将是我们在 Import REC 中 OEP 中需要填入的数据。 其实我们可以自己计算,OllyDBG 中获取的 OEP 是一个相对地址(运行时分配) ,而 Import REC 中需要的是一个物理地址。所以需要转换一下公式如下: VAR(virtual address)= PAR(physics address) + 0x401000 OEP(Import REC) = OEP(OllyDBG) – 0x401000 2DBA84 = 6DBA84 ‐0x401000 3、 获取 IAT。
黑盒脱壳教学设计
黑盒脱壳教学设计
黑盒脱壳是指通过逆向工程的方法,对未知或加密的程序进行分析和破解,以获取内部的源代码、算法、私有协议等信息。黑盒脱壳是计算机安全领域的一个重要研究方向,对于软件安全评估、恶意代码分析、漏洞利用等都具有重要意义。下面我将为你设计一个黑盒脱壳的教学。
一、教学目标:
1. 了解黑盒脱壳的基本原理和步骤;
2. 学会使用常用的黑盒脱壳工具和技术;
3. 掌握分析和破解加壳程序的方法;
4. 能够应对一些常见的脱壳防护措施。
二、教学内容:
1. 黑盒脱壳的基本原理和步骤(30分钟):
- 介绍黑盒脱壳的定义、意义和应用领域;
- 解释黑盒脱壳的基本流程,包括动态分析和静态分析两个阶段;
- 介绍常用的黑盒脱壳工具和技术。
2. 基于动态分析的脱壳技术(60分钟):
- 介绍动态调试工具的基本原理和使用方法,如OllyDbg、IDA Pro等;
- 讲解动态脱壳的具体步骤,包括找到目标程序的入口点、跟踪程序的执行流程等;
- 演示使用动态调试工具进行脱壳的实例。
3. 基于静态分析的脱壳技术(60分钟):
- 介绍静态分析工具的基本原理和使用方法,如IDA Pro、Hopper Disassembler等;
- 讲解静态脱壳的具体步骤,包括分析目标程序的文件格式、反汇编、符号重建等;
- 演示使用静态分析工具进行脱壳的实例。
4. 脱壳防护的对策和破解方法(30分钟):
- 介绍常见的脱壳防护技术,如代码加壳、虚拟机脱壳、反调试等;
- 分析脱壳防护的原理和方法;
- 演示使用特定工具和技术进行防护破解的实例。
三、教学方法和手段:
使用OllyDbg从零开始Cracking 第三十一章-脱壳简介
第三十一章-脱壳简介
原定本章是要介绍P-CODE的Part3,然后再介绍脱壳的。但是很多朋友跟我说P-CODE,WKT的教程有很多,并且现在P-CODE的应用程序已经很少了,没有必要过多的介绍P-CODE,希望我能够多讲讲壳,提高大家脱壳的能力。所以说本章我们开始讨论壳,首先要给大家明确一点,壳的种类繁多(PS:这里说种类繁多,并不准确,种类也就那么几种,压缩壳,加密壳,虚拟机壳,所以说应该是数量多,之前发过一篇帖子收集了T4社区的各种脱壳脚本,充斥着各种各样的壳,大家可以看看),所以接下来的章节,我不会介绍所有的壳,只会给大家介绍壳的基本概念以及原理,还有几个具体壳的实例,大家不要指望看完本教程将能搞定所有壳,本教程的目的在于帮助大家理解壳的原理,锻炼大家解决未知壳的能力,大家要学会举一反三,触类旁通。
本章我们将介绍壳的基本概念,这对我们后面脱壳是大有裨益的,大家不要因为简单,就忽视它,后面章节,我们会介绍一些手工脱壳的实例。
首先大家可能会问为什么要给程序加壳?(PS:其实地球人都知道,嘿嘿)
我们知道一个未加壳或者脱过壳的程序修改起来很方便,但是如果一个加过壳或者自修改的程序,要想修改它就比较困难了,我们在入口点(PS:这里指的入口点是壳的入口点)处修改程序是不起作用的,只有当壳把原程序区段解密完成后修改才能起作用。
加过壳的程序,原程序代码段通常是被加密过的,我们想修改它就不那么容易了。
加壳程序给目标程序加壳的原理通常是加密/压缩原程序各个区段,并且给目标程序添加一个或者多个区段作为原程序的引导代码(壳代码),然后将原程序入口点修改为外壳程序的入口点。
脱壳教程_精品文档
脱壳教程
标题:脱壳教程
引言:
脱壳是指将软件或应用程序的包装层(也称为保护壳或加密层)移除,以便对其进行更深入的分析、修改或逆向工程。脱壳过程可以帮助软件开发人员或安全研究人员理解程序的内部运行机制,发现其中的漏洞或者进行优化改进。本文将介绍脱壳过程的基本原理和几种常见的脱壳工具以及其使用方法。
一、脱壳的基本原理
脱壳的基本原理是通过破解或绕过软件的保护机制来移除保护壳。保护机制通常包括各种检测和防御技术,如代码混淆、加壳、逆向工程等。常见的保护壳有UPX、ASProtect、Enigma等。脱壳的过程涉及对程序进行调试、分析和修改。
二、脱壳工具介绍及使用方法
1. OllyDbg
OllyDbg是一款著名的逆向工程和调试工具,也是脱壳过程中经常使用的工具之一。它具有强大的调试和反汇编功能,可以帮助分析程序的执行流程、内存变化等。使用OllyDbg进行脱壳时,首先需
要加载待脱壳的程序,然后设置断点,跟踪程序执行,找到关键的
保护机制的位置,最终移除保护壳。
2. IDA Pro
IDA Pro是一款功能强大的反汇编和逆向工程工具。它可以将程序
转换为易读的汇编代码,并提供强大的导航和分析功能。脱壳时可
以使用IDA Pro来分析和修改程序的内存和代码。它可以帮助找到
程序的入口点、解密过程等,从而移除保护壳。
3. x64dbg
x64dbg是一款开源的调试器工具,适用于32位和64位的Windows系统。它具有用户友好的界面和丰富的调试功能,并支
持脱壳过程中的动态调试和反调试技术。使用x64dbg进行脱壳时,可以跟踪程序的执行流程、查看内存变化,找到关键代码并进行修改。
大智慧主程序脱壳全记录(图文)第1集
大智慧主程序脱壳全记录(图文)第四集
今天用大智慧主程序为例进行脱壳操作
一、ESP定律手脱法
第一步,查壳,“ASPack 2.12 -> Alexey Solodovnikov”
第二步,启动OD,加载主程序,来到下图画面所示地址。
进入“选项”-“调试选项”-“异常”,全部钩选(可做也可不做。普通压缩壳Od调试时候没有异常,加密壳全部有反跟踪代码,会有许多SEH陷阱使OD调试时产生异常。)
用F8进行单步跟踪,在右边窗口寄存器(FUP)中的“ESP”突现“0012FFA4”时停下,用鼠标点选该句,打开右键菜单,如下图所示操作。(或在左下角“命令”栏中输入“DD 0012FFA4”回车)
点选左下角“0012FFA4”语句,打开菜单,选择“断点”-“硬件访问”-“Word”,F9运行
如下图所示,在F8单步跟踪,实现大跳转
用鼠标右键打开菜单,选择“用OllyDump脱壳调试进程”
点击“脱壳”按钮,进行存盘,记住OEP地址为“2F68B5”(在进行输入表修复时要用到的地址)
千万记住:要删除先前设置的“断点”,否则,原版主程序运行时会出现异常(按下图所示操作)“调试”-“硬件断点”――――――“删除”
===================================================
重新载入已脱壳的主程序,可以阅读程序流程(下图)
第三步,检验。启动已脱壳的主程序,如果正常,则不需要修复输入表,否则,还得用前面的方法进行修复操作
二、内存镜像法
第一步,查壳,“ASPack 2.12 -> Alexey Solodovnikov”(略)
脱壳方法
/*****************脱壳手记************//***********由于本人才疏学浅,有什么不足之处,望大家指点********************//*先给自己找些借口:虽然接触脱壳有很长一段时间了,但是对壳的分析还是处于新手阶段.详细的脱壳过程也没有必要一再重复,论坛里基本上都有的了.本文是给一些像我一样在脱壳门口徘徊的新人们看的,其实脱壳很简单.要是大牛们能留下宝贵的意见当然是求之不得的.当然 有很多加密壳 像ASProtect , 穿山甲, ACProtect 等. 这些壳,已经有很多前辈给我们这些后人都做好了铺垫,有好多脱该类壳的脚本.记得VolX写的一个脚本Aspr2.XX_unpacker_v1.0SC.osc/*Script written by VolXScript : Aspr2.XX_unpacker版本 : v1.0SC日期 : 15-Jan-2007调试环境 : OllyDbg 1.1, ODBGScript 1.47, WINXP, WIN2000调试选项 : 设置 OllyDbg 忽略所有异常选项 工具 : OllyDbg, ODBGScript 1.47, Import Reconstructor.感谢 : Oleh Yuschuk - author of OllyDbgSHaG - author of OllyScriptEpsylon3 - author of ODbgScript特别感谢 : fly, linex, machenglin 等兄弟的帮忙测试.//support Asprotect 1.32, 1.33, ,1.35, 1.4, 2.0, 2.1, 2.11, 2.2beta, 2.2, 2.3*/这个脚本脱Asprotect很给力 似乎更高级一些的 例如 2.4 的版本也适用.对于牛壳,比如壳safeguard1.03,我可是费了不少心思,可是总是没有什么结果,在论坛里好像只有一篇文章是有关该壳的标 题: safeguard1.03 主程序之“游晕惊萝”之浅游(未脱)发帖人:askformore时 间: 2005-07-01 16:45 原文链接:/showthread.php?threadid=14854唉~都不知道要等到何年何月啊 ~*////////////////////////////////////////////////////////////////////////////下面是小弟我最近的手记,因为最近才想起来要做手记,所以内容很少很少,希望大家能帮忙补充2011/4/8 13:40手脱PECompact 2.x -> Jeremy Collake 壳是我自己加的,加壳的工具是PECompact2 Graphical User Interface Application软件名:虚拟光驱绿色版使用内存二次断点再单步跟踪就能到OEP下内存函数断点脱 bpx VirtualFree单步跟踪也可以 不过要注意凡跑飞的call重新加载后F7进去然后继续单步跟踪即可慢慢到达OEP有经验的知道该壳加壳后的程序和原程序的入口点是一样的 所以可以在壳的ep下硬件执行断点一样可以到达oep软件语言:Microsoft Visual C++ 7.0////////////////////////////////////////////////////////////2011/4/8 17:50手脱ASPack 2.12 -> Alexey Solodovnikov软件名:电子日记EDiary2.53ESP定律解决 后来想了想,为了方便一些新手学习,就写多一些能脱该累壳的办法,该壳可以使用单步跟踪(其实压缩壳都可以单步跟踪来到OEP的),内存断点,SFX,ESP定律,二进制搜索C2 0C 00 68 00 00 00 00 C3(由于本人才疏学浅,目
新手必须知道的脱壳及修复工具
新手必须知道的脱壳及修复工具
很多软件都加了壳,除了易语言软件很少加壳。对于我们这些新手也叫菜鸟级的,既然想学破解,脱壳是第一步,我也在学习啦,第一步就是个人电脑里面必须装的必备脱壳及修复工具,现在发一个工具介绍,我想对新手应该有用,大家可以复制工具名字,去网上下载:
脱壳工具以及脱壳一般流程
查壳(PEID、FI、PE-SCAN)--->寻找OEP(OD)--->脱壳/Dump(LordPE、PeDumper、OD自带的脱壳插件、PETools)--->修复(Import REConstructor)
【工具介绍】
1、查壳
PEID--功能强大的侦壳工具,自带脱壳插件(但是,效果不怎么样)
工作原理:核心是userdb.txt(大家看看就完全明白了)[通过壳的入口特征码进行辨认]
使用方法:可以拖放、也可以把PEID添加到右键菜单里面去
FI--功能强大的侦壳工具,DOS界面。
使用方法:可以拖放、可以使用DOS命令行
2、寻找OEP
ollydbg的四个区域
左上角是cpu窗口,分别是地址,机器码,汇编代码,注释;注释添加方便,而且还能即时显示函数的调用结果,返回值.
右上角是寄存器窗口,但不仅仅反映寄存器的状况,还有好多东东;双击即可改变Eflag的值,对于寄存器,指令执行后发生改变的寄存器会用红色突出显示.
cpu窗口下面还有一个小窗口,显示当前操作改变的寄存器状态.
左下角是内存窗口.可以ascii或者unicode两种方式显示内存信息.
右下角的是当前堆栈情况,还有注释啊.
几个经常使用的快捷键
F2:在需要的地方下断点(INT3型断点)
特定码——用OllyDBG手脱Enigma Protector V1.12加壳的试炼品
特定码——用OllyDBG手脱Enigma Protector V1.12加壳的试炼品减小字体增大字体作者:佚名来源:不详发布时间:2009-11-3 4:59:37
收藏到网摘:合作洽谈
破解下载: /viewthread.php?tid=3806
软件大小: 1.21 M
软件简
介: Enigma Protector serves for software protection of applications. It defending your work fro m program crackers with state-of-the-art encryption, data compression, and other security features. Enigma Protector provides creation trial and registered applications, with possibility of the checki ng mode parameters with help internal Enigma API functions. It allows you to design and add a co mplete software protection and registration-key system to your existing programs. It works with a ny language which produce Windows PE files. Enigma works with Win PE 32 executables (*.exe) , screen savers (*.scr), dynamic libraryes (*.dll, *.ocx).
ArmadilloV4.XCopyMemII脱壳-电脑资料
ArmadilloV4.XCopyMemII脱壳-电脑资料
在ARM壳里,最麻烦的就是这种壳了,昨晚搞了带KEY的壳,把KEY 的变成正常的ARM双进程的壳,没想到看了之后竟然是CopyMem-II 的
所以单独发表这个CopyMem-II的脱壳教程
设置OllyDbg忽略所有其它异常选项,。用IsDebug插件去掉OllyDbg的调试器标志。
1 寻找OEP+解码Dump
载入程序
0182C243 >/$Content$nbsp; 55 PUSH EBP
0182C244 |. 8BEC MOV EBP,ESP
0182C246 |. 6A FF PUSH -1
0182C248 |. 68 405F8501 PUSH Cam.01855F40
0182C24D |. 68 80BF8201 PUSH Cam.0182BF80 ; SE 处理程序安装
0182C252 |. 64:A1 0000000>MOV EAX,DWORD PTR FS:[0] 0182C258 |. 50 PUSH EAX
0182C259 |. 64:8925 00000>MOV DWORD PTR FS:[0],ESP
0182C260 |. 83EC 58 SUB ESP,58
0182C263 |. 53 PUSH EBX
0182C264 |. 56 PUSH ESI
0182C265 |. 57 PUSH EDI
0182C266 |. 8965 E8 MOV DWORD PTR SS:[EBP-18],ESP 下断BP WaitForDebugEvent
(整理)第08课_用ollydbg爆破
第八课用ollydbg爆破
目标程序:Windows密码管理大师 2.2
一、peid侦测,为upx壳,真俗,又见老朋友,用peid的插件将它轻松脱掉。
二、运行程序,填入注册信息,程序说:
看程序的上部,标题提示你未注册,如下
三、ollydbg打开脱壳后的程序,选择插件的ultra string reference 中的Find UNICODE
有看官要问了,为什么用这个呢?因为这个支持中文字符串。发现下面这个东东,看上面第1个图,对比一下。狐狸的尾巴就是它了,双击它
来到这里
向上的第一个跳转就是关键跳转,53BC3D处的call为关键call。定位到53BC44处,右键菜单中
将74改为75,如图
53BC44处,右键菜单中
在弹出的新窗口中
将文件更名保存,随意输入信息,爆破成功。
注册信息保存在HKEY_USERS\.DEFAULT\Software\winpass中删除后,即又为未注册版。否则,永远为注册版。
作业:爆破中华通讯录5.8.107b
使用OllyDbg从零开始Cracking 第三十五章-手脱ASPack
第三十五章-手脱ASPack V2.12
本章我们继续介绍脱壳,稍微增加一点难度。
我们要脱的壳是ASPack,比UPX稍微复杂那么一点点,拿UnPackMe_ASPack2.12.exe作为实验对象,这个程序我们在第三十二章介绍OEP的时候遇到过,大家应该还记得吧。
Dump的话我们用OD的插件OllyDump来完成,大家将其放到OD的插件目录下。
将OD的反反调试插件配置好,然后加载。
OD提示该程序入口点位于代码段之外,对于大部分加壳程序OD都会弹出此警告窗口,大家不必大惊小怪。
我们可以看到第一条指令是PUSHAD,按F7键执行PUSHAD。
在ESP寄存器值上面单击鼠标右键选择-Follow in Dump,就可以在数据窗口中定位到刚刚通过PUSHAD指令保存的寄存器环境了,选中前4个字节,单击鼠标右键选择-Breakpoint-Hardware,on access-Dword,这样就可以给这4个字节设置硬件访问断点了。
按F9键运行起来。
断在了POPAD指令的下一行,我们直接按F7键单步跟踪到OEP处。
这里我们到了OEP处,OD这里解析有误,将代码解析为数据了,我们在反汇编窗口中单击鼠标右键选择-Analysis-Remove analysis from module,删除掉OD的分析结果,这样就能正常解析了。
我们可以看到虽然已经被解析成代码了,但是解析的还不够完整,我们还需要解析一次,继续单击鼠标右键选择-Analysis-Analyse code。
现在我们可以对该进程进行dump了,在菜单栏中找到OllyDump插件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
破解教程★★ 使用OllyDbg快速脱壳 ★★
使用OllyDbg快速脱壳
dOSKEY lEE
目标:采用ASPACK、UPX加壳的NOTEPAD.EXE
工具:OllyDbg 1.09英文版、DUMP插件、PEditor
系统:Win98SE
关键词: 脱壳、OllyDbg、OD、DUMP、PUSHAD、POPAD
预备知识
大多数壳都有一个共同的特点。在壳准备开始解压时都要执行PUSHAD,当壳解压
完时都要调用POPAD。到底PUSHAD和POPAD是什么干什么用的呢?其实PUSHAD是用来将
所有普通寄存器顺序进栈的指令,POPAD是所有普通寄存器顺序出栈指令。POPAD的出
栈顺序和PUSHAD相反。壳为了保护寄存器,便在解压前将所有寄存器进栈保护起来,
当解压完成后又将寄存器出栈,恢复其原貌,并将IP设置为原程序的OEP。这样我们就
可以通过这个特点快速脱掉多种软件的壳。
ASPACK篇
先用ASPACK将NOTEPAD.EXE加壳。用OllyDbg(以下简称OD)载入。看见光标停在
壳的入口处。
0040D001 > 60 PUSHAD ;壳的入口。准备开始解压,保护寄存器
0040D002 E8 03000000 CALL NOTEPAD.0040D00A
……
我们不管它,直接向下翻页找POPAD指令。在40D3AF处找到POPAD
……
0040D3AF 61 POPAD ;解压完成,恢复寄存器
0040D3B0 75 08 JNZ SHORT NOTEPAD.0040D3BA
0040D3B2 B8 01000000 MOV EAX, 1
0040D3B7 C2 0C00 RETN 0C
0040D3BA 68 CC104000 PUSH NOTEPAD.004010CC ;返回到原程序OEP处
0040D3BF C3 RETN
……
选定40D3AF这一行,F4运行到此处。在这里说明壳已经完成解压工作。并且返回到原
程序的入口处。F8单步到4010CC,这里便是原程序的OEP。用DUMP插件直接DUMP出来就
可以了(在DUMP时注意将入口点改为10CC,即4010CC-400000=10CC,400000是映象基
地址)。文件大小是77059字节,用PEditor重建PE头便可以了。未压缩的文件大小是
53248字节,脱壳后的文件大小是60930字节。
UPX篇
用UPX将NOTEPAD.EXE加壳,然后用OD载入。停在PUSHAD处,用脱ASPACK同样的方
法,向下翻页找POPAD。
……
0040E9FE 61 POPAD
0040E9FF - E9 C826FFFF JMP NOTEPAD.004010CC
……
下面的JMP就是跳转到程序的OEP处。F4到40E9FF处,F8单步一下,来到OEP处,DUMP出
来。DUMP文件的大小是65536字节,直接就可以运行。为了完美,用PEditor重建PE头。
那么脱壳后的文件大小是60293字节。
后记
用上面说的方法,很多种壳都可以快速的手动脱掉。如果你没有OD
的DUMP插件,
可以到新论坛的下载区找。如果实在没有,也可以直接停在OEP处用PEDump来DUMP。很
久没有写东西了。这一篇是写给初学者练手的。其实壳也是软件,再怎么复杂都有可
能被脱下来。祝你好运。
另外,转载时请保持本文的完整。
***坎坷亦乐园 版权所有***
【关闭窗口】