| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13954 人关注过本帖
标题:软件防破解的一种思路(暗桩的一种)
只看楼主 加入收藏
a1336983871
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2018-5-9
收藏
得分:0 
(1)    明白一件事,破解者能做什么?不能做什么?

我的理解:破解者能编辑修改可执行文件的极少部分内容,如去除一段判断条件,修改一个控制符、将变量变为常量。

他们不能做什么?他们并不能在exe中添加复杂的业务逻辑。

有了这个思路就好办了。我把部分逻辑放到服务器上。这样不就行了。

 

(2)你的程序一定不要搞完全的单机版本。一定要和服务器做某做耦合。

(3)客户端与服务器通信HTTP协议一定不要用明文,要进行加密后进行传输。要弄得神仙都认不得。否则Fiddler得容易被侦测到。(我自己的方式是:对base64加密,然后再执行自己写一个二次加密算法,进行错综移位。且根据随机状态位的不同,移位方式不一样。一共设置100套移位方法)。

(4)一定要对客端端环境建立监控,且软件在运行过程中最好也做检测。而不是打开软件或登录时检测一次。(记录好客户IP、地市、MAC地址、碰盘ID、CPU、操作系统类型与版本、软件安装目录、是否为虚拟机等等。还有很多可以收录:如碰盘分区模式、磁盘大小)。

没有这些信息,即使用破解者你也是瞎子,都不知道你的软件已经被破发。

而有了这些信息,软件被破你可以在第一时间知道。可以进一步在服务器进行拉黑处理。

 

(5)关键行为网关。之里之所以称为“网关”,寓意对界面操作行为的控件(另一方面可能也因自己在电信行业工作几年,长时间接触电信协议有关)。不要让上一步操作直传到下一步操作。而是通过服务器绕一下,并在服务器做一下转换。如在发送方数据装为A, 在服务器转换为B格式,而“下一步”操作直接处理B格式。

这就像七巧板一样,软件被破了,可发现脱离了服务器犹如七巧板少了一块,无论怎么破都没办法的。

 

(6)事件请求与事件处理必须分隔在线程或进程中执行。不要直接(特别是用C#、.net的程序员要注意:可能习惯了双击UI, 编程软件自动创建一个处理函数)。  ===》必须做到UI与处理分离,请求与响应分离。

 

 

(7)做好版本协商,且软件开启的第一时间做版本协商。

 

(8)自定义协议方面,大家有兴趣可以参考《中国电信业务网络设备技术规范-移动增值业务信令监测系统接口规范(V0.5.0)》,百度上搜索可下载。

 
具体参考: 参考: https://user.qzone.

 
2018-05-09 02:53
快速回复:软件防破解的一种思路(暗桩的一种)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033528 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved