欢迎来到天天文库
浏览记录
ID:46268961
大小:74.50 KB
页数:5页
时间:2019-11-22
《软件破解基础教程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、软件破解基础教程下面谈到了一些在学习解密过程中经常遇到的问题,木人根据自己的经验简单给大家谈一谈。这些问题对于初学者来说常常是很需要搞明白的,根据我自己的学习经历,如果你直接照着很多破解教程去学习的话,多半都会把自己搞得满头的雾水,因为有很多的概念耍么自己不是很清楚,要么根本就不知道是怎么一凹事,所以希望通过下而的讨论给大家一定的帮助:1.断点:所谓断点就是程序被中断的地方,这个词对于解密者来说是再熟悉不过了。那么什么又是屮断呢?屮断就是由于有特殊事件(屮断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(屮断服务程序),然后再返回原先的任务继
2、续执行。打个比方:你正在上班,突然有同学打电话告诉你他从外地坐火车过来,要你去火车站接他。然后你就向老板临时请假,赶往火车站去接同学,接着将他安顿好,随后你乂返回公司继续上班,这就是一个中断过程。我们解密的过程就是等到程序去获取我们输入的注册码并准备和正确的注册码相比较的时候将它中断下来,然后我们通过分析程序,找到正确的注册码。所以我们需要为被解密的程序设置断点,在适当的时候切入程序内部,追踪到程序的注册码,从而达到crack的冃的。2.领空:这是个非常重要的概念,但是也初学者是常常不明白的地方。我们在各种各样的破解文章里都能看到领空这个词,如果你搞不清楚到底
3、程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的―现在说起来都不好意思喔!)。所谓程序的领空,说白了就是程序自己的地方,也就是我们要破解的程序自己程序码所处的位置。也许你马上会问:我是在程序运行的时候设置的断点,为什么屮断后不是在程序自己的空间呢?因为每个程序的编写都没有固定的模式,所以我们要在想要切入程序的时候中断程序,就必须不依赖具体的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时代,基本上所有的程序都是工作在屮断程序之上的,即儿乎所有的DOS程序都会去调用各
4、种屮断来完成任务。但是到了WINDOWS时代,程序没有权力直接调用中断,WINDOWS系统提供了一个系统功能调用平台(API),沸]DOS程序以中断程序为基础一样,WINDOWS程序以API为基础來实现和系统打交道,从而各种功能,所以WINDWOS下的软件破解其断点设置是以API函数为基础的,即当程序调用某个API函数时中断其正常运行,然后进行解密。例如在SOFTICE中设置下面的断点:bpxGetDlgltemText(获収对话框文本),当我们更破解的程序要读収输入的数据而调用GetDlgltemText时,立即被SOFTICE拦截到,从而被破解的程序停留在
5、GetDlgltemText的程序区,而GetDlgltemText是处于WINDWOS自己管理的系统区域,如果我们擅自改掉这部分的程序代码,那就大祸临头了八_人!所以我们要从系统区域返回到被破解程序自己的地方(即程序的领空),才能对程序进行破解,至于怎样看程序的领空请看前面的SOFTICE图解。试想一下:对于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎么样去加密是程序口己决定的,而不是调用系统功能实现的!)1.API:即ApplicationProgrammingInterface的简写,中文叫应用程序编程接口,是一个系统定义函数的大集
6、合,它提供了访问操作系统特征的方法。API包含了儿白个应用程序调用的函数,这些函数执行所有必须的与操作系统相关的操作,如内存分配、向屏幕输出和创建窗口等,用户的程序通过调用API接口同WINDOWS打交道,无论什么样的应用程序,其底层最终都是通过调用各种API函数来实现各种功能的。通常API有两中基本形式:Win16和Win32。Winl6是原來的、API的16位版本,用于Windows3.1;Win32是现在的、API的32位版本,用于Windows95/98/NT/ME/2000oWin32包括了Winl6,是Win16的超集,大多数函数的名字、用法都是相
7、同的。16位的API函数和32位的API函数的区别在于最后的一个字母,例如我们设置这样的断点:bpxGetDlgltemText>bpxGetDlgltemTextA和bpxGetDlgltemTextW,中GetDlgltemText是16位API函数,GetDlgltemTextA和GetDlgltemTextW是32位API函数而GetDlgltemTextA表示函数使用单字节,GetDlgltemTextW表示函数使用双字节。现在我们破解屮常用到的是Win32单字节API函数,就是和GetDlgltemTextA类似的函数,其它的两种(Winl6API
8、和Win32双字节API函数)则比较少
此文档下载收益归作者所有