首页
社区
课程
招聘
[讨论]我对我们的软件做的防破安全方案,大家讨论下
发表于: 2009-4-16 14:25 8314

[讨论]我对我们的软件做的防破安全方案,大家讨论下

2009-4-16 14:25
8314
设计方案:
1,对重要模块进行文件自检验
1.1)设计一个CRC32-Generator程序来对文件生成CRC-32值,在软件打完包,自动运行CRC32-Generator.exe,该文件通过脚本配置对需要自检验的模块生成CRC-32值,然后以(模块名,CRC-32)的形式发到服务器存储,最好存储在DB,具体由哪个服务器来做这个事情,可讨论,也可以由WEB服务器来做这个事情。
1.2)在我们需要做验证的模块中,随机利用CRC-32算法计算自身长度,计算完毕后向服务器请求该模块的实际长度长度,然后做校验,判断是否被修改过。
2,对重要函数使用VMP加密
上面的CRC-32的过程基本上能实现防破的需求了,但是如果cracker断到了关键的网络请求验证怎么办?尽管我们随机加了校验,但是只要足够耐心,cracker找到这些发包的函数直接nop掉,那么网络的验证也是形同虚设了。下面我们就要对网络验证的程序做加密了。由于加密的过程总是要付出代价的,比如加密过的程序运行起来占用资源比以前的多,或是加密过的程序变大了,运行不稳定,都是有可能的。所以,我们尽量要求加密过程精确到函数级别。VMProtect是目前市面上一种较强劲的商业壳,收费版咱们就不考虑了,demo版依然也很强劲,目前国内还没有通用的unpacker,不过做出来也是迟早的事情,听说看雪上有人专门在做这个事情了。它的原理是,vmp有自己的虚拟机指令集,使用vmp加密后,它会把cpu指令集翻译成自己的微指令,也就是平时我们所说的解释型语言,破解这个指令集的转换,难度是相当大的。我周末在家做了个试验,利用VMProtect 1.22.3对测试程序进行加密,加密后的程序变大了(变化规律还未总结),运行起来还算稳定,占用资源方面也比较理想。由于我写的测试程序比较简单,针对我们的软件还需要测试。我用OllyDebug跟踪了加密后的程序,我在一些敏感API上下断,如MessageBoxA,程序运行时断点无效。

=========================================================
以上是我的想法,欢迎大家拍砖,如有错误或不靠谱的地方,请指正,谢谢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
2
膜拜楼下的。
2009-4-16 14:41
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
呵呵,我不知道这样的强度能把多少比例的cracker挡在门外?
2009-4-16 15:00
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
4
服务器...被sniffer,然后DNS Faker~~
于是又被网络忽悠过验证了~
2009-4-16 15:12
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
5
“一切本地的保护都是无奈的",只是增加难度,这也是初步的措施
2009-4-16 15:24
0
雪    币: 370
活跃值: (52)
能力值: ( LV13,RANK:350 )
在线值:
发帖
回帖
粉丝
6
已经够牛逼了,是什么东西啊,看把它整成啥样了都
2009-4-16 16:06
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
7
呵呵,是一款游戏的客户端
2009-4-16 16:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这样整下去,加密的成本要高过开发的成本的。
2009-4-16 21:37
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
9
成本不是很高啊,思路也比较简单哦,对vmp的使用也是控制在个别函数的
2009-4-17 09:49
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
一次、二次的成本确实不高,但不久有人发现了加密漏洞,你又要针对性的完善。如此反复永无止境,这方面的投入就无止境了。所以现在一些公司更愿买现成的加密方案。
2009-4-17 10:48
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
11
本来这些事情都是要在客户端更新的时候要做的,行内有句话叫:客户端的更新一定要赶在外挂更新的前面
2009-4-17 14:07
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
12
很难,因为游戏更新,外挂就更新,外挂开发更接近云XX,一大票人通过QQ群,bbs聚合在一起讨论交换代码,集中火力测试...很快数款外挂就解决了加密...
2009-4-17 14:28
0
雪    币: 419
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
神鬼传奇啊 神鬼传奇啊

VMP啊 VMP啊
2009-4-17 14:33
0
雪    币: 193
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
反外挂只能从游戏本身去搞,通过NP之类的反外挂系统是根本不可能杜绝外挂的

你看人家魔域,游戏本身就鼓励PK,XP技能砍人都是秒杀。想挂机那是基本不可能的
2009-4-17 14:49
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
15
呵呵,外挂是一个广义词,每个游戏的玩法不同想防的东西也不同,我先做出来放出去,看看cracker有多快
2009-4-17 16:00
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
做楼主的偷号木马比做楼主的外挂更有收益,因此,不是任何人都感兴趣去做你的外挂。
偷号木马更有隐蔽性通用性,你在明,人家在暗,而外挂,如果是挂机外挂很可能进入代练市场,并非直接进入外挂市场,收益可能都差不多,但LZ会一直很不爽,因为很难拿到样本,那么你的游戏也就无从更新了,没了方向。
2009-4-17 16:20
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
17
跑题了撒,我就是想从防破上来说这个设计是否合理,木马不在此讨论范围之内
2009-4-18 10:11
0
雪    币: 208
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
VMP现在好象不好玩了.
2009-4-18 10:53
0
游客
登录 | 注册 方可回帖
返回
//