反编译 反汇编

时间:2021-09-26 01:06:29

反编译与反汇编> 我们都曾经用过盗版的软件,都看过盗版的VCD,也都听过盗版的CD。但是,有没有人知道,那些“盗版商”是如何盗版(正确地说用该叫做“破解”)的呢?下面,我们就来了解一下,他们是如何在正版载体之上所作的手脚!
深入了解计算机的人应该都知道,现在软件破解专家和“盗版商”惯用的(准确地说应该是唯一的)途径来破解媒体的手段,就是———“反编译”和“反汇编”!
  何为“反编译”和“反汇编”?这也许是大家最关心的问题,也是大家最不明白的问题。下面我将做出详细讲解。
  反编译是一个将目标代码转换成源代码的过程。大体上的定义是:目标代码是一种用语言表示的代码,这种语言能通过实机或虚拟机直接执行。他是一个把程序“反写”的过程,但是,反编译只能反写程序的分支,他不可以反写整个程序。打个比方,比如一个程序比作一棵大树,而反编译只能反写树枝,却不能反写树干。那么,一个程序只反写了树枝是没有用的。因为,程序的运行,本身要靠程序的主干来调入程序各个部分。所以,盗版商还应该反写主干。这就要用到另一个王牌杀手——反汇编。当一个程序的分支都被反编译以后,这个程序基本上就是你自己制作的了,你是很了解他的特性的。这样,用反汇编编译程序主体,再把已编译好的程序分支调入程序主体,从而找到漏洞。其实,这里只需要用到这个软件的一个函数值,因为,函数,大家都知道,给X一个值,就有一个唯一的Y与之对应的。这样,反复试几次,此软件的漏洞就暴露无遗。这样,你就完成了一个软件的破解工作。
  听起来,十分简单,但是,如果真的要让你做一下,那可不是一件简单的事情。
  现在市面上买的盗版的 Windows系列产品,基本上都是盗版。很大的软件,比如:Windows系列、Linux系列等等产品。都需要几十人,甚至上百人一起破解。因为,他们这些软件的加密技术实在是“天衣无缝”,但是,请永远记住这句话:没有没有漏洞的软件、没有没有漏洞的系统。
  基本上,破解Windows产品的方法如下:
  软件商为了防止自己的软件被非法安装和反汇编,采取了很多办法,如安装盘的磁道加密、加密狗等技术,这些技术的发展促进了软件业的健康发展。
  现在广泛使用的限制非授权安装的方法是采用CDKEY校验法。例如在安装Windows 95/98/NT时,安装程序要求用户输入CDKEY,以确定用户是否是授权安装。只有输入的CDKEY正确时,安装程序才会继续执行安装。这个流程的一大漏洞是程序判断CDKEY是否有效的代码段中必然有一个跳转语句,且该代码段中必包含CDKEY。解密者可反汇编安装程序的二进制代码,然后截取有跳转语句的部分加以分析,从而解密。事实上,一些解密技术资料中,均采用这一思路取得CDKEY。
  安装Windows系列产品唯一的验证就是序列号(CDKEY)这样,破解了他,你就等于破解了Windows。
  所以,软件盗版商,就赢得了巨大的利润。
  所以,我们应该好好学习反汇编、反编译,来阻塞软件破解商的破解道路,使正版软件能够真正的为我们服务!!

 

附:反汇编简单。但反编译难,
象C++BUILDER,DELPHI,VC++这种真编译的EXE几乎不可能反编译,
象VB, JAVA,C# 等伪编译的语言,可以从EXE或运行代码反编译
成原来的源程序,但注释没有了。