共享软件如何防盗
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
假设您的注册部分有300行,您能够分成30个inline函数调用(一定要inline),func1(),func2()... func30(). 将他们随意放到程式的各个部分,一定不能放在一起(自己能找到就行了)。不要用Memcpy等常用系统调用拷贝注册码,近可能自己写,像Memcpy很好写,性能差点无所谓。经过编译后inline函数展开,注册部分和其他代码混在一起,他要写出注册机就像大海里捞针,在几十万甚至上百万汇编代码里找出有用的注册部分。另外注册码也不要放在一起,假设您的注册码是12位,千万不要用一个12位的数组放注册码,您能够在程式的不同位置定义12个全局字符变量,每个放一位,这样注册码在内存就不连续了。最好再加密处理一下(简单的字符异或就能够),验证时再解密。
非技术方法在中国几乎没有用,这么多有钱有实力的公司的软件都被盗版,您个人还能有什么办法。
忘了说了,只要破解者很难找到您验证结束的地方,暴力和Loader破解也没有可能。
很重要的一点是不要用连续内存保存验证用到的变量,尽量将用到的验证临时变量分散定义在程式的不同处,再在验证中,不断转移一些值到其他变量中,对付暴力和Loader会比较有效。
没有必要用复杂的加密算法,更容易成为追踪的目标。只要您将注册部分隐藏的足够好,也没有漏洞,您花1天写的加密算法,破解者可能会花100-1000倍的时间破解。大部分人都会放弃。
您将注册做在一起,就像将您的财宝放在现代保险箱里,虽然很坚固难以解密,对于开锁高手两分钟就打开了。
而古代海盗用的方法是将财宝埋在海岛上,这样没有藏宝图,对应高手和低手都只有一条路,拿一把铁撬挖,可能要挖一生。程式有那么多代码,您将注册部分藏在里面,藏的好就如同将财宝埋在海岛里。那些所谓的Crackme只是给高手玩儿的现代保险箱而已,用原始的方法能够达到同样效果。
这是农民的方法,我也不会汇编,高深的反破解都不会。
程式一出来就被0day破解了,而且被暴力破解了两次,为了对付0day, 只好想了这么一个农民的方法,结果发现简单的东西比复杂的更有用,古老的方法似乎比现代的更有效。
对于一些比较专业的破解者
采用上面的方法也是很有效的
但是,还是要避免一些低级失误
例如:
不要在内存中直接出现注册码和明显的注册码比较部分
不要给用户太多的有关注册验证的信息
不要接收到注册码后立即就进行比较,在软件的不同功能
处实现验证时的好处更有就是不会立即执行到验证代码
注册码能够分多次验证能够分成几部分验证能够分成几层验证
验证时,能够尽量多执行一些无用的操作,加上一些象递归之
类难于调试追踪的代码,但在其中要穿插实现软件功能的代码
否则人家直接就跳了过去…………
反正就是越不引人注意越好:)越乱越好
……………………
这些在一般的破解教程里也都会有的
//假如能找到几个不常见的加壳软件最好!:)
只要能避免这样的低级错误,
再加上上面的那些不太难实现的方法
能够应付一般水平的破解了//因为大家都怕麻烦:)
只要这些措施得当,一般的破解者都会知难而退:)
但是假如您的软件太好了………………
您还是找一个专业人士和您一起写吧,很麻烦的:)
btw:我只是以前对破解有些兴趣,所以找过些资料
懂的其实不多
而且没做过破解的事,不要误会我的人格哦:)嘿嘿
(出处:viphot)
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



