1625-5 王子昂 总结《2018年2月27日》 【连续第514天总结】
A. 防范算法求逆(1)
B.
基本概念
软件保护的目的是向合法用户提供完整的功能,因此身份校验是必须的
这一环节通常采用注册码验证的方式实现
流程
- 用户向作者提供用户码U, 申请注册
- 作者计算出注册码R=f(U),返回给合法用户
- 合法用户在软件中输入U和R
- 软件验证F(U, R)来判断用户合法性
常用术语
- 用户码U:用于区别用户身份
- 注册码R:用于校验用户身份
- 注册机f():通过U生成R的过程
- 验证函数F():验证R是否由注册机和U生成
早期阶段
验证函数和注册机没有本质区别,即F=f,再次通过U生成R2,然后比较输入的R和自己生成的R2是否相同来判断
这样子的致命缺陷就是验证程序中包含了注册机,因此攻击者只需要将验证程序拷贝出来就得到了注册机,完成了破解
改进
使得验证函数是注册机的反函数,反函数的生成难度决定了破解的难度
例如简单的四则混合运算,复杂的各种编码、加密等等
常见的CTF逆向题一般属于这一类