软件破解必须知道的6个最基本概念

所属分类: 软件教程 / 安全相关 阅读数: 1544
收藏 0 赞 0 分享
 

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不变),所以如果看到破解文章里的程序代码的地址值和自己的电脑里不一样,不要以为搞错地方了,只要你的程序代码正确就不会有问题。

更多精彩内容其他人还在看

腾讯电脑管家怎么下载和卸载软件?

腾讯电脑管家的软件管理功能是针对电脑中的软件,进行装机应用卸载升级等一些操作为一体的工具箱。那么腾讯电脑管家怎么下载和卸载软件?下面小编就为大家详细介绍一下,来看看吧
收藏 0 赞 0 分享

360安全卫士如何限制上传下载速度 360限制上传下载速度教程

很多人经常同时运行多个软件,有些软件会在后台自动执行上传和下载,这样就会使得网速变得很慢,那么360安全卫士如何限制上传下载速度呢?下面小编把解决办法分享到脚本之家平台供大家参考
收藏 0 赞 0 分享

腾讯电脑管家怎么给qq浏览器设置划词搜索功能?

腾讯电脑管家怎么给qq浏览器设置划词搜索功能?使用划词搜索是比较方便的,我们可以使用浏览器设置,同样也可以使用电脑管家设置,下面我们来卡看电脑管家设置的方法
收藏 0 赞 0 分享

360安全卫士清理电脑时怎么查看垃圾详情?

360安全卫士清理电脑时怎么查看垃圾详情?使用360清理电脑垃圾,但是为了防止误删除有用的文件,想查看垃圾的详细情况,该怎么查看呢?下面我们来看看详细的教程,需要的朋友可以参考下
收藏 0 赞 0 分享

360安全卫士高危漏洞开机就运行扫描该怎办?

360安全卫士高危漏洞开机就运行扫描该怎办?开机就开始扫描漏洞,导致其他软件打开很慢,想供禁止开机进行高危漏洞扫描,该怎么设置呢?下面我们来看看360安全卫士高危漏洞禁止开机扫描的教程
收藏 0 赞 0 分享

鲁大师迷你首页怎么关闭? 鲁大师两种取消弹出迷你新闻页的方法

鲁大师迷你首页怎么关闭?每次开机总是弹出窗口新闻,每次都手动关闭太麻烦,想关闭鲁大师弹出窗口,该怎么设置呢?下面分享两种鲁大师取消弹出迷你新闻页的方法
收藏 0 赞 0 分享

[下载]盘古团队发布XcodeGhost病毒检测工具:超800个应用被感染

由于通过非官方途径下载苹果 Xcode 被植入恶意代码,导致多款应用感染 XcodeGhost 病毒,以越狱出名的国内盘古团队发布 XcodeGhost 病毒检测工具,工具暂时不兼容 iOS7 版本,后续将进行更新。目前已经提供下载链接,大家快快下载试试吧
收藏 0 赞 0 分享

大揭秘!关于XcodeGhost病毒感染事件,你需要知道的十个问题

根据安全漏洞报告平台乌云报告显示,目前苹果应用商店中已有大量应用感染上了一种名叫XcodeGhost的病毒。这种病毒不仅会在应用运行时窃取用户信息,甚至还会模拟收费或帐号弹窗来窃取你的iCloud及iTunes密码。下面小编就为大家揭秘关于XcodeGhost病毒感染事件
收藏 0 赞 0 分享

迅雷澄清质疑:公布XcodeGhost病毒污染源的主要下载链接列表

xcodeghost病毒作者发表声明称,xcodeghost源于自己的实验,没有任何威胁性行为,同时公开了源代码。但依然无法消除众多用户的担忧,再加上iCloud账户密码被泄露事件时有发生,依旧弄得人心惶惶,现在迅雷公布XcodeGhost病毒污染源的主要下载链接列表,一起来看看
收藏 0 赞 0 分享

如何解决卡巴斯基KIS版6.0与金山词霸的冲突

我的卡巴斯基从5.0换为KAV版,再换为kis版,除了常被列入黑名单外,一直相安无事。昨日突然发飙,在卡巴运行时如果打开金山词霸2006则词霸立即没有响应,停进程也没有用。通过本篇文章把我的解决方案分享给大家
收藏 0 赞 0 分享
查看更多