如果你直接照着很多破解教程去学习的话,会越学越蒙蔽,因为有很多的概念要么自己不是很清楚,要么根本就不知道是怎么一回事,下面黑客业务网把自己的亲自破解的经验分享出来
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:windowssystemkernel32.dll等指令即将这些动态链接库导入softice中的原因。由于不这样做的话,咱们就无法阻拦到体系Win32 API函数调用了。
4. 关于程序中注册码的存在 *** :破解进程中咱们都会去找程序中将输入的注册码和正确的注册码相比较的当地,然后经过对程序的盯梢、剖析找到正确的注册码。可是正确的注册码一般在程序中以两种形状存在:显式的和隐式的,关于显式存在的注册码,咱们能够直接在程序所在的内存中看到它,例如你能够直接在SOFTICE的数据窗口中看到相似"297500523"这样存在的注册码(这里是随意写的),关于注册码显式存在的软件破解起来比较简单;可是有些软件的程序中并不会直接将咱们输入的注册码和正确的注册码进行比较,比方有或许将注册码换算成整数、或是将注册码拆开,然后将每一位注册码分开在不同的当地逐个进行比较,或者是将咱们输入的注册码进行某种改换,再用某个特别的程序进行验证等等。总归,应用程序会采纳各种不同的杂乱运算 *** 来逃避直接的注册码比较,关于这类程序,咱们一般要下功夫去细心盯梢、剖析每个程序功用,找到加密算法,然后才干破解它,当然这需求必定的8086汇编编程功底和很大的耐性与精力。
5. 关于软件的破解 *** :自己将破解 *** 分为两大类,即彻底破解和暴力破解。所谓彻底破解主要是针对那些需求输入注册码或暗码等软件来说的,假如咱们能经过对程序的盯梢找到正确的注册码,经过软件自身的注册功用正常注册了软件,这样的破解称之为彻底破解;但假如有些软件自身没有供给注册功用,仅仅供给试用(DEMO),或是注册不能经过软件自身进行(例如需求获取别的一个专用的注册程序,经过INTERNET的注册等等),或者是软件自身的加密技能比较杂乱,软件破解者的才能、精力、时刻有限,不能直接得到正确的注册码,此刻咱们需求去修正软件自身的程序码
6.于破解操练的问题:学习破解需求很多的操练,关于破解方针的挑选,初学者不宜以大型的、闻名的软件为方针,由于这些软件一般加密较为杂乱,破解不易,应该挑选一些比较不出名的、小型的和早些时候的共享软件来操练,由于加密相对简略的软件有利于初学者快速把握破解思维和技术。至于习题的来历则很广泛,能够从网上下载,也能够去市面上购买一些共享软件光盘。