首页 > 其他分享 >【加密与解密】第五章①

【加密与解密】第五章①

时间:2023-01-16 22:55:06浏览次数:41  
标签:用户名 加密 函数 明码 解密 第五章 序列号 注册码

序列号保护方式

序列号保护机制

软件验证序列号,其实就是验证用户名和序列号之间的数学映射关系。

1.将用户名等信息作为自变量,通过函数F变换之后得到注册码


这是非常不安全的,因为无论F有多么复杂,只要解密者把他从软件中提取出来就可以编制一个通用的计算注册码程序了。

2.注册码验证用户名的正确性

跟上一种差不太躲,就是要求F是一个可逆变换。

不同的是这里的F未直接出现在软件代码中,比上一种要安全一点。

以上就是一些解密方法。

3.对等函数检查注册码


解密加密方法类似。
以上三种自变量都只有一个。

4.用户名注册码同为自变量

也就是采用二次函数

看上去相当不错,但由于同时少了用户名和序列号的意义关系,软件开发者可能难以写出注册机,所以必须维护用户名和序列号的唯一性,需要建一个数据库。

如何攻击序列号保护机制

重要的是利用各种工具来定位判断序列号的代码段。
一种方法是跟踪输入注册码后的判断来找到代码,另为一种是跟踪程序启动时对注册码的判断过程。

1.数据约束性秘诀

数据约束性和密码相邻性。真正的密码会在离保存用户输入密码不远的地方露出马脚。

由于不少软件作者不了解这些基本的解密只是,虽然在算法上下了很大的功夫,但最后还是采用明码比较,导致了会使用WINHEX的普通用户就能找到序列号。

2.hmemcpy函数

是一种之前用的断点(不常用)。

3.利用消息断点

当按下和释放鼠标时,将发送WM_LBUTTONDOWN和WM_LBUTTONUP消息。因此,用消息断点很容易看到按钮的事件代码。

4.用提示信息

采用了人机对话的模式,由此进入。

字符串比较形式

1.寄存器直接比较

2.函数比较a

3.函数比较b

4.串比较

制作注册机

注册机算法一般是一些极为简单的算法,基本上都是明码,或者明码相近例如查表,异或,换位,移位等。

1.对明码比较软件的攻击

只要正确的序列号在内存中曾以明码形式出现,就属于这一类。攻击还是比较容易的,利用keymake软件,它能够拦截程序指令并将出现的明码以某种方式直接显示出来。


2.非明码比较




下面代码用于计算k1=F1


下面用于计算F2=k2

如果满足k1=k2注册就成功了。编写注册机时要对函数F1和F2进行逆变换,若都不可逆就只能用穷举法了。


常见的加密指令xor/xor,add/sub,inc/dec,rol/ror一条是加密一种是解密。

标签:用户名,加密,函数,明码,解密,第五章,序列号,注册码
From: https://www.cnblogs.com/Corax0o0/p/17056512.html

相关文章

  • 【加密与解密】第四章⑤
    3.多重继承虚表多重继承是指一个类同时继承多个父类。多重继承与单重继承相比,可以有多个父类。可以看出main函数与单重继承无区别。在cderived构造函数中,首先按继承......
  • PHP简单的字符串加密与加密代码
    PHP简单的字符串加密与加密代码代码//加密算法functionencode($string='',$skey='cxphp'){$strArr=str_split(base64_encode($string));$strCount=cou......
  • jmeter 使用AES-GCM 模式 加解密 性能测试及 加解密过程 笔记
    加解密过程 步骤1:明文参数(parm1)----key1明文密钥加密(明文密钥),加密后生成密文(parm2)步骤2:-aeskey(对明文密钥key1加密,因为考虑到安全因素防止暴力破解,对明文密钥进行加......
  • 【加密与解密】第四章④
    4.整数的取模取模运算可以通过除法指令实现。一般的优化做法是将其转换成等价的位运算或者除法运算,再由除法运算进行优化。虚函数C++的三大核心机制是封装,继承,多态,而虚......
  • 玩转云端 | 天翼云数据加密,护航企业数据安全
    有交流就会产生信息,为了防止信息泄露,人们通常会采取一些特殊的措施来保护信息。很早以前,“数据加密”就出现在人类的生活中。比如:由姜子牙创造的历史上最早的密钥——阴符(兵......
  • 非对称加密算法
    非对称加密密钥是成对出现的公钥:publickey,公开给所有人,主要给别人加密使用私钥:secretkey,privatekey自己留存,必须保证其私密性特点:用公钥加密数据,只能使用与之配对......
  • 对称加密算法
    Alice-->Bob对称算法:key1=key2data--->加密(key1)--->data’--->解密(key2)--->data特性:(1) 加密key1、解密key2相同,即使用同一个密钥,效率高,易实现,适合加密大量数据,如加......
  • 凯撒加密
    凯撒加密其实就是把每个字母往后面移动3个位置,文章后面附有凯撒加解密VC6工程下载,主要代码如下:------------------------------------------------------------------------......
  • 【加密与解密】第四章③
    数据结构主要是对局部变量,全局变量,数组等的识别。1.局部变量局部变量是函数内定义的变量,存放的内存区域称之为栈区。生命周期就是从函数进入到返回释放。函数在入口......
  • 背包加密
    背包加密算法背包加密算法是第一个通用公钥加密算法。它是由RalphMerkle和MertinHellman于1978年开发的。由于它是公钥密码术,因此需要两个不同的密钥。一个是用于加......