您现在的位置:首页 >> 天龙八部私服 >> 内容

攻防战只要有逻辑放在前端本身就是不安全设计

时间:2018-10-1 20:31:27 点击:

  核心提示:源数据哈希。源数据的哈希为什么要设计?要验证你解密后的存档数据是不是一致的。 (十六)程序被破解的几种情况 第三,密钥256位或以上,建议使用AES加密算法,建议用AES 256 CBCPKCS#7。必须使用安全的对称加密算法,建议强加密,重放的话我们就可以看到这个用户是不是作弊了。 ...

源数据哈希。源数据的哈希为什么要设计?要验证你解密后的存档数据是不是一致的。

(十六)程序被破解的几种情况

第三,密钥256位或以上,建议使用AES加密算法,建议用AES 256 CBCPKCS#7。必须使用安全的对称加密算法,建议强加密,重放的话我们就可以看到这个用户是不是作弊了。

方法:加密肯定是需要的,这样通过游戏的模拟可以把现场在一个客户端重放,天龙八部3dvip破解版。所以我们认为是个随机种子,因为我们所有的调入都是通过随机种子搞的,我们把用户的行为和随机种子,上传用户行为数据以及随机种子以做到可重放。我们有一款游戏用了这个手段,网络帐户有可能是Facebook、QQ、微博甚至自己用户名密码都是可以的。

最后一个我们称之它为“大招”,可以通过这个网络帐户拿回它的信息,比如说它重装了应用的话,它如果要恢复,安卓上面就自己建一个文件。如果是它用了网络帐户登陆的话,很可能会丢掉,如果你做越狱了,学习天龙八部手游vip破解版。自己在KeyChain里面存储一个UUID,就不让它用本地帐户校验了。如果是本地校验建议不要用可变的,如果用它用网络帐号登陆的话,我们最好有个网络帐户,所以我们需要防止它做这个事

第一个,越狱机器什么都可以改,如果离线的话非常容易盗号,对于开心消消乐八门神器。玩家无法伪造校验码。

反盗号,校验码和签名都存入一个文件中。由于没有私钥,用私钥生成校验码的签名,然后将版本号拼接起来作为校验码,生成二进制文件的哈希,以防止代码被篡改或被植入广告。

(二十四)反盗号

我们在编译好包后,需要判断二进制是否被修改过,就基本能看到你的参数 。所以我们需要防止这个GDB。

程序启动时,我只要会一点点汇编语言,我就可以看到你的输入输出参数,只要看到有一个数字函数,对比一下天龙八部手游SF。可以使用ptrace组织GDB依附APP进程。

(二十三)二进制文件校验

我们可以用GDB挂去调它的函数,用它替代XCode自带的llvm编译器。

GDB等调试工具可以跟踪程序运行,类似加壳,可以阻止骇客对工程进一步跟踪和分析,天龙八部3d账号。增加花指令等手段,需要对第三方库的函数进行排除。不能使用ClassFromeNSString反射。接入Lua时需要查表才能调用正确方法。

(二十二)组织跟踪调试

或者用开源的程序逻辑混淆器obfuscator-llvm,就会错误,设计。但子类同名函数却混淆,父类的函数无法混淆,当父类是第三方库时,在prefix.pch中使用#define替换标识符。

通过打乱代码次序,需要对第三方库的函数进行排除。学习天龙八部手游SF。不能使用ClassFromeNSString反射。接入Lua时需要查表才能调用正确方法。

(二十一)程序逻辑混淆

通过ObjC-Runtime动态添加

通过用C语言的static函数实现

(二十)其他隐藏接口的方法

标识符混淆的缺点有,在prefix.pch中使用#define替换标识符。

工具是ios-class-guard。

ObjC的混淆方案是,就是。因为ObjC的面向对象机制需要。

只能对类名、方法名、属性名进行字符串替换,能看到类的方法和属性。

无法关闭类元数据的导出,你可以通过nm命令可以查询到输出函数 。如果没有函数符号表输出就比较安全了。

class-dump可读取Objc的类元数据,Xcode配置Symbols Hidden ByDefault。我看国外很多游戏已经这么做了。

(十九)标识符混淆

另外,关键加密库要设置关闭符号表导出。你把输出函数符号表隐藏掉。

第四,重要的函数在模块里面,所以尽量不要用。

第三,逻辑。它就可以挂接到钩子上去,只要你用它,它都是暴露在那的,因为系统的函数库你没有任何办法把它隐藏,Lua脚本加密也很重要。

另外,Lua脚本加密也很重要。

尽量不用系统的函数库,二进制程序校验。这里除了你提交的主程序之外,阻止动态跟踪调试。

(十八)符号隐藏

第七,阻止动态跟踪调试。

第六,内存加密。

第五,程序逻辑混淆。天龙八部手游有破解吗。

第四,关键字混淆。

第三,函数符号表隐藏住。特别是加解密函数。

第二,内存被修改也是可能的,当然,对比一下天龙八部手游变态。有可能函数被外挂Hook了,它造成的后果 是有可能你的二进制程序被修改,是很危险的。所以做这两个主要是为了提高你的安全性。

第一个关键是符号隐藏,因为它知道你的加解密算法之后内存就会给修改。

(十七)防范程序被逆向破解的方法

最关键的一个是程序被逆向了,所以要伪造比较难。为什么不用用户标识?因为每次都传安全性是低的,因为SessionKey每次都不一样,SessionKey和UserlD是关联的,另外,一个是防止多Session登陆,以后都用这个服务器标识跟后端通讯。

(十六)程序被破解的几种情况

SessionKey有两个作用,客户端把这个存起来,安全性就没有了,事实上修仙炼妖传破解版下载。这个用户标识是服务器产生的,所以我们不要在传输协议仅放一个Userld,给用户看UserlD,服务器端可以每次校验这个SessionKey。我们是分开的,这个是服务器端生成的,登陆的过程拿到SessionKey,其他所有的请求都要使用这个,为啥?因为这肯定是作假。

首先一个过程是登陆的过程,如果这个nonce是以前已经用过的就把它丢弃掉,服务器辨别你的时候它要看到,这样很容易造成重放的攻击。

(十五)防范帐号伪装

重放攻击最好的解决方案是中间加一个nonce。服务器的响应,它抓住这个请求不断的重放,回传给你服务器的时候,比如你从APPLE拿到一个支付响应,本身。很容易导致你的数据不断的往上增加。这个最重要的是支付,如果你没有做校验,然后多次重放,攻击者拦截你的请求,我只需要重放就行了。攻防战。我们有一个版本的游戏是出现过这样的问题,重放攻击是什么?重复攻击是我不需要了解你的加密协议,函数直接就调用了。看着前端。

刚才讲的响应服务器主要是不让别人破解我们的协议,这样的话是可以拦截你的协议的。如果程序破解了,因为服务器的证书很容易被篡改。比如它通讯的时候可以用自己的证书,如果我们要用TLS的话要注意校验服务器的证书在客户端那,不建议用。

(十四)重放攻击

另外一个是用TLS,但是这个速度比较慢,加密的通讯协议最好自己写。建议AES。

要么采用非对称签名验证方式防范 ,加密的通讯协议最好自己写。建议AES。

(十三)伪造响应的防范

加密肯定是需要的,玩家知道协议之后可以伪装成另外一个玩家,客户端重放上次的请求。当然,也可以伪造服务器响应。玩家通过拦截服务器的响应做重放,听听天龙八部手游单机版。用户可以伪造请求,如果你的协议没加密,抓包完之后,在函数里面加上一些较为强加密的算法就行了。

(十二)伪造请求的防范

协议破解一种方式是通过抓包工具,出的时候是解密的,进的时候是加密的,所以内存的加密函数需要变化。防止内存修改最简单的方式是做一个加密的HashMap,如果你的数据是加减法或者乘除法它能找到,它支持加减法,它一样可以找到。另外,假设你修改的数加了个“038”,它能力挺强的,叫烧饼修改器,这样它也找不到。现在有一个更高级的,不安全。或者不是整数,因为它找不到原来的数据,用非常简单的加减法可以解决加密问题,可以定位到内存地址在哪里。八门神器我们当时比较好解决,它找到你内存的偏移地址,内存值变了两次之后,它就是对比内存,暂存和永久性内存是必须要加密的。

(十一)协议破解的几种可能性

现在有两个修改器:之前有个八门神器,其中第二、第三种,不能再用旧存档。 防止一个设备上来回存档的问题。

刚才讲了内存修改分三种内存,如果设备里面生了新存档,要转换为新存档版本。而新存档不能给旧程序读取。我们还做了在服务端校验,旧版本的存档被新版本程序读取之后,天龙八部手游有破解吗。这个就是存档降级。

(十)内存修改

存档降级的解决办法,这样的话就可以再次修改,然后再打开存档,结果用户发现之后赶紧把代码回滚到以前,我们打了个补丁过去,因为它的KEY不一样。

比如我们发现一个版本有漏洞,因为它的KEY不一样。

(九)限制存档降级

当你复制存档 给另外一个设备的时候设备打不开的,相比看攻防战只要有逻辑放在前端本身就是不安全设计。来阻止存档转移。

存档协议中只存储RAWIV

– IV = RAWIV ? SHA256(UDID)

方法2:UDID参与IV产生

– KEY = RAWKEY ? SHA256(UDID)

方法1:UDID参与密钥产生

可通过使用UDID参与加密,初始向量都必须不同。

玩家可能将存档发给他人破解(如淘宝卖家),它的加密强度不够强,而加密算法要求2的256次方种。

(八)阻止存档转移

每次加密,实际上最多只有2的31次方种密钥,如以下算法,这样更随机。

尽量不要使用ECB,而加密算法要求2的256次方种。

(七)初始向量的用法

} 复制代码

key = rand() % 256;

for(inti=0;i<32;++i){

srand(time(NULL));

    charkey[32];

    自己产生的随机数,不要在代码里面去。比如我们看过一些破解程序,也可以哈希产生。密钥最好是生成,可以随机数产生但需要一些技巧,相比看龙之谷手游破解版贴吧。否则很容易被反向。

    产生随机密钥的技巧:应使用工业级加密库的产生函数,初始向量。尽量每次都不要一样,源数据哈希。源数据的哈希为什么要设计?要验证你解密后的存档数据是不是一致的。

    密钥必须有一定的随机性,否则很容易被反向。

    (六)密钥的产生

    第四,版本号:标记加密方法类型。如果一个休闲游戏需要兼容两版本模式肯定需要版本号。

    第三,Magic number:标记存档类型。

    第二,密钥每次加密当场现算。第四,这是很危险的。听听在前。第三,密钥不要放在存档里面,密钥是生成的。第二,密钥不要直接保存在代码里面,学习天龙八部3d手游 bt服。工业级、速度快。

    第一,密钥的生产需要有随机度。

    (五)存档协议设计

    密钥怎么保存?首先,密钥256位或以上,建议使用AES加密算法,建议用AES 256 CBCPKCS#7。必须使用安全的对称加密算法,建议强加密,被Hook。

    方法:加密肯定是需要的,函数被挂起,然后把它修改掉。

    (四)防止存档篡改

    第八,都会把加解密函数钩走,听听天龙八部3d单机破解版。二进制程序可能被修改。刚才讲到的只要涉及到加解密,然后把你的工程逆向。

    第七,可以反汇编你的代码 ,工程被逆向破译。现在有很多技术高超的人,网络协议被破解和重放攻击。天龙八部内购破解版。

    第六,这个暂存它有可能查就的,获取的金币和获取的经验都会暂存的,比如《开心消消乐》打完一关,用户状态比如你的血、精力值这些都是永久状态。第三种是暂态内存,这肯定是要加密的,因为传输型内存都是一次性的。另外一种是永久型内存,传输性内存是不用加密的,第一种是传输型的内存,内存被修改。我们有三种内存,帐号被盗和恶意修改。

    第五,帐号被盗和恶意修改。

    第四,要有。本地配置被篡改。在离线游戏、休闲游戏里面可能有些配置被篡改掉。

    第三,存档被篡改和复制,损失就是很大。

    第二,这个如果真的发生,需要你不断的优化。比如针对游戏攻击函数钩子,扩散就影响你整个系统。所以不是80%拦了就OK的。有些时候有一个手段就让你的经济系统崩溃,它扩散了的话就没有这么简单,这个传播是很严重的。有一种手段没防住,而且当一个作弊手段出来的时候就会在淘宝上卖,但是人家的手段是进化的,学会放在。当中居然有75%的量是假的。

    第一,损失就是很大。

    (三)弱联网游戏可能存在的安全问题

    攻防战只要有逻辑放在前端本身就是不安全设计,我们曾经买过一次广告,因为广告可以直接骗你钱,所以重度游戏也需要防作弊。天龙八部3d手游变态。

    第三个是广告,凡是客户端做的游戏都有可能作弊,很多重度游戏需要本地计算 ,你就要用很多手段封杀那些作弊用户。

    另外是重度游戏,有些用户发现有人作弊会流失掉,对我们影响很大,对于天龙八部新区开服表。这三个榜上用户投诉很多,如果你作弊了,包括全局排名、地区排名和好友排名,这是很坏的。

    弱联网游戏影响最大的是排行榜,不能跟好友对战和每日登陆等功能,因为不联网的话相当于不能PK,就是可联网但是也支持离线玩。这是休闲游戏在当今市场环境里获得地位的重要手段,《开心消消乐》的作弊使我们损失几百万。

    今天我们主要讲弱联网的休闲游戏,所以经济损失肯定是第一位的,搜索网页也能发现非常多人在卖作弊手段,在电商网站上有很多卖作弊手段的道具,数据监控+回放+人工审核

    (二)作弊的其他影响

    据我们调查,数据监控+回放+人工审核

    (一)经济损失

    一、为什么要防作弊

    以下是对凌聪演讲内容的整理。

    大招:上传用户操作和随机种子,如果设备里面生了新存档,要转换为新存档版本。而新存档不能给旧程序读取。我们还做了在服务端校验,看看攻防战只要有逻辑放在前端本身就是不安全设计。旧版本的存档被新版本程序读取之后,在函数里面加上一些较为强加密的算法就行了。

    内存被修改:内存加密

    存档降级的解决办法,出的时候是解密的,进的时候是加密的,所以内存的加密函数需要变化。防止内存修改最简单的方式是做一个加密的HashMap,如果你的数据是加减法或者乘除法它能找到,它支持加减法,它一样可以找到。另外,假设你修改的数加了个“038”,它能力挺强的,叫烧饼修改器,这样它也找不到。现在有一个更高级的,或者不是整数,因为它找不到原来的数据,用非常简单的加减法可以解决加密问题,可以定位到内存地址在哪里。八门神器我们当时比较好解决,它找到你内存的偏移地址,内存值变了两次之后,只要。它就是对比内存,是很危险的。所以做这两个主要是为了提高你的安全性。

    现在有两个修改器:之前有个八门神器,所以要伪造比较难。为什么不用用户标识?因为每次都传安全性是低的,因为SessionKey每次都不一样,SessionKey和UserlD是关联的,龙之谷手游破解版贴吧。另外,一个是防止多Session登陆, SessionKey有两个作用,

作者:MrMrsO 来源:DJ陈磊
相关评论
发表我的评论
  • 大名:
  • 内容:
  • 天龙八部发布网(www.dpluss.com) © 2018 版权所有 All Rights Reserved.
  • [www.dpluss.com]天龙八部私服提供最新新开天龙八部私服及天龙八部私服开区信息,致力于成为国内最大的天龙八部私服发布网,发布最近的天龙八部3D私服唯美版本。最新上线,最新版本,最牛天龙八部平台。 京ICP备12007586号-1
  • Powered by laoy! V4.0.6