软件脱壳破解精典实例教程

合集下载

新手入门学习——脱壳破解练习第一期

新手入门学习——脱壳破解练习第一期

新手入门学习——脱壳破解练习第一期新手入门学习——脱壳破解练习第一期拿到一个软件,先看看是加的什么壳。

用PEiD查得【Upack V0.37-V0.39 -> Dwing *】接着拿出破解第一要物OD进行脱壳(注意选好点的版本,由于Upack壳做了变形,有些版本的OD打开时会出错,最好是用英文版的)OD载入……我使用简单一点的ESP定律。

00401018 > BE B0114000 MOV ESI,脱壳破解.004011B00040101D AD LODS DWORD PTR DS:[ESI]0040101E 50 PUSH EAX0040101F FF76 34 PUSH DWORD PTR DS:[ESI+34]00401022 EB 7C JMP SHORT 脱壳破解.004010A0F8前进到【0040101F】,在寄存器窗口ESP处点右键,在数据窗口跟随【0012FFC0】如下图://数据窗口点右键,下硬件断点。

shift+F9运行0012FFC0 004011B8 脱壳破解.004011B80012FFC4 7C82F23B 返回到 kernel32.7C82F23B0012FFC8 00000000//来到OEP,通过观察可以发现,这是一个典型的VB入口。

这里记得要删除硬件断点!004011B8 68 24184000 PUSH 脱壳破解.00401824 //OEP004011BD E8 EEFFFFFF CALL 脱壳破解.004011B0004011C2 0000 ADD BYTE PTR DS:[EAX],AL004011C4 0000 ADD BYTE PTR DS:[EAX],AL 004011C6 0000 ADD BYTE PTR DS:[EAX],AL 004011C8 3000 XOR BYTE PTR DS:[EAX],AL记录新入口地址【11B8】接着打开LoadPE进行脱壳然后使用Import Fix 1.6 进行修复修复完成后即得到脱壳后的文件,用PeiD查询,果然是VB。

软件破解脱壳法

软件破解脱壳法

软件破解脱壳法什么是脱壳技术?在一些电脑软件里有一段专门负责保护软件不被非法修改或反编译的程序。

它们一般都是先于程序运行拿到控制权,然后完成它们保护软件的任务。

就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。

由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。

就像电脑病毒和自然界的病毒一样,其实都是命名上的方法罢了。

从功能上抽象,软件的壳和自然界中的壳相差无几。

无非是保护、隐蔽壳内的东西。

而从技术的角度出发,壳是一段执行于原始程序前的代码。

原始程序的代码在加壳的过程中可能被压缩、加密……。

当加壳后的文件执行时,壳这段代码先于原始程序运行,他把压缩、加密后的代码还原成原始程序代码,然后再把执行权交还给原始代码。

软件的壳分为加密壳、压缩壳、伪装壳、多层壳等类,目的都是为了隐藏程序真正的OEP(入口点,防止被破解)。

关于“壳”以及相关软件的发展历史请参阅吴先生的《一切从“壳”开始》。

(一)壳的概念:作者编好软件后,编译成exe可执行文件。

1.有一些版权信息需要保护起来,不想让别人随便改动如作者的姓名,即为了保护软件不被破解,通常都是采用加壳来进行保护。

2.需要把程序搞的小一点,从而方便使用。

于是需要用到一些软件,它们能将exe可执行文件压缩。

3.在黑客界给木马等软件加壳脱壳以躲避杀毒软件。

实现上述功能,这些软件称为加壳软件。

(二)加壳软件最常见的加壳软件ASPACK ,UPX,PEcompact 不常用的加壳软件WWPACK32;PE-PACK;PETITE NEOLITE(三)侦测壳和软件所用编写语言的软件,因为脱壳之前要查他的壳的类型。

1.侦测壳的软件 fileinfo.exe 简称 fi.exe (侦测壳的能力极强)。

2.侦测壳和软件所用编写语言的软件language.exe(两个功能合为一体,很棒)推荐。

language2000中文版(专门检测加壳类型)。

记一次APP去壳破解重新打包

记一次APP去壳破解重新打包

记一次APP去壳破解重新打包1.拿到apk包时,第一步先判断是否加壳,加的是什么壳在手机上或者虚拟机上用MT管理器找到对应的apk包可以看的这个包虽然说是未加固,但还有个伪百度加固,其实也就是加了百度的壳的2.利用BlackDex32进行去壳在手机或虚拟机上安装BlackDex32,在软件中选择你要去壳的APP(ps:要先把apk安装上,不然找不到),在软件中可以指定去壳后的文件存储路径,到对应位置下找到apk的包名即可找到去壳后的dex文件3.回到MT管理器,打开脱壳的后dex与未脱壳的dex进行比较未脱壳的:脱壳后的:可以看到,第一个是一些测试用代码,第二个是百度的壳相关代码,第三个是真正隐藏起来的代码,第四个和暴露出来的代码一致。

那么就简单了,保留第三个和第四个,其他的都不要了。

4.还是用MT管理器修改你想破解的代码可以看的源码跟java类似,但还是很难解读,这就需要预先了解一些smali语法了。

5.修改原始apk包1.将之前修改好的dex文件重命名为classes.dex,用MT管理器查看原始apk包,将原始的dex文件重命名为classes1.dex,将新的dex文件拖进去2.打开assets文件夹,将里面带baidu字样的全都删掉,再打开lib下的armeabi文件夹,同样把带baidu字样的so文件全都删掉3.打开AndroidManifest.xml文件,找到application标签里的android:name属性,这里的启动类是假,根据内容找到对应的代码文件去寻找真正的启动类4.5.打开对应的AppInfo文件,找到真正启动类6.7.8.将真正的启动类替换掉假的启动类,保存退出6.长按apk包,对apk进行签名,签名完后将之前的安装的删掉,重新安装破解的即可以上只是浅显的针对我的那个apk进行的简单破解,很大概率可能还是解决不了你的问题,具体问题还是得具体分析,当然如果能对你有所帮助,那我也很开心能帮上忙。

一个简单的.NET程序的脱壳以及破解

一个简单的.NET程序的脱壳以及破解

一个简单的.NET程序的脱壳以及破解前几天有朋友问.NET程序的破解,又鉴于论坛里关于.NET脱壳和破解的文章也不多,于是抽空写一个。

由于本人也很少接触.NET的程序,因此文章没什么技术含量,用到的技术也是在网上很早就公开的东西。

有什么错误还请多多指教。

本文的目标文件是一个非常简单的CrackMe.本CrackMe的任务有4个:1.脱壳2.去NAG3.去灰色按钮4.破解OK,一个一个来完成任务吧。

一、脱壳查壳发现为:按照经验,此程序应该是用.NET Reactor加的壳下面来脱壳吧根据前人经验,此壳其实只是在简单的混淆,在运行的同时,在内存中会释放原程序的镜像根据这一特点,我们下断点:BP WriteProcessMemory,然后F9运行,中断下来中断下来看堆栈写入的地址为:17B1050在数据窗口查看,然后拉到最顶端可以发现,PE头在017B0000于是可以dump此地址的镜像。

当然,此时dump下来的程序不行,因为还有好多内容没写入。

于是,不断SHIFT+F9,直到程序运行。

这时候就可以dump了.用LordPE,区域转存017B0000这个区段,保存为dumped.exe就OK了.不过,此时dump后,程序是无法运行的。

我们还得再用CFF修正几个量(1).选Nt Headers,再File Header,然后选Characteristics,再点旁边的Click here,在出现的对话框中,去掉“File is a DLL”就OK了。

(2)修正MetaData RV A和MetaData Size的值MetaData RV A值的获得可以用2种方法第一种:原程序中,下完BP WriteProcessMemory,F9运行,第一次中断的时候就dump这个区段,此时的MetaData RV A是正确的。

在CFF中,选.NET Directory,看MetaData RV A的值,并记录:记录这个值为A400,然后在dumped.exe中同样修正这个值为A400第二种:参考老K的文章CFF中,选Address Converter,然后搜索字符“BSJB”接着就换算成RV A的值:换算结果同样为A400下面接着来计算MetaData Size的值选Optional Header,接着点Data Directories [x],然后看Import Directory RV A 的值记下值为BD4C所以,MetaData Size=BD4C-A400=194C故把MetaData Size的值修正为194C脱壳就到此结束了,再用PEiD查下,已经无壳了另外一种抓取镜像文件的方法如下(参考老K文章):首先运行下原程序,继续下标题为:Sample CrackmeOD载入程序,接着F9运行程序,然后ALT+M打开内存镜像,CTRL+B,在搜索UNICODE字符串“Sample Crackme”大约搜索2次后,就来到下面的地方:拉到最上端然后就选备份,保存数据文件,扩展名改为.exe就行后续的操作同上二、去NAG运行程序可以发现,此程序有个讨厌的NAG,并且作者也要求我们去掉分析.NET程序常用的工具为:ildasm2.0,Reflector,xenocode fox我这里就用xenocode fox这个了,因为这个工具可以查看地址当然,默认的选项可能没显示地址,我们可以自己手动改下设置在设置中,选DeCompiler这个选项卡,然后勾上“Show method body address”前面的勾就OK了在语言(Language)选项中,我们先为了分析方便,可以选C#语言,当然你也可以选其他的OK,下面就找关键地方吧,这个没什么好说的,靠自己去寻找。

如何将EXE安装文件脱壳和破解

如何将EXE安装文件脱壳和破解

如何将EXE安装文件脱壳和破解--之解决办法步骤1 检测壳壳的概念:所谓“壳”就是专门压缩的工具。

这里的压缩并不是我们平时使用的RAR、ZIP 这些工具的压缩,壳的压缩指的是针对exe、com、和dll等程序文件进行压缩,在程序中加入一段如同保护层的代码,使原程序文件代码失去本来面目,从而保护程序不被非法修改和反编译,这段如同保护层的代码,与自然界动植物的壳在功能上有很多相似的地方,所以我们就形象地称之为程序的壳。

壳的作用: 1.保护程序不被非法修改和反编译。

2.对程序专门进行压缩,以减小文件大小,方便传播和储存。

壳和压缩软件的压缩的区别是压缩软件只能够压缩程序而经过壳压缩后的exe、com和dll等程序文件可以跟正常的程序一样运行下面来介绍一个检测壳的软件 PEID v0.92 这个软件可以检测出 450种壳新版中增加病毒扫描功能,是目前各类查壳工具中,性能最强的。

另外还可识别出EXE文件是用什么语言编写的VC++、Delphi、VB或Delphi等。

支持文件夹批量扫描我们用PEID对easymail.exe 进行扫描找到壳的类型了 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 说明是UPX的壳下面进行步骤2 脱壳对一个加了壳的程序,去除其中无关的干扰信息和保护限制,把他的壳脱去,解除伪装,还原软件本来的面目。

这个过程就叫做脱壳。

脱壳成功的标志脱壳后的文件正常运行,功能没有损耗。

还有一般脱壳后的文件长度都会大于原文件的长度。

即使同一个文件,采用不同的脱壳软件进行脱壳,由于脱壳软件的机理不通,脱出来的文件大小也不尽相同。

关于脱壳有手动脱壳和自动脱壳自动脱壳就是用专门的脱壳机脱很简单按几下就 OK了手动脱壳相对自动脱壳需要的技术含量微高这里不多说了 UPX是一种很老而且强大的壳不过它的脱壳机随处就能找到 UPX本身程序就可以通过 UPX 文件名-d 来解压缩不过这些需要的命令符中输入优点方便快捷缺点DOS界面为了让大家省去麻烦的操作就产生了一种叫 UPX SHELL的外壳软件 UPX SHELL v3.09 UPX 外壳程序!目的让UPX的脱壳加壳傻瓜化注:如果程序没有加壳那么我们就可以省去第二步的脱壳了,直接对软件进行分析了。

VMP脱壳实例

VMP脱壳实例
0041E4E6 68 7161C09F push 9FC06171 //解密后的出口
0041E4EB E8 D8080000 call cm_vmp_c.0041EDC8
0041E4F0 FF7424 04 push dword ptr ss:[esp+4]
004014E5 8D4C24 08 lea ecx,dword ptr ss:[esp+8]
004014E9 51 push ecx
004014EA E8 91FFFFFF call crackme2.00401480
00401517 8BCE mov ecx,esi
00401519 E8 2A020000 call crackme2.00401748
0040151E 5F pop edi
0040151F 5E pop esi
效验3:patch上面的2处后,程序还是出错。继续来进行patch。
继续在0041E4E6下好断点,F9运行,发现运行89后,程序出错,于是写个脚本定位到出错的前1次,
sub al,1C
not al复制代码
下面我们来看下我们爆破的数据:
爆破点:4014FB 75---74
然后来计算下,74加密后的数据为多少。
写个解密函数的逆运算来进行解密吧:
mov al,74
not al
add al,1c
neg al
sub al,47
ror al,5复制代码
004014B0 81EC 00010000 sub esp,100
004014B6 56 push esi
004014B7 8BF1 mov esi,ecx

如何将EXE安装文件脱壳和破解

如何将EXE安装文件脱壳和破解

如何将EXE安装文件脱壳和破解
首先,我要强调,破解软件和脱壳软件违反了软件版权法,这是非法
行为。

那么,如何脱壳和破解EXE安装文件呢?
1.脱壳软件
脱壳是指将被打包、加密或保护的EXE文件还原为原始的可执行文件。

脱壳软件通常需要一些专业的技术知识,并且不同软件的脱壳方法也会有
所不同。

下面是一些常见的脱壳方法:
-调试器:将脱壳软件用调试器打开,断点在加载代码之前的位置上,使得在加载期间可以捕捉到呈现在内存中的文件。

- 静态分析:通过静态分析工具,如IDA Pro,分析文件的指令、数
据和控制流,找出加密和保护技术,并获取原始的可执行文件。

2.破解软件
破解软件是指破解免注册版或试用期软件的功能限制,以获得免费使
用所需功能的方法。

以下是一些常见的破解方法:
-序列号生成器:破解序列号的软件,通过生成有效的序列号来解锁
软件的功能限制。

-反向工程:通过逆向工程将软件中的保护措施绕过或关闭,以便在
未注册的情况下使用软件的全部功能。

- Patching:通过修改软件的二进制代码,删除或绕过软件的注册验证,以实现破解的目的。

无论您是否打算进行此类操作,我们鼓励您始终遵守版权法。

许多软
件公司对未经授权的破解行为采取法律行动,并对侵权者提起诉讼。

同时,使用未经授权的破解软件可能会导致您的计算机感染恶意软件或病毒。

因此,我们建议您遵守软件许可协议,并根据开发商提供的合法方式
获得软件的完整功能。

如果您希望获得一款软件的全部功能,可以考虑购
买正版软件或使用免费的替代品。

脱壳教程1

脱壳教程1

脱壳教程1:认识脱壳一切从“壳”开始首先大家应该先明白“壳”的概念。

在自然界中,大家对壳这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等。

同样,在一些计算机软件里也有一段专门负责保护软件不被非法修改或反编译的程序。

它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。

就像动植物的壳一般都是在身体外面一样理所当然(但后来也出现了所谓的“壳中带籽”的壳)。

由于这段程序和自然界的壳在功能上有很多相同的地方,基于命名的规则,大家就把这样的程序称为“壳”了。

就像计算机病毒和自然界的病毒一样,其实都是命名上的方法罢了。

最早提出“壳”这个概念的,据我所知,应该是当年推出脱壳软件 RCOPY 3 的作者熊焰先生。

在几年前的 DOS 时代,“壳”一般都是指磁盘加密软件的段加密程序,可能是那时侯的加密软件还刚起步不久吧,所以大多数的加密软件(加壳软件)所生成的“成品”在“壳”和需要加密的程序之间总有一条比较明显的“分界线”。

有经验的人可以在跟踪软件的运行以后找出这条分界线来,至于这样有什么用这个问题,就不用我多说了。

但毕竟在当时,甚至现在这样的人也不是很多,所以当 RCOPY3 这个可以很容易就找出“分界线”,并可以方便的去掉“壳”的软件推出以后,立即就受到了很多人的注意。

老实说,这个我当年在《电脑》杂志看到广告,在广州电脑城看到标着999元的软件,在当时来说,的确是有很多全新的构思,单内存生成 EXE 可执行文件这项,就应该是世界首创了。

但它的思路在程序的表现上我认为还有很多可以改进的地方(虽然后来出现了可以加强其功力的 RO97),这个想法也在后来和作者的面谈中得到了证实。

在这以后,同类型的软件想雨后春笋一般冒出来,记得住名字的就有: UNKEY、MSCOPY、UNALL .... 等等,但很多的软件都把磁盘解密当成了主攻方向,忽略了其它方面,当然这也为以后的“密界克星”“解密机器”等软件打下了基础,这另外的分支就不多祥谈了,相信机龄大一点的朋友都应该看过当时的广告了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件脱壳、破解精典实例教程
我要破解的软件:网络填表终结者破解需要的软件(点击下载):
侦壳language.exe 脱壳AspackDie.exe
反编译W32Dasm黄金中文版
16进制编辑器UltraEdit.rar
在破解之前先复习一下基础知识:
一.破解的等级
初级,修改程序,用ultraedit修改exe文件,称暴力破解,简称爆破
中级,追出软件的注册码
高级,写出注册机
二.用w32dasm破解的一般步骤:
1.看软件的说明书,软件注册与不注册在功能上有什么区别,如何注册
2.运行此软件,试着输入你的姓名和任意注册码去注册,有什麽错误提示信息,将错误提示信息记下来
3.侦测有无加壳(第一课).若加壳,脱壳(第二课)
4.pw32dasmgold反汇编
5.串式参考中找到错误提示信息或可能是正确的提示信息双击鼠标左键
6.pw32dasmgold主窗口中分析相应汇编,找出关键跳转和关键call
7.绿色光条停在关键跳转,在pw32dasmgold主窗口底部找到关键跳转的偏移地址(实际修改地址)
8.用ultraedit找到偏移地址(实际修改地址)修改机器码,保存
壳的概念:版权信息需要保护起来,不想让别人随便改动,exe可执行文件压缩,最常见的加壳软件ASPACK ,UPX,PEcompact
脱壳:拿到一个软件,侦测它的壳,然后我们要把它的壳脱去,还原它的本来面目.若它没有加壳,就省事不用脱壳了.脱壳软件unaspack,caspr,upx,unpecompact,procdump
实际修改地址(偏移地址)和行地址(虚拟地址)pw32dasmgold反汇编出来的代码由三列组成
第一列行地址(虚拟地址)
第二列机器码(最终修改时用ultraedit修改)
第三列汇编指令
第一列第二列第三列
:0041BE38 2B45F0 sub eax, dword ptr [ebp-10]
:0041BE3B 6A42 push 00000042
:0041BE3D 50 push eax
:0041BE3E FF75F4 push [ebp-0C]
:0041BE41 FF75F0 push [ebp-10]
:0041BE44 FF35A8AB4400 push dword ptr [0044ABA8]
两种不同情况的不同修改方法
1.修改为jmp
je(jne,jz,jnz) =>jmp相应的机器码EB (出错信息向上找到的第一个跳转)jmp 的作用是绝对跳,无条件跳,从而跳过下面的出错信息
2.修改为nop
je(jne,jz,jnz) =>nop相应的机器码90 (正确信息向上找到的第一个跳转)nop 的作用是抹掉这个跳转,使这个跳转无效,失去作用,从而使程序顺利来到紧跟其后的正确信息处。

好了,下面开始我们的破解之旅。

1,侦壳:先打开侦壳language.exe,选择打开----找到要破解的网络填表终结者:FormGhost.exe,点确定,如图1。

language.exe便显示出软件的壳是:Aspack,如图2。

2,脱壳:双击脱壳AspackDie.exe,出现一个对话框,选择网络填表终结者:FormGhost.exe,打开。

如图3。

出现图4框,点确定脱壳完成。

在网络填表终结者:FormGhost.exe同目录下生成一个unpacked.exe文件,这就是脱壳后的FormGhost.exe。

3,运行脱壳后的unpacked.exe,点帮助----注册,图9。

注册名称,注册码随便添。

图10。

点注册,提示:“注册码错误”图11,好了记住这5个字。

关了它。

4,开始反汇编:打开反编译W32Dasm黄金中文版,选择反汇编----打开脱壳后的unpacked.exe,变开始加载。

如图5。

图6。

返汇编之后如图7。

点击上面的参考----串式参考如图8,
出现这个对话框图12。

找到“注册码错误”,双击它,汇编主程序便来到这里:图13。

(注意:正确注册信息在错误信息之上)关闭串式参考框。

看主程序:图14。

从注册码错误向上找到第一个跳转(关键跳,除了jmp的其它跳:je,jne,jz,jnz),来到这里图15。

(它上面的call叫关键call。

),双击关键跳,看软件最下面有一行字:Line:379267 Pg 7586 of 7626 Code Data@004ACB4B@Offset 00ACB4BH in File:unpacked.exe.
其中@Offset 00ACB4BH就是偏移地址,记住00ACB4B(后面的h代表16进制,不用管他),图16。

5,开始修改软件:打开16进制编辑器UltraEdit.rar,(有点慢)图17。

打开脱壳后的unpacked.exe,直接按ctrl+g,出现对话框,输入0xacb4b(即偏移地址,不要前面的000)图18。

点确定,来到图19
前面说过正确注册信息在错误信息之上,所以这里将of85改为of84。

图20。

(如果正确注册信息在错误信息之下,这里改为eb)。

将光标移到5上直接输入数字4即可,其他地方不要动。

好了,改好只后左上角的文件---另存为unpacked222.exe
6,关闭所以软件,运行另存的unpacked222.exe,点帮助---注册,注册名称,注册码随便添,点确定,提示注册完成。

图21。

回到软件界面看看,帮助,注册一项已经变为灰色了,图22
7,破解全部完成
注:本文系转载。

相关文档
最新文档