您当前的位置:JZ5U绿色下载站文章中心设计学院Photoshop → 文章内容
  • 教你怎么反编译exe文件

下面谈到了一些在学习解密过程中经常遇到的问题,自己依据本人的经历简单给大家谈一谈。这些问题关于初学者来说常常是很需求搞明白的,依据我本人的学习阅历,假如你直接照着很多破解教程去学习的话,多半都会把本人搞得满头的雾水,由于有很多的概念要么本人不是很分明,要么基本就不晓得是怎样一回事,所以希望经过下面的讨论给大家一定的协助:? 如今盛行的5种反编译exe软件的办法如下

办法/步骤

1. 断点:

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

如今盛行的5种反编译exe软件的办法图一

2. 领空:

这是个十分重要的概念,但是也初学者是常常不明白的中央。我们在各种各样的破解文章里都能看到领空这个词,假如你搞不分明到底程序的领空在哪里,那么你就不可能进入破解的大门。或许你也曾破解过某些软件,但那只是瞎猫碰到死老鼠而已(以前我就是这样的^_^,如今说起来都不好意义喔!)。所谓程序的领空,说白了就是程序本人的中央,也就是我们要破解的程序本人程序码所处的位置。或许你马上会问:我是在程序运转的时分设置的断点,为什么中缀后不是在程序本人的空间呢?由于每个程序的编写都没有固定的形式,所以我们要在想要切入程序的时分中缀程序,就必需不依赖详细的程序设置断点,也就是我们设置的断点应该是每个程序都会用到的东西。在DOS时期,根本上一切的程序都是工作在中缀程序之上的,即简直一切的DOS程序都会去调用各种中缀来完成任务。但是到了WINDOWS时期,程序没有权利直接调用中缀,WINDOWS系统提供了一个系统功用调用平台(API),就向DOS程序以中缀程序为根底一样,WINDOWS程序以API为根底来完成和系统打交道,从而各种功用,所以WINDWOS下的软件破解其断点设置是以API函数为根底的,即当程序调用某个API函数时中缀其正常运转,然后停止解密。例如在SOFTICE中设置下面的断点:bpx GetDlgItemText(获取对话框文本),当我们要破解的程序要读取输入的数据而调用GetDlgItemText时,立刻被SOFTICE拦截到,从而被破解的程序停留在GetDlgItemText的程序区,而GetDlgItemText是处于WINDWOS本人管理的系统区域,假如我们擅自改掉这局部的程序代码,那就大祸临头了^_^!所以我们要从系统区域返回到被破解程序本人的中央(即程序的领空),才干对程序停止破解,至于怎样看程序的领空请看前面的SOFTICE图解。试想一下:关于每个程序都会调用的程序段,我们可能从那里找到什么有用的东西吗?(怎样样去加密是程序本人决议的,而不是调用系统功用完成的!)?

如今盛行的5种反编译exe软件的办法图二

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种反编译exe软件的办法图三

5. 关于软件的破解方式:

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

以上就是如今盛行的5种反编译exe软件的办法,希望能协助到各位程序员!



  • 作者:互联网  来源:本站整理  发布时间:2019-10-11 16:26:49


------------------------------- · 相关文档浏览 · --------------------------------------------------------------------- · 热门文档浏览 · -------------------------------------