反编译与反汇编
来源:互联网 发布:phpcms整站源码 编辑:程序博客网 时间:2024/04/27 19:38
反编译与反汇编> 我们都曾经用过盗版的软件,都看过盗版的VCD,也都听过盗版的CD。但是,有没有人知道,那些“盗版商”是如何盗版(正确地说用该叫做“破解”)的呢?下面,我们就来了解一下,他们是如何在正版载体之上所作的手脚!
深入了解计算机的人应该都知道,现在软件破解专家和“盗版商”惯用的(准确地说应该是唯一的)途径来破解媒体的手段,就是———“反编译”和“反汇编”!
何为“反编译”和“反汇编”?这也许是大家最关心的问题,也是大家最不明白的问题。下面我将做出详细讲解。
反编译是一个将目标代码转换成源代码的过程。大体上的定义是:目标代码是一种用语言表示的代码,这种语言能通过实机或虚拟机直接执行。他是一个把程序“反写”的过程,但是,反编译只能反写程序的分支,他不可以反写整个程序。打个比方,比如一个程序比作一棵大树,而反编译只能反写树枝,却不能反写树干。那么,一个程序只反写了树枝是没有用的。因为,程序的运行,本身要靠程序的主干来调入程序各个部分。所以,盗版商还应该反写主干。这就要用到另一个王牌杀手——反汇编。当一个程序的分支都被反编译以后,这个程序基本上就是你自己制作的了,你是很了解他的特性的。这样,用反汇编编译程序主体,再把已编译好的程序分支调入程序主体,从而找到漏洞。其实,这里只需要用到这个软件的一个函数值,因为,函数,大家都知道,给X一个值,就有一个唯一的Y与之对应的。这样,反复试几次,此软件的漏洞就暴露无遗。这样,你就完成了一个软件的破解工作。
听起来,十分简单,但是,如果真的要让你做一下,那可不是一件简单的事情。
现在市面上买的盗版的 Windows系列产品,基本上都是盗版。很大的软件,比如:Windows系列、Linux系列等等产品。都需要几十人,甚至上百人一起破解。因为,他们这些软件的加密技术实在是“天衣无缝”,但是,请永远记住这句话:没有没有漏洞的软件、没有没有漏洞的系统。
基本上,破解Windows产品的方法如下:
软件商为了防止自己的软件被非法安装和反汇编,采取了很多办法,如安装盘的磁道加密、加密狗等技术,这些技术的发展促进了软件业的健康发展。
现在广泛使用的限制非授权安装的方法是采用CDKEY校验法。例如在安装Windows 95/98/NT时,安装程序要求用户输入CDKEY,以确定用户是否是授权安装。只有输入的CDKEY正确时,安装程序才会继续执行安装。这个流程的一大漏洞是程序判断CDKEY是否有效的代码段中必然有一个跳转语句,且该代码段中必包含CDKEY。解密者可反汇编安装程序的二进制代码,然后截取有跳转语句的部分加以分析,从而解密。事实上,一些解密技术资料中,均采用这一思路取得CDKEY。
安装Windows系列产品唯一的验证就是序列号(CDKEY)这样,破解了他,你就等于破解了Windows。
所以,软件盗版商,就赢得了巨大的利润。
深入了解计算机的人应该都知道,现在软件破解专家和“盗版商”惯用的(准确地说应该是唯一的)途径来破解媒体的手段,就是———“反编译”和“反汇编”!
何为“反编译”和“反汇编”?这也许是大家最关心的问题,也是大家最不明白的问题。下面我将做出详细讲解。
反编译是一个将目标代码转换成源代码的过程。大体上的定义是:目标代码是一种用语言表示的代码,这种语言能通过实机或虚拟机直接执行。他是一个把程序“反写”的过程,但是,反编译只能反写程序的分支,他不可以反写整个程序。打个比方,比如一个程序比作一棵大树,而反编译只能反写树枝,却不能反写树干。那么,一个程序只反写了树枝是没有用的。因为,程序的运行,本身要靠程序的主干来调入程序各个部分。所以,盗版商还应该反写主干。这就要用到另一个王牌杀手——反汇编。当一个程序的分支都被反编译以后,这个程序基本上就是你自己制作的了,你是很了解他的特性的。这样,用反汇编编译程序主体,再把已编译好的程序分支调入程序主体,从而找到漏洞。其实,这里只需要用到这个软件的一个函数值,因为,函数,大家都知道,给X一个值,就有一个唯一的Y与之对应的。这样,反复试几次,此软件的漏洞就暴露无遗。这样,你就完成了一个软件的破解工作。
听起来,十分简单,但是,如果真的要让你做一下,那可不是一件简单的事情。
现在市面上买的盗版的 Windows系列产品,基本上都是盗版。很大的软件,比如:Windows系列、Linux系列等等产品。都需要几十人,甚至上百人一起破解。因为,他们这些软件的加密技术实在是“天衣无缝”,但是,请永远记住这句话:没有没有漏洞的软件、没有没有漏洞的系统。
基本上,破解Windows产品的方法如下:
软件商为了防止自己的软件被非法安装和反汇编,采取了很多办法,如安装盘的磁道加密、加密狗等技术,这些技术的发展促进了软件业的健康发展。
现在广泛使用的限制非授权安装的方法是采用CDKEY校验法。例如在安装Windows 95/98/NT时,安装程序要求用户输入CDKEY,以确定用户是否是授权安装。只有输入的CDKEY正确时,安装程序才会继续执行安装。这个流程的一大漏洞是程序判断CDKEY是否有效的代码段中必然有一个跳转语句,且该代码段中必包含CDKEY。解密者可反汇编安装程序的二进制代码,然后截取有跳转语句的部分加以分析,从而解密。事实上,一些解密技术资料中,均采用这一思路取得CDKEY。
安装Windows系列产品唯一的验证就是序列号(CDKEY)这样,破解了他,你就等于破解了Windows。
所以,软件盗版商,就赢得了巨大的利润。
- 反编译与反汇编
- 反编译 反汇编
- IDA反汇编/反编译
- IDA反汇编/反编译静态分析iOS模拟器程序(四)反汇编的符号信息与改名
- so库的反编译,反汇编
- IDA反汇编/反编译静态分析iOS模拟器程序(二)加载文件与保存数据库
- IDA反汇编/反编译静态分析iOS模拟器程序(三)函数表示与搜索函数
- 汇编与反汇编之小技巧
- 寄存器变量与汇编反汇编
- 反汇编与寄存器结构
- 逆向与反汇编工具
- 【破解利器】反汇编工具 and 反编译(Decompilers)
- 【破解利器】反汇编工具 and 反编译(Decompilers)
- IDA反汇编/反编译静态分析iOS模拟器程序
- IDA反汇编/反编译静态分析iOS模拟器程序系列
- so文件反汇编反编译到C源码
- so文件反汇编反编译到C源码
- IDA反汇编/反编译静态分析iOS模拟器程序(五)F5反编译
- Struts2远程代码执行漏洞
- 15-1窗口程序体验
- OMX 移植解码器
- 查询表含有多少个字段,oracle数据库
- 窗口程序体验(求三角形面积)
- 反编译与反汇编
- c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
- 关于oracle中merge into的用法
- 最小生成树--克鲁斯卡尔算法
- IOS学习:调试程序(断点:异常断点)
- PDIUSBD12 带并行总线的USB接口器件 特性
- -3dB, 半功率点与通带的一点理解
- Linux-2.6.30 _USB_HOST 移植
- 从动态语言到python