本文转载自USB-Key逆向研究中心

1、加密专业性概述

  一个账户密码系统的安全性能只在于密钥的安全系数,而沒有算法的安全系数。

  对纯数据信息的加密的确是那般。对于你不愿意使他看到这类数据信息(数据信息的明文)的人,用可靠的加密算法,只需破解者不清楚被加密数据信息的账户密码,他就不可以解读这类数据信息。

  但是,手机app的加密不同于数据信息的加密,它仅有是“隐藏”。无论你要想不愿意使他(合情合理顾客,或 Cracker)见到这类数据信息(手机app的明文),手机软件最终一直要在生产设备上运行,对机器设备,它就尽量是明文。即然机器设备可以“见到”这类明文,那么 Cracker,依据一些专业性,还能够看到这类明文。

  因而,从理论上,一切手机app加密专业性都可以破解。只是破解的自然环境不一样而已。有的要让较大明的 Cracker 忙上好几个月,有的极有可能不费吹灰之力,就被破解了。

  因而,防盗版的每日每日任务(专业性上的防盗版,并不是行政机关上的防盗版)就是提高 Cracker 的破解自然环境。让很多人消耗在破解软件上的成本费用,比他破解这一系统软件的赚钱还必须高。那般 Cracker 的破解愈来愈毫无用处——谁会花比软件正版化很多的钱去买盗用?

  2、登陆密码算法详细介绍

  2.1   界定

  (1) 发货人和接收者

  假设发货人想消息推送消息给接收者,且想安全系数地发送信息:她想坚信监听者不能文章阅读消息推送的消息。

  (2) 消息和加密

  消息称之为明文。用某类方法隐藏消息以掩藏它的主要内容的整个过程称作加密,加了密的消息称之为信息保密,而把保密转变为明文的整个过程称作解密。

  明文用M(消息)或P(明文)表明,它可能是比特流(文本文件、位图文件、智能化系统的声频流或智能化系统的小视频图像)。针对涉及到计算机,P是简约的二进制数据信息。明文可被传送或存储,无论在哪一种情况,M指待加密的消息。

  信息保密用C表明,它也是二进制数据信息,有时和M一样大,有时候稍大(依据变小和加密的结合,C有可能比P小些。却不知道,只是加密通常达不了这一点)。加密函数公式E作用于M得到信息保密C,用数学思维表明为:

  E(M)=C.

  相反地,解密函数公式D作用于C导致M

  D(C)=M.

  先加密后再解密消息,原始的明文将修补出来,下面的算式尽量开创:

  D(E(M))=M

  (3) 鉴别、一致性和抗欠钱不还

  除了给与安全性保密性外,登陆密码算法通常有其余的作用:.

  (a) 鉴别

  消息的接收者理应可以明确消息的来自;侵略军不大可能扮成他人。

  (b) 一致性检验

  消息的接收者理应可以验证在传送操作流程中消息没有被修改;侵略军不大可能用假消息取代合情合理消息。

  (c) 抗欠钱不还

  发货人之后不大可能谎报地否认他消息推送的消息。

  (4) 算法和密钥

  账户密码算法也叫登陆密码,是用于加密和解密的数学函数。(一般情形下,有两个相关的函数公式:一个做为加密,另一个作为解密)

  倘若算法的安全系数是依据保持算法的秘密,这类算法称作受限制的算法。受到限制的算法具有历史意义,但按现阶段的标准,她们的安全系数已还不够。大的或经常变换的顾客组织不能运用她们,因为每有一个顾客离开这一组织,别的的顾客就尽量拆换除此之外不一样的算法。倘若有一个人无意间外露了这一秘密,每个人尽量变更他们的算法。

  更槽糕的是,受限制的账户密码算法不大可能进行质量控制或规范性。每一个顾客组织尽量有他们自己的唯一算法。那般的组织不大可能采用流行的系统配置或项目管理。但监视者却可以选购到这类流行产品并培训学习算法,因而顾客不得已本身编写算法并给与进行,倘若这一组织中没有好的账户密码专家学者,那么他们就无法掌握他们是否拥有安全系数的算法。

  尽管有这类重要缺陷,受限制的算法对低密级的应用来讲也是很盛行的,顾客或者没有认知能力到或者不在乎他们系统中实质的问题。

  现代密码学用密钥解决了这个问题,密钥用K表明。K可以是很多数值里的随便值。密钥K的极有可能值的范围称之为密钥室内空间设计。加密和解密测算都运用这一密钥(即测算都在于密钥,而且用K作为标识符表明),那般,加/解密函数公式现如今变成:

  EK(M)=C

  DK(C)=M.

  DK(EK(M))=M.

  有一些算法运用不一样的加密密钥和解密密钥,也就是说加密密钥K1与相对性应的解密密钥K2不一样,在那样的情形下:

  EK1(M)=C

  DK2(C)=M

  DK2 (EK1(M))=M

  所有这类算法的安全性都依据密钥的安全性能;而不是依据算法的关键环节的安全性能。这就表示着算法可以发布,还能够被分析,可以许多生产加工运用算法的产品,即使监听者掌握你的算法也没有关系;倘若他不知道你选用的具体密钥,他就不大可能文章阅读你的消息。

  账户密码系统由算法、以及所有有可能的明文、信息保密和密钥组成的。

  依据密钥的算法通常有两类:对称算法和发布密钥算法。下面将分别详解:

  2.2   对称账户密码算法

  对称算法有时又叫传统账户密码算法,就是加密密钥可以从解密密钥中推算出来,反过来也开创。在绝大多数对称算法中,加/解密密钥是一致的。这类算法也叫秘密密钥算法或单密钥算法,它要求发货人和接收者在安全系数通信之前,商讨一个密钥。对称算法的安全性在于密钥,泄漏密钥就象征着所有人能对消息进行加/解密。只需通信务必保密信息,密钥就尽量保密信息。

  对称算法的加密和解密表明为:

  EK(M)=C

  DK(C)=M

  对称性算法可分为两类。一次只对明文中的独立比特犬(有时对字节)测算的算法称作开放阅读框算法或序列密码。另一类算法是对明文的一组比特犬亚行测算,这类比特犬组称作归类,相对性应的算法称作归类算法或分类账户密码。现代计算机登陆密码算法的广泛性归类长度为64比特犬——这一长短大到充足防止分析破译,但又小到充足方便使用(在计算机产生前,算法普遍地每一次只对明文的一个字符计算,可感觉是序列密码对标志符开放阅读框的测算)。

  2.3   发布账户密码算法

  发布密钥算法(也叫非对称加密加密算法)是这类制订的:做为加密的密钥不同于做为解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长期性内)。通常称之为发布密钥算法,是因为加密密钥可以发布,即陌生者能用加密密钥加密信息,但仅有效相对性应的解密密钥才可以解密信息。在这类电脑操作系统中,加密密钥称之为发布密钥(统称公匙),解密密钥称之为本人密钥(统称公匙)。本人密钥有时也叫秘密密钥。为了避免与对称算法拼错,这儿不用秘密密钥名字的来历。

  用发布密钥K加密表明为

  EK(M)=C.

  虽然发布密钥和本人密钥是不一样的,但用相对性应的本人密钥解密可表明为:

  DK(C)=M

  有时消息用本人密钥加密而用发布密钥解密,这用于数字签名(后面将详细说明),尽管极有可能导致拼错,但这类测算可分别表明为:

  EK(M)=C

  DK(C)=M

  现如今的发布账户密码算法的速度,对比对称账户密码算法,要慢的多,这促进发布账户密码算法在大数据量的加密中应用较为比较有限。

  2.4   一侧散列函数

  单边散列函数 H(M) 作用于一个随便长度的消息 M,它返回一个固定长度的散列值 h,之中 h 的规格为 m .

  输入为随便长度且导出来为固定长度的函数公式有很各种各样,但一侧散列函数也是有使其一侧的别的特性:

  (1) 得出 M ,很容易计算 h ;

  (2) 得出 h ,根据 H(M) = h 计算 M 无法 ;

  (3) 得出 M ,要找寻另一个消息 M‘ 并做到 H(M) = H(M’) 无法。

  在许多应用中,仅有可逆性是还不够的,还务必称之为“抗碰撞”的规范:

  要寻找2个随意的消息 M 和 M‘,使 H(M) = H(M’) 做到无法。

  由于散列函数的这些特性,由于发布账户密码算法的响应速度通常较慢,因而,在一些账户密码合同书中,它可以作为一个消息 M 的前言,取代原始消息 M,让发货人为 H(M)签名而不是对 M 签字 .

  如 SHA 散列算法用于数字签名合同书 DSA中。

 2.5   数字签名

  提到数字签名就离不开公开密码系统和散列技术。

  有几种公钥算法能用作数字签名。在一些算法中,例如RSA,公钥或者私钥都可用作加密。用你的私钥加密文件,你就拥有安全的数字签名。在其它情况下,如DSA,算法便区分开来了??数字签名算法不能用于加密。这种思想首先由Diffie和Hellman提出 .

  基本协议是简单的 :

  (1) A 用她的私钥对文件加密,从而对文件签名。

  (2) A 将签名的文件传给B.

  (3) B用A的公钥解密文件,从而验证签名。

  这个协议中,只需要证明A的公钥的确是她的。如果B不能完成第(3)步,那么他知道签名是无效的。

  这个协议也满足以下特征:

  (1) 签名是可信的。当B用A的公钥验证信息时,他知道是由A签名的。

  (2) 签名是不可伪造的。只有A知道她的私钥。

  (3) 签名是不可重用的。签名是文件的函数,并且不可能转换成另外的文件。

  (4) 被签名的文件是不可改变的。如果文件有任何改变,文件就不可能用A的公钥验证。

  (5) 签名是不可抵赖的。B不用A的帮助就能验证A的签名。

  在实际应用中,因为公共密码算法的速度太慢,签名者往往是对消息的散列签名而不是对消息本身签名。这样做并不会降低签名的可信性。

  3    当前流行的一些软件保护技术

  3.1   序列号保护

  数学算法一项都是密码加密的核心,但在一般的软件加密中,它似乎并不太为人们关心,因为大多数时候软件加密本身实现的都是一种编程的技巧。但近几年来随着序列号加密程序的普及,数学算法在软件加密中的比重似乎是越来越大了。

  看看在网络上大行其道的序列号加密的工作原理。当用户从网络上下载某个shareware——共享软件后,一般都有使用时间上的限制,当过了共享软件的试用期后,你必须到这个软件的公司去注册后方能继续使用。注册过程一般是用户把自己的私人信息(一般主要指名字)连同信用卡号码告诉给软件公司,软件公司会根据用户的信息计算出一个序列码,在用户得到这个序列码后,按照注册需要的步骤在软件中输入注册信息和注册码,其注册信息的合法性由软件验证通过后,软件就会取消掉本身的各种限制,这种加密实现起来比较简单,不需要额外的成本,用户购买也非常方便,在互联网上的软件80%都是以这种方式来保护的。

  软件验证序列号的合法性过程,其实就是验证用户名和序列号之间的换算关系是否正确的过程。其验证最基本的有两种,一种是按用户输入的姓名来生成注册码,再同用户输入的注册码比较,公式表示如下:

  序列号 = F(用户名)

  但这种方法等于在用户软件中再现了软件公司生成注册码的过程,实际上是非常不安全的,不论其换算过程多么复杂,解密者只需把你的换算过程从程序中提取出来就可以编制一个通用的注册程序。

  另外一种是通过注册码来验证用户名的正确性,公式表示如下:

  用户名称 = F逆(序列号) (如ACDSEE)

  这其实是软件公司注册码计算过程的反算法,如果正向算法与反向算法不是对称算法的话,对于解密者来说,的确有些困难,但这种算法相当不好设计。

  于是有人考虑到以下的算法:

  F1(用户名称) = F2(序列号)

  F1、F2是两种完全不同的的算法,但用户名通过F1算法计算出的特征字等于序列号通过F2算法计算出的特征字,这种算法在设计上比较简单,保密性相对以上两种算法也要好的多。如果能够把F1、F2算法设计成不可逆算法的话,保密性相当的好;可一旦解密者找到其中之一的反算法的话,这种算法就不安全了。一元算法的设计看来再如何努力也很难有太大的突破,那么二元呢?

  特定值 = F(用户名,序列号)

  这个算法看上去相当不错,用户名称与序列号之间的关系不再那么清晰了,但同时也失去了用户名于序列号的一一对应关系,软件开发者必须自己维护用户名称与序列号之间的唯一性,但这似乎不是难以办到的事,建个数据库就可以了。当然也可以把用户名称和序列号分为几个部分来构造多元的算法。

  特定值 = F(用户名1,用户名2,...序列号1,序列号2...)

  现有的序列号加密算法大多是软件开发者自行设计的,大部分相当简单。而且有些算法作者虽然下了很大的功夫,效果却往往得不到它所希望的结果。

  3.2   时间限制

  有些程序的试用版每次运行都有时间限制,例如运行10分钟或20分钟就停止工作,必须重新运行该程序才能正常工作。这些程序里面自然有个定时器来统计程序运行的时间。

  这种方法使用的较少。

  3.3   Key File 保护

  Key File(注册文件)是一种利用文件来注册软件的保护方式。Key File一般是一个小文件,可以是纯文本文件,也可以是包含不可显示字符的二进制文件,其内容是一些加密过或未加密的数据,其中可能有用户名、注册码等信息。文件格式则由软件作者自己定义。试用版软件没有注册文件,当用户向作者付费注册之后,会收到作者寄来的注册文件,其中可能包含用户的个人信息。用户只要将该文件放入指定的目录,就可以让软件成为正式版。该文件一般是放在软件的安装目录中或系统目录下。软件每次启动时,从该文件中读取数据,然后利用某种算法进行处理,根据处理的结果判断是否为正确的注册文件,如果正确则以注册版模式来运行。

  这种保护方法使用也不多。

  3.4   CD-check

  即光盘保护技术。程序在启动时判断光驱中的光盘上是否存在特定的文件,如果不存在则认为用户没有正版光盘,拒绝运行。在程序运行的过程当中一般不再检查光盘的存在与否。Windows下的具体实现一般是这样的:先用GetLogicalDriveStrings()或GetLogicalDrives( )得到系统中安装的所有驱动器的列表,然后再用GetDriveType( )检查每一个驱动器,如果是光驱则用CreateFileA()或FindFirstFileA( )等函数检查特定的文件存在与否,并可能进一步地检查文件的属性、大小、内容等。

  3.5   软件狗

  软件狗是一种智能型加密工具。它是一个安装在并口、串口等接口上的硬件电路,同时有一套使用于各种语言的接口软件和工具软件。当被狗保护的软件运行时,程序向插在计算机上的软件狗发出查询命令,软件狗迅速计算查询并给出响应,正确的响应保证软件继续运行。如果没有软件狗,程序将不能运行,复杂的软硬件技术结合在一起防止软件盗版。真正有商业价值得软件一般都用软件狗来保护。

  平时常见的狗主要有“洋狗”(国外狗)和“土狗”(国产狗)。这里“洋狗”主要指美国的彩虹和以色列的HASP,“土狗”主要有金天地(现在与美国彩虹合资,叫“彩虹天地”)、深思、尖石。总的说来,“洋狗”在软件接口、加壳、反跟踪等“软”方面没有“土狗”好,但在硬件上破解难度非常大;而“土狗”在软的方面做的很好,但在硬件上不如“洋狗”,稍有单片机功力的人,都可以复制。

  3.6   软盘加密

  通过在软盘上格式化一些非标准磁道,在这些磁道上写入一些数据,如软件的解密密钥等等。这种软盘成为“钥匙盘”。软件运行时用户将软盘插入,软件读取这些磁道中的数据,判断是否合法的“钥匙盘”。

  软盘加密还有其它一些技术,如弱位加密等等。

  随着近年来软盘的没落,这种方法基本上退出了历史舞台。

  3.7   将软件与机器硬件信息结合

  用户得到(买到或从网上下载)软件后,安装时软件从用户的机器上取得该机器的一些硬件信息(如硬盘序列号、BOIS序列号等等),然后把这些信息和用户的序列号、用户名等进行计算,从而在一定程度上将软件和硬件部分绑定。用户需要把这一序列号用Email、电话或邮寄等方法寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。软件加密虽然加密强度比硬件方法较弱,但它具有非常廉价的成本、方便的使用方法等优点。非常适合做为采用光盘(CDROM)等方式发授软件的加密方案。

  此种加密算法的优点

  .    不同机器注册码不同。用户获得一个密码只能在一台机器上注册使用软件。不同于目前大多软件采用的注册方法,即只要知道注册码,可在任何机器上安装注册。

  .    不需要任何硬件或软盘

  .    可以选择控制软件运行在什么机器、运行多长时间或次数等

  .    可让软件在不注册前的功能为演示软件,只能运行一段时间或部分功能。注册后就立即变为正式软件

  .    采用特别技术,解密者很难找到产生注册号码的规律

  .    在使用注册号产生软件(注册机)时可采用使用密码、密钥盘、总次数限制等方法

  .    方便易用,价格低廉。

  这种加密还有以下特点

  1、 注册加密的软件,只能在一台机器上安装使用。把软件拷贝到其它机器上不能运行。

  2、 若用户想在另一机器上安装运行,必须把软件在这一机器上运行时的序列号,寄给软件出版商换取注册密码。当然应再交一份软件费用。

加密狗破解加密狗复制相关推荐

  1. 赛孚耐SafeNet宏狗GrandDog微狗MicroDog加密狗复制破解路径

    文章转载自:USB-Key逆向研究中心https://www.ukeycopy.com/h-col-127.html 赛孚耐SafeNet宏狗GrandDog微狗MicroDog加密狗复制破解 一.复 ...

  2. 加密狗,由USB硬件加密狗–软加密狗(软锁)–云授权的转变

    加密狗,由USB硬件加密狗–软加密狗(软锁)–云授权的转变 加密狗软授权常见问题 圣天诺LDK软授权 问:什么是软授权? 答:软授权(也称软锁)是以计算机文件作为载体的软件许可证(License) 类 ...

  3. 小米加密兔和百度莱茨狗怎么玩?莱茨狗和加密兔怎么注册

    数字货币区块链加密货币无疑是2018年最热门的新闻 了,尤其是近段时间各个巨头的加入更增加了,区块链技术的蓬勃发展,目前360区块猫,百度莱茨狗,小米加密兔,网易星球都纷纷涌入区块链技术.对于未来来说 ...

  4. 详细了解加密狗的加密原理

    <iframe marginwidth="0" marginheight="0" src="http://218.16.120.35:65001 ...

  5. android tf加密狗,【加密MicroSD (TF) sd接口加密狗key】价格_厂家 - 中国供应商

    防拷贝TF卡产品介绍 防拷贝TF卡采用高性能高速32位SD卡安全芯片,结合片内安全加密技术,防止数据文件被非法拷贝,特别适合于智能手机.平板电脑上的音视频多媒体.教育教材类等软件厂商. SD接口加密狗 ...

  6. 加密狗软加密方案离线绑定与解绑

    最近在做私有云加密部署,使用的是北京某家公司的软锁加密方案,这里记录一下软锁离线绑定.解绑方式. 平台网址:Virbox LM 开发者中心 授权码兑换网址:https://user.lm.virbox ...

  7. 软件加密保护中加密狗软加密跟硬加密的安全强度

    在软件保护技术中一般存在两种主要的保护方式:不需要额外的硬件设备,完全由软件实现的方式和使用硬件加密锁的方式.往往前者被称作"软加密"方式:而后者被称作"硬加密" ...

  8. C#使用SafeNet的开发狗和超级狗加密使用方法

    1.在安装光盘中选择Windows文件夹,单击Setup.exe执行安装程序,安装过程默认选择,单击下一步即可. 2.安装完毕后插入超级狗,在菜单栏中打开"超级狗开发商向导",选择 ...

  9. ROCKET3加密狗 外壳加密简单使用

    要解决的问题: 对软件的EXE文件进行加密狗保存 解决方案: 使用ROCKET3加密狗的外壳加密,某宝上20几块钱,物美价廉. 具体操作: 插入加密狗,使用开发工具,Envelope.exe对exe文 ...

  10. UG\NX二次开发 加密锁(加密狗)加密exe

    文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 目录 加密锁外观 开发资料 外壳加密工具V2023 加密exe程序

最新文章

  1. pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
  2. 有助于改善性能的技巧(1)
  3. python 中给文件加锁——fcntl模块
  4. 开源图形化SFTP客户端winscp入门
  5. 【每周CV论文推荐】 CV领域中数据增强相关的论文推荐
  6. ajax 跨域请求api_【.NET Core 3.0】框架之十二 || 跨域 与 Proxy
  7. java小票_Java编程打印购物小票实现代码
  8. struts2异常处理
  9. java default parameter_JAVA菜鸟入门(7) default parameter , float/double vs BigDecimal
  10. java.util.base64报错解决
  11. IOS 状态栏 显示与隐藏网络活动状态
  12. 管理计算机中应用科学教学视频,计算机科学技术在高校教学管理中的应用
  13. FILD和FSTP转换成C语言
  14. 营销单页程序php,Z-blogPHP单页网站模板|产品营销单页|单品推广
  15. Scala的虚无与飘渺
  16. Flask 框架(四)— 表单处理
  17. 【重点:线程池续】超人气组合:Callable和Future
  18. Java爬虫后台微信小程序之音乐播放器(下)
  19. uni的numberbox怎么用_模拟器最强BIOS篇,如何使用uni-bios
  20. pygame 等有缘人接盘

热门文章

  1. 第09章 网格划分自我附加练习-2:圆角结构 、圆柱结构、三角结构划分:
  2. Js逆向实战之网易云音乐(手把手视频讲解)
  3. ffmpeg转码命令
  4. 树莓派导入h5模型出错OSError: SavedModel file does not exist at: model.h5/{saved_model.pbtxt|saved_model.pb}
  5. 量子加密_量子强化加密协议
  6. 南航计算机院招聘,2018南航计算机专硕我考上啦!
  7. 微信小程序 --- 物流快递查询
  8. 管理信息系统案例分析_万华集团 IT 规划案例分析
  9. 四巧工作简化法(ECRS)
  10. k3修改wifi加密方式