首页
社区
课程
招聘
[讨论]关键代码,关键数据放在云服务器来防止调试
发表于: 2015-8-15 11:14 14471

[讨论]关键代码,关键数据放在云服务器来防止调试

2015-8-15 11:14
14471
大家好,我提一个防破解、防调试的新思路。
如果把程序的关键代码,关键数据放到云服务器上,那么从破解者角度来说,无从接触这部分内容。破解的路径中断了,dump的方法不管用了。

设计思路是:
1、程序运行需要的关键代码放在云服务器上,本地不下载。云代码获得运算指令后,在云服务器上进行运算。云服务器下发运算结果,本地只获取运算结果,将运算结果参与后续运行。
2、关键数据放到云服务器,本地不能直接读取这部分数据,由云代码读取并计算。

本帖防破解的目标是:防止获得完整代码,防止单机获得完整功能运行。

你们觉得可行吗,现在有没有这样的例子出现呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (48)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
道高一尺,魔高一丈,看似强悍,如果逻辑上有问题,再NB的方法也拯救不了
2015-8-15 11:20
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这位仁兄,哲学少讲点。
假如你来破解的话,有没有可以下手的地方?
说说你的思路,讨论帖,不是牢骚贴。
2015-8-15 11:22
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
只要把本地的破解了,模拟向云发送指令,云计算完获取到正确结果,不还是一样被破解吗?
那和破解账号密码的思路有何区别,密码什么的不都是在服务器进行一些运算的吗?
2015-8-15 11:25
0
雪    币: 96
活跃值: (36)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
网络游戏也是这样的啊,外挂还不是一大堆
2015-8-15 11:27
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这就是市面上一些验证的常用思路
2015-8-15 11:27
0
雪    币: 150
活跃值: (36)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
看起来思路很不错,为什么老想把数据放在服务器上就安全呢?
2015-8-15 11:33
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
当然,我可能没说清楚,我再解释一下。
1、照你这么说,根本就不需要破解了,帐号密码扩散就可以了,这就不在本帖讨论的范围。如同windows密钥,一抓一大把。
本帖不讨论这么简单的事情,本地帐号密码保护方法不在讨论之列。

本帖防破解的目标是:防止获得完整代码,防止单机获得完整功能运行。(已添加到楼主贴)

2、至于你说的模拟指令,可能的存在这样的人,但是仍然刚性依赖云代码,本地并不能获得完整功能。这涉及到如何识别模拟指令,如何识别客户端的身份,是另外讨论的内容了。如果要详细讨论,范围太广了。
2015-8-15 11:40
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这与简单验证还不同:
1、我这里说的是,关键代码放在云服务器,本地没有这部分代码。
2、你说的简单验证具有这样的特征:本地有完整功能。通过nop或者jmp就能跳过简单验证,从而获得完整功能。
2015-8-15 11:47
0
雪    币: 135
活跃值: (106)
能力值: ( LV2,RANK:140 )
在线值:
发帖
回帖
粉丝
10
就好像游戏会弄一个服务端, 很多重要逻辑都是在服务端运算. 一样的道理.  关键是, 你不可能把所有的东西都搬到服务端去.  看你能搬多少过去了.
2015-8-15 11:50
0
雪    币: 238
活跃值: (197)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
如果做得跟脱机挂一样呢。。。
2015-8-15 11:51
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
嗯嗯,与你说的有些相似。
当然为了减轻服务端的负担,绝大部分的运算要放在本地,只把关键的代码放到服务器。

例如:某些游戏本地刷枪、刷币是无效的。云数据里没有修改,虽然本地有枪、有钱,但是杀不死人,买不了装备。
2015-8-15 12:06
0
雪    币: 13
活跃值: (26)
能力值: (RANK:10 )
在线值:
发帖
回帖
粉丝
13
其实这个都是很难防止暴力破解的。。。大牛会把你的任何步骤都逆出来,除非,你本地只是类似一个播放器而已
2015-8-15 12:49
0
雪    币: 357
活跃值: (3438)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
14
游戏服务器挂了,除非你能做一个模拟服务器,不然游戏客户端等于废了

关键是模拟服务器
2015-8-15 12:50
0
雪    币: 2513
活跃值: (575)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
15
模拟服务端返回给客户端正确的数据就行了
2015-8-15 13:28
0
雪    币: 296
活跃值: (26)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
(=_=)前提条件得建立在第一运行机器是联网的第二服务器部署的安全要达标,不过第二点不靠谱
2015-8-15 13:47
0
雪    币: 248
活跃值: (3789)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
这不是废话吗?何为云计算?
云计算本来就不是在本地计算,这玩意很早就出来了
某P保护,某游戏检测,某xx,暗桩...还有一大堆流氓软件,不都是这样做的吗?
跟肉鸡还有什么区别?都是流氓...
2015-8-15 14:07
0
雪    币: 144
活跃值: (335)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
。。。现在很多验证都这样啊,云端自定义算法,或者保留核心数据
2015-8-15 14:26
0
雪    币: 47
活跃值: (68)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
19
现在常见的网络验证都有这样的功能了,保存关键数据,验证、下载回来只存放在内存中。
15L的模拟一般不行,数据加密每个用户都不一样的key,加时间参数什么的就更不好搞了。
破解需要patch需要用到的数据,关键段通常都加上vmp,分析起来比较麻烦。
思路不错,可以试试
2015-8-15 16:25
0
雪    币: 346
活跃值: (129)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
20
这个思路很多人都想过 但中间的细节看你怎么处理!
2015-8-16 01:04
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
你这不新奇,你知道 SE 这个壳吗? 他就是这样做的 。。。。。。,而这种都是很久用一次的,
如果你开发的程序是一个高使用率的东东,那除非你的东西做的前无古人,后很难来者,不然你等着给你自己用吧

这也是从破解的角度来说的 。。。。。。。。。。。
2015-8-16 01:51
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
我也看了SE壳,他的方法是高强度+网络验证。这与我上面说的简单验证是一样的:本地具有完整功能。
而我说的方法就是要打破这种模式,将关键功能代码放到云服务器上,本地只有部分功能,离开了服务器,本地无法获得主要功能。甚至不加壳都可以。
2015-8-16 09:38
0
雪    币: 110
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
它功能就在云端,还有一大堆软件从云端执行的
2015-8-16 14:50
0
雪    币: 43
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
这样做跟楼上几位说法差不多:
有几个解法,都是比较苦逼的:
1:想办法寻找帐号验证逻辑漏洞
2:如果关键代码不够复杂,那么可以尝试推出这段关键代码。
3:最苦逼的方法,弄一个正确的帐号,暴力把所有的运算结果都弄出来,放到本地后直接替换服务器的验证
4:暂时没想到。
2015-8-17 00:23
0
雪    币: 10
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
应该没那么简单。 如果服务器和本地不同步,服务器主动断线什么的怎么办?
2015-8-17 01:08
0
游客
登录 | 注册 方可回帖
返回
//