技术资料
加密狗破解复制解密过程中的一些基本术语
时间:2017-02-23 17:02:12     点击数:1254 次

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有两中底子形式:Win16Win32 Win16是本来的、API16位版别,用于Windows 3.1Win32是如今的、API32位版别,用于Windows 95/98/NT/ME/2000Win32包含了Win16,是Win16的超集,大多数函数的姓名、用法都是一样的。

 

16位的API函数和32位的API函数的差异在于最终的一个字母,例如咱们设置这样的断点:bpx GetDlgItemTextbpx GetDlgItemTextAbpx GetDlgItemTextW,其间 GetDlgItemText16API函数,GetDlgItemTextAGetDlgItemTextW32API函数,而GetDlgItemTextA表明函数运用单字节,GetDlgItemTextW表明函数运用双字节。如今咱们破解中常用到的是Win32单字节API函数,即是和GetDlgItemTextA相似的函数,其它的两种(Win16 APIWin32双字节API函数)则对比罕见。 Win32 API函数包含在动态链接库(Dynamic Link Libraries,简称DLLs)中,即包含在kernel32.dlluser32.dllgdi32.dllcomctl32.dll中,这即是为啥咱们要在softice顶用exp=C:\windows\system\kernel32.dll等指令即将这些动态链接库导入softice中的缘由。由于不这样做的话,咱们就无法阻拦到体系Win32 API函数调用了。

 

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

 

破解进程中咱们都会去找程序中将输入的注册码和正确的注册码相对比的当地,然后经过对程序的盯梢、剖析找到正确的注册码。可是正确的注册码一般在程序中以两种形状存在:显式的和隐式的,关于显式存在的注册码,咱们能够直接在程序所在的内存中看到它,例如你能够直接在SOFTICE的数据窗口中看到相似"297500523"这样存在的注册码(这里是随意写的),关于注册码显式存在的软件破解起来对比简单;可是有些软件的程序中并不会直接将咱们输入的注册码和正确的注册码进行对比,比方有能够将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不一样的当地逐个进行对比,或者是将咱们输入的注册码进行某种改换,再用某个特别的程序进行验证等等。

 

总归,应用程序会采纳各种不一样的杂乱运算方法来逃避直接的注册码对比,关于这类程序,咱们一般要下功夫去细心盯梢、剖析每个程序功用,找到加密算法,然后才干破解它,当然这需求必定的8086汇编编程功底和很大的耐性与精力。

转到页头】【返回