Welcome to my world ! Let's built it !

软件破解

上一篇 / 下一篇  2006-12-16 09:34:57 / 个人分类:技巧

 
十招教你学会软件破解

下面谈到了一些在
学习解密过程中经常遇到的问题,本人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,所以希望通过下面的讨论给大家一定的帮助:

1. 断点

所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是中断呢?中断就是由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你又返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的目的。

2. 领空

这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么中断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时代,基本上所有的程序都是工作在中断程序之上的,即几乎所有的DOS程序都会去调用各种中断来完成任务。

但是到了WINDOWS时代,程序没有权力直接调用中断,WINDOWS系统提供了一个系统功能调用平台(API),就向DOS程序以中断程序为基础一样,WINDOWS程序以API为基础来实现和系统打交道,从而各种功能,所以WINDWOS下的软件破解其断点设置是以API函数为基础的,即当程序调用某个API函数时中断其正常运行,然后进行解密。例如在SOFTICE中设置下面的断点:bpx GetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立即被SOFTICE拦截到,从而被破解的程序停留在GetDlgItemText的程序区,而GetDlgItemText是处于WINDWOS自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了^_^!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的SOFTICE图解。试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎么样去加密是程序自己决定的,而不是调用系统功能实现的!)


3. API

即Application Programming Interface的简写,中文叫应用程序编程接口,是一个系统定义函数的大集合,它提供了访问操作系统特征的方法。 API包含了几百个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用API接口同WINDOWS打交道,无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。通常API有两中基本形式:Win16和Win32。 Win16是原来的、API的16位版本,用于Windows 3.1;Win32是现在的、API的32位版本,用于Windows 95/98/NT/ME/2000。Win32包括了Win16,是Win16的超集,大多数函数的名字、用法都是相同的。

16位的API函数和32位的API函数的区别在于最后的一个字母,例如我们设置这样的断点:bpx GetDlgItemText、bpx GetDlgItemTextA和bpx GetDlgItemTextW,其中 GetDlgItemText是16位API函数,GetDlgItemTextA和GetDlgItemTextW是32位API函数,而GetDlgItemTextA表示函数使用单字节,GetDlgItemTextW表示函数使用双字节。现在我们破解中常用到的是Win32单字节API函数,就是和GetDlgItemTextA类似的函数,其它的两种(Win16 API和Win32双字节API函数)则比较少见。 Win32 API函数包含在动态链接库(Dynamic Link Libraries,简称DLLs)中,即包含在kernel32.dll、user32.dll、gdi32.dll和comctl32.dll中,这就是为什么我们要在softice中用exp=C:\windows\system\kernel32.dll等命令行将这些动态链接库导入softice中的原因。因为不这样做的话,我们就无法拦截到系统Win32 API函数调用了。

4. 关于程序中注册码的存在方式

破解过程中我们都会去找程序中将输入的注册码和正确的注册码相比较的地方,然后通过对程序的跟踪、分析找到正确的注册码。但是正确的注册码通常在程序中以两种形态存在:显式的和隐式的,对于显式存在的注册码,我们可以直接在程序所处的内存中看到它,例如你可以直接在SOFTICE的数据窗口中看到类似"297500523"这样存在的注册码(这里是随意写的),对于注册码显式存在的软件破解起来比较容易;但是有些软件的程序中并不会直接将我们输入的注册码和正确的注册码进行比较,比如有可能将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不同的地方逐一进行比较,或者是将我们输入的注册码进行某种变换,再用某个特殊的程序进行验证等等。

总之,应用程序会采取各种不同的复杂运算方式来回避直接的注册码比较,对于这类程序,我们通常要下功夫去仔细跟踪、分析每个程序功能,找到加密算法,然后才能破解它,当然这需要一定的8086汇编编程功底和很大的耐心与精力。

5. 关于软件的破解方式

本人将破解方式分为两大类,即完全破解和暴力破解。所谓完全破解主要是针对那些需要输入注册码或密码等软件来说的,如果我们能通过对程序的跟踪找到正确的注册码,通过软件本身的注册功能正常注册了软件,这样的破解称之为完全破解;但如果有些软件本身没有提供注册功能,只是提供试用(DEMO),或是注册不能通过软件本身进行(例如需要获取另外一个专用的注册程序,通过INTERNET的注册等等),或者是软件本身的加密技术比较复杂,软件破解者的能力、精力、时间有限,不能直接得到正确的注册码,此时我们需要去修改软件本身的程序码.

6. 关于破解教程中程序代码地址问题

破解教程中都会放上一部分程序代码以帮助讲解程序的分析方法,例如下面的一段程序代码:

......

0167:00408033 PUSH 00

0167:00408035 PUSH EBX

0167:00408036 CALL [USER32!EndDialog]

0167:0040803C JMP 0040812C

......

在这里程序中的代码地址如0167:00408033,其代码段的值(即0167)有可能根据不同的电脑会有区别,不一定一模一样,但偏移值应该是固定的(即00408033不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。

7. 关于如何设置断点的问题

正确恰当的设置好断点对于快速有效的解密非常重要,好的断点设置可以使我们迅速找到关键的程序段,而不恰当的断点则会对解密造成不必要的精力消耗,甚至根本就不能拦截到程序的运行。

但是具体什么时候用什么断点比较合适很难说,这需要自己用经验去累积,总的说来bpx hmemcpy这个万能断点对大多数注册码方式的软件都有用,初学者不妨多试试这个断点(通常我也是用这个断点设置,懒嘛^_^,哈哈。。。)。

对于那些需要暴力破解的非注册码方式的软件,通常我们应该拦截对话框(如bpx DialogBox)和消息框(如bpx MessageBox(A))等。不论对于哪一类软件,当我们设置的断点均没有效果时,可是试一下bpx lockmytask,这个断点的作用是拦截任何一个按键的动作,具体常用的一些断点设置请参考"破解常用断点设置"一文。

另外,在注册码的破解中通常需要输入用户名和注册码,一般说来用户名和密码都可以随意输入,但是根据我自己的经验,很多软件对于注册码都会逐位的进行处理,假如输入"78787878"这串数字,那么在跟踪程序的时候我们就无法知道我们当时所看到的"78"倒底是哪一个"78",所以我比较喜欢用"12345678"这样的注册码输入方式,这样的话就就能知道程序是在对注册码的哪一位进行运算,同样的对于那些需要输入较长序列号的软件,输入类似"12345-67890-ABCDEF"这样的序列号较好。

不过有一点大家需要特别的注意:上面讲的注册码输入方式"12345678"是针对拦截WIN32 API函数来说的,假如有些时候直接拦截WIN32 API函数难以找到程序的突破口,而要借助于"S"指令在内存中寻找我们输入的用户名或注册码时,就最好不要采用"12345678"作为注册码,因为内存中很可能有许多的"12345678"字符串,这样我们没有办法知道倒底我们要破解的程序使用的是哪一个"12345678",所以我们应该选择一个不易和内存数据相同的注册码,比如:74747474(本人喜欢用,意思嘛:去死去死。。。哈哈哈^_^),对应的搜索指令为: S 30:0 L FFFFFFFF 74747474 。当然,以上只是我个人的习惯而已,具体用什么样的输入形式可以根据本人的爱好、习惯来定,不必拘泥于某一固定的模式。

8. 关于如何跟踪程序的问题

初学者在开始学习解密的时候往往不知道怎么样去跟踪程序,怎么样找到注册码比较的地方,当面对长长的一堆程序代码时显得不知所措。通常软件的程序内部都会利用一个子程序(即 CALL ********)去验证我们输入的注册码正确与否,对于注册码显式存在的程序,一般都会将所输入的注册码和正确的注册码放进寄存器,然后调用验证子程序进行判断,将结果返回,应用程序根据子程序返回的结果决定是否注册成功,这样的程序经常具有如下的形式:

****:******** MOV EAX,[********] (或 PUSH EAX等形式)

****:******** MOV EDX,[********] (或 PUSH EDX等形式)

****:******** CALL ********

****:******** TEST EAX,EAX (或 TEST AL,AL,或是没有这一句等形式)

****:******** JNZ ******** (或 JZ ********等形式)


其中EAX和EDX指向的内存区域就是我们输入的注册码和正确的注册码,这里的寄存器EAX和EDX是随意写的,也可以是ECX,EBX,EDI,ESI等等。对于注册码隐式存在的程序,虽然不能直接看到正确的注册码,但是通常也是先将所输入的注册码地址放进某个寄存器,然后调用子程序去验证,破解时就需要进入子程序去分析注册算法。总之,看到子程序(call ********)后面跟着跳转指令(JNZ ********或JZ ********)的地方我们就应该提高警惕,多用 D EAX(或EBX、ECX、EDX、EDI、ESI...等)去看看寄存器指向的内存区域藏着什么东西。

有一点大家要提醒大家:看见程序中使用下面这个函数是要注意,即GetDlgItenInt,这个API函数的作用是将输入的文本转化为整数,所以这类程序中是不会有显示存在的注册码的,因为注册码被转换为整数了,程序通常会用CMP ECX,EDX 这种类型的指令去验证注册码的正确性,这里ECX和EDX中存的就是所输入注册码和正确注册码的整数形式,此时可以用 ? edx 和 ? ecx 看到其十进制形式,即我们输入的形式。

9. 关于软件的反安装问题

经常我们使用某些软件时都会遇到一个问题,就是共享软件过期之后即使删掉原程序重新安装,程序依然不能用,还是一样提醒你试用期已过请注册;或者是你已经破解了某个软件,但是还想继续研究它,但是因为软件已经注册好,没有了注册选项,这时你即使彻底删掉程序再重新安装软件,结果程序运行后还是注册过的。

遇到这样的情况,其实原因很简单,因为程序将注册或过期信息存在了系统注册表里,所以简单的重新安装软件是无济于事的。解决的办法就是自己删掉注册表中有关的信息,但是因为注册表是WINDOWS系统工作的基础,如果不小心就很可能会损坏它而引起系统异常,所以如果你对注册表不是很熟的话,应该在修改之前备份一下注册表。

不论是修改还是备份注册表都可以使用WINDOWS下的注册表管理工具"REGEDIT"来进行,一种办法是在"开始->运行"下输入"regedit"启动它,也可以直接点击"C:\WINDOWS\regedit.exe"来运行。大部分的应用软件都会将自己的信息存在如下的路径中:HKEY_LOCAL_MACHINE\Software、HKEY_LOCAL_MACHINE\Software\Microsoft、HKEY_CURRENT_USER\Software、HKEY_CURRENT_USER\Software\Microsoft 或 HKEY_USERS\.DEFAULT\Software下,具体是哪个地方依据不同的程序而有所不同,只要按上面的顺序肯定能找到有关应用程序的键,然后将和用户名及注册码有关的键值删掉就搞定了。

10. 关于破解练习的问题

学习破解需要大量的练习,对于破解目标的选择,初学者不宜以大型的、著名的软件为目标,因为这些软件通常加密较为复杂,破解不易,应该选择一些比较不出名的、小型的和早些时候的共享软件来练习,因为加密相对简单的软件有利于初学者快速掌握破解思想和技能。至于习题的来源则很广泛,可以从网上下载,也可以去市面上购买一些共享软件光盘。

1)无忧软件网 - 不可多得的破解软件下载基地,附有无忧书库,无忧字体,代码基地,无忧教学,**园地,完全游戏?http://www.51soft.com/;
(2)精品软件秀 - 软件下载网页,可惜更新太慢!分类清楚,更新及时,也值得一看。http://www.ohsoft.com/;
(3)163软件园 - 163软件园是国内著名的软件网站,网站定位是提供“提供软硬件资讯专业网站”。http://www.soft163.com/>http://http://www.soft163.com/;
(4)中华破解联盟 - 我们的会员达到211人,其中付费的会员45人,成为了一个大家比较欢迎的站点,然而破解站 点http://www.softsdown.com/;
(5)软件万花筒 - 一个破解软件下载。本站提供注册码、软件破解文件、精彩Flash动画。软能做到每天更新,而http://www.superdown.com/;
(6)盗亦有道 - 本站提供:国产软件 国外软件 精品软件 股票软件 加密工具 解密工具 网络安全 ICQ/OICQ 破解?http://forum.winzheng.com/~winzheng...ums.cgi?forum=5;
(7)番外地工作室 - 破解文献、破解工具、注册码、口令破解、杀毒软件、国产软件http://fwd.yeah.net/;
(8)破解乐园 - 本站是马思奇之家的子站,建立于公元二零零零年十月八日,主要以破解为主,提供软件下载、 软?
(9)中原破解 - 精彩的破解软件收录站点,国产注册,国外注册,光盘工具,解密软件,加密软件,破解学院.http://www.crackbest.net/>http://http://www.crackbest.net/;
(10)天空软件站 - 内容丰富,更新及时。提供各种破解的网络软件,系统工具,应用软件,联络聊天,图形图像,多媒体http://www.skycn.net/;
(11)赢政天下 - 可以说是破解软件下载的最权威的地方了。更新迅速。内容丰富。应有尽有!设有:.:最近更新:.http://soft.winzheng.com/;
(12)多快热下载 - 破解软件下载,正如其名,多快热下载,软件丰富,下载速度快的热门软件下载。
(13)肥牛精品 - 破解软件下载站点,内容全面,更新及时,从常用软件到行业软件都有破解版下载。http://www.51xiazai.com/>http://http://www.51xiazai.com/;
(14)注册码搜索大全 - 使用软件注册码搜索引擎AstalAvista.Box.Sk,几乎都能找到您想要的注册码或破解文件。http://www.netpaste.com/code/;
(15)【精品软件下载】 - 正版软件下载、破解软件下载、源代码下载,asp cgi php mysql,Soft Reatil Crack Keyhttp://www.9down.com/;
(16)康乐园 - 每天更新多次的破解、软件下载站点。内容极其丰富,几乎所有当今流行的软件都可以找到,是软 件?http://64.125.80.150/;
(17)无心精品软件下载 - 经典的破解版软件下载基地。系统工具,程序开发,电子阅读,翻译工具,网页制作,压缩工具http://www.clkj.net/soft/;
(18)注册大本营 - 提供注册码和注册机下载。http://yuanbin.spedia.net/;
(19)星月精品网 - 提供破解版的正版软件下载网站,界面美观大方,软件分类齐全,经常更新。
(20)QQ黑客网 - 拥有大量的QQ密码破解程序和轰炸程序,以及一些邮箱的密码破解程序和轰炸程序。http://www.qq88.net/>http://http://www.qq88.net/;
(21)豆子软件 - 包括正版软件、破解软件下载、正版游戏下载、查毒杀毒软件下载等。http://www.ggabc.com/;
(22)网虫乐园 - 本网把国外大公司的软件一网打尽,有软件速递 ,Abobe精品, macromedia精品, Microsoft精品 ,Uhttp://www2001.myrice.com/;
(23)注册大全 - 提供按照软件名称的开头字母来寻找相关的注册资料http://www.zx9.net/reg/index.htm;
(24)suhu注册码天地 - 中外注册码更新,可以查到几乎所有英文软件的注册码和注册机, 最新注册码 国内软件注册http://yanxz.myetang.com/;
(25)星梦之网 - 很cool的软件下载站点,更新及时。本站附有星梦论坛,软件注册机,破解教程,MP3下载,心理测 试,?http://www.stardown.com/;
(26)飞牌精品软件 - 不会让你失望的已破解网站,内容应有尽有.注册机,系统程序,网络工具,常用工具,媒体工具,?http://www.ayxz.com/;
(28)大亨软件园 - 大亨软件园-http://www.jxxw.com正版软件与破解软件的下载基地每天有几十种新正版软件 和游http://www.jxxw.com/;
(29)天天软件网 - 经典的破解软件下载站点,软件分类清楚,更新及时,绝对cool.不会让你失望的。http://;bugbug.6to23.com/
(30)Greatboy的网上家园 - 提供大量的注册机(码)及破解软件。http://greatboy.myrice.com/;
(31)珠江路在线 - 888珠江路在线-注册码智能注册中文系统 注册码智能搜索中文系统。提供**代码。http://www.zhujiangroad.com/code/>http://http://www.zhujiangroad.com/code/;
(32)火爆软件下载 - 本站设有:最新更新 软件分类 软件搜索 热门下载 在线管理等栏目。提供的软件都是破解http://www.myetoys.com/download/indexok.asp;
(33)软件仓库 - 经典的破解软件下载基地,名副其实,软件资源极其丰富,软件分17大类下载,值得一看。http://soft.netnest.com.cn/SelectDB.exe?;
(34)京九网堡下载站 - 非常精彩的破解网站,在这里可以找到你需要的许多实用性很强的软件,此站更新及时, 软?http://www.jjwb.com/soft/;
(35)阿程软件园 - 最新、最酷的正版软件下载,每天更新,,还有趣味软件、搞怪软件、侠客软件 、动漫壁纸 、 游http://myis.yeah.net/;
(36)华夏视窗导航 - 绝对值得一看的网站,此网页模仿windows桌面界面,很有创意。此站含有已破解的软件下 载,http://www.gl200.net/;
(37)石头软件 - 一个破解软件下载、游戏下载、图片下载的基地。本站提供注册码、软件破解文件、精彩Flash动 画http://stonesoft.my163.com/;
(38)网友自助中心 - 以软件加密、解密预防、软件保护、病毒与安全为主,包括电脑应用的各个方面。是一个有 一? 龙龙精品软件 - 破解的正版软件下载站点,更新及时,内容丰富,紧随软件潮流.内含多种 著名软件的注册机。http://52byte.com/>http://yesoft.myrice.com/http://52byte.com/;.....http://yesoft.myrice.com/;
(39)鲨鱼丸下载 - 正版软件下载、注册码、破解、游戏、工具、英语学习、音乐、影视http://www.whatisnet.net/index.asp>http://http://www.whatisnet.net/index.asp;
(40)无忧破解基地 - 提供最新的破解软件下载,每天更新,界面美观,软件实用性强,值得收藏http://www.51hot.net/soft/>http://http://www.51hot.net/soft/;
(41)蔫老虎精品软件资讯网 - 不错的正版和破解软件下载站点。注册码大全,系统工具,主页制作,网络工具,图形 图http://www.softicp.com/;
(42)注册码搜索 - Cgi下载,**服务,国外、国内软件注册、注册码、软件破解、注册)码搜索引擎,常用的注册 码?http://www.glavenet.com/sn/;
(43)听月在线 - 最新、最拽的正版软件下载,还有,听月聊天,听月下载,供求热线,交友频道, FALSH专题, 听月社区http://www.aptrat.com/;
(44)逍遥乐人居 - 软件破解下载,文学下载书籍,最新新闻,逍遥仙剑,精选网址有你想要的东东不想来看看会让 你http://leren.myrice.com/;
(45)阿蒙电脑乐园 - 精品软件、软件破解 。http://www.swhsky.com/;
(46)无忧破解基地 - 提供最新破解软件下载(包括正版软件),另有大量注册码、黑客工具下载,如果你喜欢破解 软http://www.51hot.net/soft/;
(47)月之门 - 软件破解、正版下载、日剧下载http://zjhall.51.net/;
(48)中华黑客 - 一个黑客组织,组织爱国者为我国计算机安全事业作贡献,站内具有最新最全的黑客工具和黑客 资?http://www.hackercn.com/;
(49)三脚猫大仓库 - 本站提供软件下载/破解,Mp3,Mtv,游戏,在线影院等等!是大家不可不去的酷站!http://;iww.my163.com/
(50)华娱下载区 - 非常过瘾的破解软件下载网站,每天更新几十个软件,让大家天天可以用上新软件。http://www.zjdownload.net/>http://http://www.zjdownload.net/;
(51)万发网☆超级下载基地! - 正版软件下载,注册机、码,**计数器,ASP源程序,网页制作................http://www.ujd0z1.chinaw3.com/;
(52)黑客软件园 - 欢迎光临黑客软件园,本站收集了现在最新的黑客软件跟资料、密码破解、OICQ工具杀毒软 件、Ihttp://go5.163.com/happyhot/;
(53)城郊漫步下载 - 这里的软件,是我自己常用的经典工具软件,相信也是你拥有或正在寻找的软件。包括系 统、?http://cnfjh.y365.com/softdown/softdown.htm;
(54)六颗太阳 - 主要介绍神秘的东东.并有大量的黑客软件下载,也有很多的黑客教程!!还有一些笑话、漫画和动 画?http://wgef3j.home.sohu.com/;
(55)大勇之家 - 正版下载,趣味软件,常用破解,杀毒更新,论坛留言,搜索服务,**服务,破解注册,工具 软?http://go4.163.com/dayong/;
(56)紫色天空 - 软件注册码大全 软件下载?;安全防护 ?;杀毒专栏 ?;QQ软件库 ?;炸弹工具 ?;木马控制 ?;扫描工?http://go1.163.com/tsst/;
(57)福满园共享软件 - 网站提供共享软件注册服务,支持多种在线支付手段。为保障网站,作者及客户三方利 益,?http://www.regshareware.com/public/default.asp;
(58)动感软件站 - 超酷软件下载, 软件下载,最新软件,常用软件, 软件使用, 建站技术,精彩论坛,虚拟城市,教学?

http://www.riyou.com/
http://www.hanzify.org/
http://www.crsky.com/default.html

TAG: 技巧

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-10-22  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 58555
  • 日志数: 6
  • 图片数: 4
  • 建立时间: 2006-09-22
  • 更新时间: 2007-01-04

RSS订阅

Open Toolbar