- 积分
- 15512
- 明经币
- 个
- 注册时间
- 2008-11-24
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
现在担心Lisp安全性的人越来越多,猫老师现就已知的破解与加密方法做个小结,并与各位探讨一下。
自从VLX Fas可还原+内存破解+函数重定义等技术浮出水面,我们就开始研究新的加密。
经过近半年的努力,已知使用一些特殊方法基本上可以达到增加破解难度的目的,但是破解方法依然很多。
普通一个程序可以进行怎样的加密?要从破解方法讲起。
破解方案一:
直接做个fas (可破解,还原源码)
直接做个vlx(可破解,解开为fas,再还原源码)
直接做个vlx独立命名空间的(可破解,解开为fas,独立命名空间失效,再还原源码)
反破解:
代码混淆,思路详见
http://bbs.mjtd.com/thread-101087-1-1.html
初级测试工具见
http://nonsmall.mjtd.com/myweb/default.aspx
结论:
优点:可以在相当程度上防止源码泄露,解开的源码几乎无法解读。
缺点:越复杂的加密程序运行效率越低。
-----------------------------------------------------------------------------------------
破解方案二:
通过函数重定义查看用户使用的验证函数,通过修改函数,改变函数判断流程,达到绕过验证的目的
详见http://bbs.mjtd.com/thread-74348-1-1.html
凡是使用大于等于小于来判断注册码,验证时间的,使用此方法可破。就算代码混淆,也会被破解。
反破解:
多多利用多参数函数扰乱,毕竟重定义的函数无法实现多参数。
结论:
优点:可以在相当程度上防止重定义,
缺点:明文的内容仍能够被内存捕获。
------------------------------------------------------------------------------------------
破解方案三:
内存破解,此方法找到关键字,在反破解方案2中如果写出正确的注册码,依然可以被捕获。
反破解:
对于这种情况就要把注册码变量和相同值的数据在程序里面到处乱写,写的越多越好,验证的位置越多越好,
不仅仅是一次通过执行所有程序,而是每个函数中都加上验证程序。
结论:
优点:相当程度防止内存破解
缺点:程序可读性变差,程序更加臃肿。
------------------------------------------------------------------------------------------
其他可以参考的加密方法:
1、基于网络的验证,包括网络时间、数据库、网络计算等。
此方法最大的优点是数据不完全在用户手里,就算你破解了所有的程序,数据依然在服务器上。
部分代码也放到服务器上,将更安全一些。
现在也在积极探讨关于通过QQ验证的问题,都是相同的道理。
缺点就是用户无网络无效,网速慢用户体验度差。
2、加密狗验证。
说白了这种加密狗验证作用不大,但能给不懂程序的用户一种这程序挺好的感觉。
缺点
一是复制狗比较容易,
二是此方法最终通过lisp判断,若通过方案2则直接绕过验证。
3、单机信息的提取
主板序号 硬盘序号 网卡地址 显卡等等这些也是越多越好,但cpu就不用了,序号经常相同而且读取效率太低。
4、注册表、注册文件
要把密码文件写在几个不同的地方。
除了注册表、隐藏的文件、还有就是用户的移动设备。
算是能增加破解难度的小办法,但是也容易被破解发现。
5、垃圾代码
其实就是为了迷惑破解者的无效代码,同样的函数写多个。
例如一套代码,复制代码出来修改所有的函数名,解出来的代码大多相似,只能慢慢调试找到正确的文件。
再把以前写的,网上找的扔几百个函数进去,5K变成500K,把一滴水隐藏在大海里会更安全。
6、程序的拆分
根据上述思路,一个程序把能定义为函数的代码都定义出来,函数越多越安全。
==========================================
总之,验证的部分多写、代码多写、加密的时候多想办法才能更加有效的保护自己。
我对Lisp代码的保护非常有信心,不敢说无法还原,但是还原代价可以让破解者无法承担。
世界上没有不透风的墙,何况我们这门小语言,只有不断增加破解难度,让破解的代价高于购买的代价,就达到了我们的目的。
不过加密的代价是降低了编程的可读性,降低了执行效率。鱼和熊掌如何平衡,就看各位见仁见智了。
群名称是lisp加密,反破解联盟
QQ群群号是 10476930 加群注明明经通道
|
评分
-
查看全部评分
|