zoukankan      html  css  js  c++  java
  • 浅谈计算机软件的破解与保护(时间:20111224作者:李富云 来源:中国论文库)

    摘要:保护正版软件,抵制盗版软件,在中国IT行业是一个迫在眉睫的任务。目前的软件大部分采用了代码加密以及安装采用序列号的方式来保护自身。本文主要从C#软件、java软件角度来试论目前的

      摘要:保护正版软件,抵制盗版软件,在中国IT行业是一个迫在眉睫的任务。目前的软件大部分采用了代码加密以及安装采用序列号的方式来保护自身。本文主要从C#软件、java软件角度来试论目前的破解与正当保护。以及常见的一些专业的技术分析。

      关键词:C# 软件破解 Java软件破解 知识产权 软件加密 软件保护

      1概述当我们的软件开发完成后用于商业行业时,为了盈利,就需要设置权限让未购买者不能使用部分功能。这个时候注册码、激活码编的非常重要,未 购买者会加上一些限制,比如使用天数的限制、部分功能不能正常使用、软件定时提示注册等。但是随之而来的是软件被破解,现在软件破解技术越来越强大,几乎 国内外大型的软件都有注册机,但是大都不断被破解了,国家大力提倡正版,严厉打击盗版,但是效果不是很明显。现在大多软件商采取了代码加密、产品加密等手 段来保护自己的软件。

      2常见的软件破解方式

      2.1暴力破解这是最常见也是最简单的方法。黑客通过一些破解工具(例如Cain and Abe)l对可以执行的文件.exe进行修改。暴力破解是一种针对于密码的破译方法,根据组合原理,将数字、字母的组合逐个推算、测试直到找出真正的密码 为止。例如一个密码由5位数字组成,其可能共有100000种组合,因此最多尝试100000次就能找到正确的密码。理论上利用这种方法可以破解任何一种 密码。暴力破解对于简单的密码破解,是很有效果的。但是缺陷是耗时长,并且当密码比较复杂时(数字与字母组合),就不容易破解了。

      2.2算法注册机破解

      现在的软件商一般都自己写一些算法来保护自己的产品。比如数字加密(在原始数据基础上加上一个特定的数,再加上另外的数,然后在乘以一个数等 等,最终得到一个加密后的数据)、字符串加密(将字符串转码、加上特定字符串等)等。算法注册机是在充分了解了软件的算法基础上,制作出的一种可以自动生 成软件注册码的程序。

      因而软件的算法的编写显得非常重要。

      2.3补丁破解以及注册表破解

      补丁破解法是指用相关的补丁程序来修改软件,以达到破解软件的目的。此方法一般是破解软件的验证注册码或时间,基本上都是修改原程序的判断语句。注册表破解主要是指通过修改注册文件.

      reg来达到破解。比如软件试用限制时间是一个月,那么破解者就可以通过修改注册文件.reg来延长甚至无限制使用软件。

      2.4 C#程序破解

      众所周知C#里大多的控件是开源的。目前在市场有很多的软件是通过C#编写的。从商业利益角度上,软件商设置了很多的限制,但是破解者一样可以 长驱直入。Reflector(下载地址)l就是大多破解者选择的破解工具,利用该软件,可以清楚的看见程序的代码,那么这个时候软件商写的算法都尽收眼 底了。因而破解者可以轻易根据软件商的算法得出软件注册码。

      2.5 Java软件破解

      在软件编程语言里,Java语言是最为安全的一门编程语言。如果不拿到源代码,几乎不可能破解Java程序。但是下载拿到了源码,如何来修改软 件的限制呢?打开Java文件发现全是乱码,很多破解者使用了java反编译工具XJad(下载地址:)l来破解。通过该工具,能把编译过后的Java文 件反编译成正常代码。这样我们的算法就显得很苍白、无力。

      2.6加密狗破解

      硬件加密锁FreeEIM,俗程“加密狗”,对于加密狗的破解大致可以分为三种方法,一种是通过硬件克隆或者复制,一种是通过Soft-ICE等Debug工具调试跟踪解密,一种是通过编写拦截程序修改软件和加密狗之间的通讯。

      3软件保护方法

      从事计算机软件科研开发、技术贸易的高新技术企业通常需要不断开发和积累企业的技术成果,以保持企业技术的优势,需要保护好企业拥有的知识产权,以能够利用本企业的知识产权为自身带来经济利 益,否则将会影响企业的生存和发展。高新技术企业大都是以知识创新开发产品,当知识产品进入市场后,则完全依赖于对其知识产权的保护,如果没有保护或保护 不好,将影响企业大规模的实施知识开发投资,企业也不可能更好的生存与发展。所以软件的保护显得特别重要。这里主要介绍以下几点保护措施:3.1基于软件 的保护基于软件的保护也可以叫软加密,这是一种不依赖于硬件的保护。目前比较流行的有3.1.1注册码保护。

      软件安装时设置安装序列号,比如YingInstall就可以实现该功能,这样要求用户安装时就必须输入一个合法的序列号。软件安装成功后,启 动运行时通过注册号验证,这时候就要求机器码与注册验证码完全匹配才能通过。那么机器码怎么获得呢?途径一:可以根据电脑的mac地址来做,因为一台电脑 的mac是唯一的,且不会重复。

      途径二:硬盘的卷号以及CPU等信息来生成机器码。途径三:可以自己写随即方法来生成唯一且不重复的机器码。通过注册码我们可以来验证该用户的角色,以此来为用户设置权限。

      3.1.2在线注册保护。

      目前大多数的软件商采用在线注册来保护软件。应用程序通过开发商发放的授权码与网络认证服务器建立连接,并调用服务器上的Web Service接口完成软件保护工作。因为这种客户端/服务器模式之前采用了高强度的类似TSL的通讯加密技术,而且服务器远离软件用户,因此它的软件保 护强度可以非常高。当用户在使用软件的时候,会根据自己电脑硬件的信息来生成一个机器码(注册码)。而用户必须将机器码(注册码)发给软件商,进行在线注 册(验证),以取得使用权限。这样做的一个好处在于,验证的过程,用户完全不会接触,因而破解系数就很大。这种保护还有利于软件商了解市场,他们可以通过 后台查看到有多少用户在使用。

      3.1.3基于硬件的软件保护。

      硬件的软件保护有很多,其中大家比较熟悉的就有加密狗、加密锁、光盘、软盘等。那么硬件的软件保护主要有数据加密、注册认证、访问限制、一些硬 件识别等。它给我们带来的好处很多,比如永赛电脑培训的上级练习就必须要用到光盘才能正常使用,如果完整拷贝里面东西,没有光盘一样不行,这种安全等级就 很高。

      3.2加密狗、加密锁

      是一种插在计算机USB口或并口上的软硬件结合的加密产品,目前绝大部分都是USB口形式,是基于硬件保护技术,其目的是通过对软件与数据的保 护防止知识产权被非法使用,是保证高档软件在市场生命周期中免受盗版侵害的功能强大的工具。加密狗一般都有几十或几百字节的非易失性存储空间可供读写,现 在较新的狗内部还包含了单片机。软件开发者可以通过接口函数和软件狗进行数据交换,来检查软件狗是否插在接口上。加密狗通过在软件执行过程中和加密狗交换 数据来实现加密的.加密狗内置单片机电路(也称CPU),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为"智能型"加 密狗.加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。同时,加密算法是 不可预知、不可逆的。加密算法可以把一个数字或字符变换成一个整数,如DogConvert(1)=12345、 DogConvert(A)=43565。加密狗是一种智能型加密产品,可以直接插到USB接口上使用。在基于硬件的软件保护上具有很高的安全性。

      3.3光盘、软盘保护

      软件的密钥可以写在可移动的光盘或者软盘之中,就像上面提到的永赛电脑培训的上机练习就采用到了这种保护。这种措施,只有当软盘或光盘存在的时 候,被保护软件才可以运行,大部分游戏软件经常采用此种方式。它的基本原理是利用了普通刻录机无法复制隐藏的密钥而实现的,目前像CryptCD就可以达 到这种效果。这种保护有一些问题:就是光盘易坏。一旦坏了,用户就无法正常使用了。

      4结束语

      软件的破解与保护本身就是一对矛盾的关系。软件商穷尽脑汁的编写保护措施,却最终免不了被破解,对于黑客来说,只是加大了他们破解难度而已,这 是一种不道德的行为。对于现行的中国软件保护措施较弱的情况下,对于软件使用者,我们应该尽可能的支持正版,打击破解版,保护软件商利益,尊重IT精英的 成果;为我国的IT发展做出一份默默的贡献。

    转贴于中国论文库 http://www.lwkoo.com
  • 相关阅读:
    Java-使用IO流对大文件进行分割和分割后的合并
    Java-单向链表算法
    Java-二分查找算法
    Java-二叉树算法
    Java-对象比较器
    Android中Activity的四种开发模式
    Struts2工作原理
    C++实现单例模式
    数组中有一个数字出现的次数超过数组的一半,请找出这个数字
    c++ enum用法【转】
  • 原文地址:https://www.cnblogs.com/xwj517537691/p/2721291.html
Copyright © 2011-2022 走看看