170529 逆向-序列号保护
来源:互联网 发布:永久域名注册网站 编辑:程序博客网 时间:2024/06/03 03:20
1625-5 王子昂 总结《2017年5月29日》 【连续第240天总结】
A.序列号保护方式
B.软件验证序列号的过程,其实就是验证用户名和序列号之间的数学映射关系。这个映射关系是由软件的设计者制定的,因此各个软件生成序列号的算法是不同的。
根据映射关系的不同,程序检查注册码通常有4种方法:
1.以用户名等信息作为自变量,通过函数F变换之后得到注册码
这种方法是最不安全的,因为验证时需要在客户端进行注册码生成,无论函数F有多么复杂,揭秘则只需把F函数的实现代码从软件中提取出来就可制造注册机。
2.通过注册码验证用户名的正确性
这种要求F是可逆变换,在客户端不进行注册码生成,而是进行用户名验证。这样生成注册码的函数F没有直接出现在客户端中,稍微安全一些。
解决方法:可通过F的逆函数(直接存在于客户端中)来找出F函数;也可给出一个用户名,穷举得到注册码;给出一个序列号,计算得到用户名
3.通过对等函数检查注册码
这种与上一种方法没有明显区别,都是函数F的推广
4.同时采用用户名和序列号作为自变量,即采用二元函数
当二元函数的值为一个特定值时则判断合法。这个算法看上去很不错,但是可能会失去用户名与序列号的一一对应关系。
攻击方法:
一种是通过跟踪输入注册码之后的判断,从而找到注册码。由于软件需要调用一些标准的API来将编辑框中输入的注册码字符拷贝到自己的缓冲区中,因此对API设断点则可以跟踪。
另一种方法就是跟踪程序启动时对注册码的判断。由于程序每次启动时都需要将注册码读出来加以判断,从而决定是否以注册码的模式工作。
C.明日计划
CrackMe(5)
阅读全文
0 0
- 170529 逆向-序列号保护
- 序列号保护
- //New -- 逆向DNF驱动保护
- 逆向序列号生成算法(一)
- 逆向序列号生成算法(二)
- 逆向序列号生成算法(三)
- pe逆向笔记之序列号破解
- 理解软件保护技术之序列号方式
- .net的保护与逆向工程
- .Net 下的保护和逆向工程
- 软件破解中常见保护的攻击:序列号方式
- 针对某游戏保护DebugPort清零的一次逆向
- 针对某游戏保护DebugPort清零的一次逆向
- 针对某游戏保护DebugPort清零的一次逆向
- 171215 逆向-.Net的保护和对抗(1)
- 171216 逆向-.Net的保护和对抗(2)
- 序列号
- 序列号
- Django 数据库回滚
- 1007: 求平均分
- Stack trace: ExitCodeException exitCode=1:
- [bzoj2561]最小生成树 最小割
- 文章标题
- 170529 逆向-序列号保护
- 同步异步,阻塞非阻塞的概念区分
- Django应用部署
- 前端开发 常用正则表达式
- Java中创建对象的5种方式
- 基于Timer和TimerTask的定时任务
- spring aop知识
- Java程序打包成可执行jar的方法
- j2ee规范-jdbc-简单封装