lingge 发表于 2020-7-30 11:01

网络验证的防破与山寨问题

本帖最后由 lingge 于 2020-7-30 11:13 编辑

大家好,我想跟大家讨论一下关于网络验证的防破与山寨问题(本人萌新,请大佬轻喷)
这段时间我打算跟朋友一起写一个网络验证,对于业务逻辑什么的我们都是可以办到的,唯独对于防破我们都是不是很懂
如果我们自写的网络验证只是我们用没有代码泄露,并且注册充值改密解绑都是网页进行,软件上只有一个登录验证
软件和服务器的通讯协议是我们自定义的一种协议,加密解密封包用的RSA,重要数据采用云js进行获取,软件本身的数据不是完整的,
软件加入花指令和vmp壳的简单运用,软件登录成功后会一直和服务端进行心跳包通讯,
这样的网络验证会很好破解吗,会有山寨风险吗,还请各位大佬帮我分析分析,或者有更好的防破经验麻烦大佬讲解一二

qzhsjz 发表于 2020-7-30 16:37

本帖最后由 qzhsjz 于 2020-7-30 16:48 编辑

lingge 发表于 2020-7-30 14:53
应该不会被山寨吧,那假如我有某些功能不需要服务器数据,那是不是意味着被破解后也能用
不需要服务器数据的功能肯定都能被破解,需要服务器数据的功能也需要防止出现山寨客户端。
我最近正在构思一个这方面的CrackMe,我觉得即使是需要服务器计算的数据,也要设计成每次计算都的确需要不一样的数据的业务架构,这个需要你好好深挖一下你们的业务逻辑,有没有适合这样做的部分。不过我觉得,如果真的这样做出来,可能就不是网络验证,而是网络应用了。
我之前做过一套有类似机制的网络应用,是一个游戏辅助选择器,后端服务器上有很多辅助程序,客户端登录,访问服务器下载辅助,然后注入游戏,整个过程不在客户端缓存,每次都要重新从服务器获取。
只是那个时候我还没学会反射注入,所以最终还是会留下dll文件。
项目地址:客户端:https://github.com/luoxiandu/LXDInjector 服务端:https://github.com/luoxiandu/LXDbot
现在他们依然拿着我原来的源代码在运营,但是我已经没有在维护了。

743567274 发表于 2020-7-30 19:38

lingge 发表于 2020-7-30 14:53
应该不会被山寨吧,那假如我有某些功能不需要服务器数据,那是不是意味着被破解后也能用

是的!如果某些功能不需要的话就可能!最好还是取一下重要的数据把!哪怕一小段也行、、、目前我的思路是这样!再厉害的。。。看下面大神发言把!破解与防破解永远对立!没有绝对安全的程序。。咱们能做的就是尽量提高程序的防破解能力、、、前期先不要这样想。先把程序发布出来。之后在慢慢完善。就连腾讯的游戏,不是也杜绝不了外挂,不是嘛。。。

yuqc 发表于 2020-7-30 11:49

占个板凳, 坐等大佬

白胡子老头 发表于 2020-7-30 13:23

你这数据都在云上,人家破解你软件也没用呀。除非破解你服务器。

跌宕起伏 发表于 2020-7-30 13:30

搞个正版卡密有可能有搞头    不然就是2眼一黑

lingge 发表于 2020-7-30 14:04

跌宕起伏 发表于 2020-7-30 13:30
搞个正版卡密有可能有搞头    不然就是2眼一黑

这种不会被爆破吗

lingge 发表于 2020-7-30 14:05

白胡子老头 发表于 2020-7-30 13:23
你这数据都在云上,人家破解你软件也没用呀。除非破解你服务器。

那如果数据不在云上就会容易破解了对吧

743567274 发表于 2020-7-30 14:31

个人思路!也是小白!

743567274 发表于 2020-7-30 14:33

743567274 发表于 2020-7-30 14:31
个人思路!也是小白!

用一个账号密码来登录!账号如果是收费用户的话返回一个临时身份(密钥)!之后软件每次跟服务器通讯都要用这个临时密钥来进行!所有的数据都放服务器!软件每次需要获取这些数据就用登录时返回的密钥来进行获取!应该就可以、、、个人思路,小白!轻喷。。。

lingge 发表于 2020-7-30 14:45

743567274 发表于 2020-7-30 14:33
用一个账号密码来登录!账号如果是收费用户的话返回一个临时身份(密钥)!之后软件每次跟服务器通讯都要用 ...

我也是这么设计的,登录成功后会分配一个sessionkey,然后登录成功后会有一次服务端给客户端传递消息(目的就是传递重要数据),但是不明白他们什么一次性封包什么的封包立即失效那玩意是吹牛逼还是真有

743567274 发表于 2020-7-30 14:50

lingge 发表于 2020-7-30 14:45
我也是这么设计的,登录成功后会分配一个sessionkey,然后登录成功后会有一次服务端给客户端传递消息(目的 ...

基本上这个方法应该就可以啦!排除服务器被攻击的可能性,只有会员才能获取这个密钥,只有这个临时密钥才能获取重要数据!应该就可以了、、、软件被破也没有这个临时密钥。也获取不了数据!应该是没问题了、
页: [1] 2 3
查看完整版本: 网络验证的防破与山寨问题