如果你正在或者马上要奔向脚本出售的路上!那么这篇文章的内容,你值得看看,可以从某个程度上知道如何防止常规破解的问题。
首先,没有不能被破解的脚本或者软件,只是破解的成本有多大,所以我们不要做过多无谓的争执。经过了以前几年TC防破解的经验,和近来帮几个百宝云用户做防破解架构,介绍一些实战经验:
市面上的验证分三类:
1.免费或者付费的外部验证
2.工具官方的验证
3.自己做的验证
破解者一般破了你的脚本也是为了出售,那么他首先是先要废掉你的验证,然后还得担心你使用大漠黑白名单功能随时让脚本废掉。所以还得把你的大漠账号,答题账号等等都换成自己的,然后做个注入接入自己的验证。那么一切就变成他的了,那么使用上面三类验证,我们该怎么对付了?
一般开发者刚开始遇到被破解的情况的时候,自己会在代码里面挖各种坑,或者种很多雷。然后放出去几分钟破解版就出来了,仿佛自己辛苦挖了几天的坑完全没有作用,其实这个是因为自己没找到关键点,我们来慢慢分析下。
一、目前脚本作者应该60%以上使用外部的免费或者付费的外部验证,这类验证接口对外是公开的,数据传输模式是固定的。破解者一般会自己先使用用这样的接口找到入口和数据传输方式,分析完毕他已经成功了一大半。然后各种OD,CE抓你脚本接口调用的地方,轻松各种手法直接让验证无效,或者永远返回一个成功值,这种情况最无力。除非你是大客户端,找验证提供商给你一个独特版,可以缓解这个问题,不然本地再如何VM,加壳都是徒劳无功,这个漏洞就在于,接口+数据传输模式+加解密方式,都是公开的,所以一破百破。同一个验证系统提供商被破一次,那么其他人都危险,重点是你被破了,还什么都做不了只能干等。
二、工具官方的验证(目前只有TC和按键官方的验证),相对来说使用开发工具的官方验证是比较轻快靠谱的,不用自己关心太多事情,整个验证接口和过程都内置了,一般不会暴露在外,内部也会做各种VM处理。当然主要是成本高,官方的验证一般价格不菲,一般来说官方的验证破解的难度比较大,但是如果被破了,还可以找官方处理,如果想简单快捷,不在意成本的话使用官方验证比较靠谱。
三、自己做验证的人现在很多,因为可以自己控制成本而且可以自定义一些特别功能。如果你是使用的一个公开的一些论坛或者QQ空间做,那么你一定是想的你的脚本是没人会破的。因为这样的验证随便抓个人都能轻松做掉。很多E用户用E语言自己写服务器的,如果你可以把服务器搞的各种稳定也OK。下面我主要介绍用百宝云自己做验证如何处理防破解,我打开一个思路,做一个简单的模型:
我们先开发3个接口:
1.验证接口
2.取数据接口
3.脚本执行数据依赖
验证接口是用来验证注册或者验证用户登录的。通过了才能使用脚本,破解的人一般都是首先攻击这里,一般两个方式跳过或者把返回值改成一个成功值。这里我们先处理直接改值的情况,不要在验证接口只返回一个简单的值,比如返回一个整形值,表示成功或者失败,尽量返回一个处理后的数据,需要一个算法才能解开结果。然后结果是存到多个变量里面,多个变量同时验证通过才算通过,加大难度,可以VM的,这段代码是一定得VM。
一般验证OK以后,就会开启一个线程进行循环验证。那么如果你脚本这个时候只开启了这一个线程的话会比较危险,破解者会把这个线程强关掉,但是你如果脚本同时开了N个线程,如果有些线程关了,脚本后面运行会异常,那么没事,他也猜不到应该强X哪个线程。所以这里自己发挥,我建议开一个线程,然后偶尔在系统的消息机制里面偶尔!偶尔!偶尔!的验证一下,如果他猜对了把线程干掉了,那么系统的消息机制是干不掉的,不要在系统的消息一直验证,会卡UI。
取数据接口这个很重要,一定得验证通过后取一些数据,脚本执行依赖的数据,很多人也这样做了,但是为啥还是被破了?很多人都把这里的数据返回做成了静态加密,就是同样的内容每次都是返回的一样的加密内容,这样很不好,破解者可以抓一次正确的数据然后每次都塞给脚本就可以了。这个地方是这个思路防破解的关键,这里重点说下思路:
我们把脚本里面的一些数据提取出来,比如大漠账号,比如字库的密码,比如找的字,比如要找的颜色值,或者地址地址等等。单个加密,然后我们把这些加密数据组成一个的格式(比如一个字符串)存到服务器,然后登录验证通过后,我们把这段数据用一个随机key再加密一次,验证登录成功了先把这个key返回给客户端,方便客户端后面拿数据。这样客户端取数据接口就算取同样的数据每次返回的内容都是不一样,然后会依赖验证登录成功获取的key才能解密,然后我们取数据接口取到数据后,记得存到具体的变量中去,记得这里单个数据也是加密的。那么在脚本执行到某个时间,得把这个加密数据发到服务器去解密来获取真实的值。那么如果服务器前面没有真实登录过或者取数据不是服务器传下来的数据是无法帮你解密的,这样的地方不能搞太多,不然脚本会很卡,挖合适坑就可以了,最好是那种不起眼的小坑,一个变量错误也会影响整个软件。
最后就是发现可疑行为的各种反应动作,或是脚本执行不正常,或者其他恶劣的行为自己发挥,主要目的都是让对方对破解你失去兴趣。
以上只是一个分享的思路而已,实战还得各种变种。因为任何防破的思路一定都是有漏洞的,重点是破解你的人是否可以猜到。建议对大家有真正的作用,不喜勿喷,被破和防破是一个永久的话题,百宝云只是让你更能自己控制脚本的安全而已。