本文由  网易云发布。

iOS应用面临很多破解问题,常见的有IAP内购破解、山寨版本、破解版本等;大众应用上,微信抢红包、微信多开等;而在iOS游戏上,越来越泛滥的外挂问题也不断困扰着游戏厂商。

网易云易盾资深安全开发工程师王桂林

3月17日,Cocoa社区CVP系列开发者沙龙在北京举办,网易云易盾资深安全开发工程师王桂林出席沙龙,并做《iOS游戏的破解以及防护》的演讲,分享了究竟该如何做好App的安全防护工作。

攻防,首先得知道他们是怎么破的

要想防护的好,必须要知道对手是怎么破解的,王桂林首先分享了两个破解分析实例。

游戏加速分析过程

第一个实例就是加速器,“加速器原理都差不多,只是实现方式不一样。”王桂林说,它们的原理都是通过修改时间相关函数实现加减速功能,实现方式上主要是两大类,一类是U3D,另外一类是COCOS。如何做的呢?“通过有无UnityAppController来判断是否为Unity游戏。如果为Unity游戏的话,就会用Hook OC的方法;如果不是Unity游戏,就会采用常规的Hook Gettimeofday方式修改游戏。”

修改参数

破解效果

只要是手游,基本都被外挂侵害,《旅行青蛙》是当下非常火的佛系游戏,网易云易盾资深安全开发工程师于是就对它进行了分析:通过iOS和安装安装包联合分析,就可以发现iOS使用的是IL2CPP模式,C#脚本转成C/C++代码,使用II2CppDumper还原符号。王桂林说:“知道这些开发情况后,就可以搜索三叶草、抽奖券代码,通过修改对应的代码达到三叶草数目无限、抽奖券变成自己想要的效果等。”

不论是加速器,还是外挂,都会伤害正常玩家——包括付费玩家,同时也会影响游戏开发者的收入,面对这些情况时,我们该怎么办?

iOS游戏安全,行之有效的“三板斧”

那iOS游戏怎么才能做好相应的保护?面对现场大家期盼的眼神,王桂林分享了网易云易盾行之有效的“三板斧”:

  • 第一板斧是防静态分析,这里包括字符串加密、符号混淆、代码逻辑混淆和游戏存档加密;
  • 第二板斧是防动态调试、反调试和通信安全(数据加密);
  • 第三板斧是外挂检测、加速挂、内存修改挂和自动任务挂等。

字符串加密

代码逻辑混淆

具体来看字符串加密、符号混淆、代码逻辑混淆。字符串加密,就是在编译器编译源码时,对程序中的字符串进行加密,运行的时候动态解密;符号混淆,则是将代码中使用的类名、方法名、属性替换成其他意义的名字;代码逻辑混淆,就是在编译器编译源码时,对代码结构进行变形,提高代码的复杂度和逆向分析难度,从而保护程序不被轻易破解,里面也可以加密算法逻辑和特定的验证逻辑,比如一开始的代码结构很简单,改了以后就会变得很复杂。

反调试

王桂林说,上面的都属于放静态分析范畴,它都是对变量进行加密保护,让破解者无法搜索。外挂都会有反调试分析,因此静态分析之外还有防动态调试,比如说反调试,它使应用无法被调试、避免被动态分析的风险;同时,易盾还会做通信数据加密,防止被抓包工具抓包分析。

做好上面防护之外,易盾也采取主动出击,做外挂检测、加速挂、内存修改挂和自动任务挂等。

“这就是网易云易盾行之有效的三板斧——从防静态分析到防动态调试到最后的外挂识别,全方位保护iOS应用和游戏安全。”王桂林最后说。

感兴趣的朋友可以点这里免费试用网易云易盾加固产品。

                                                                                                                                       “移动安全诊断室”活动

原文地址:http://mp.weixin.qq.com/s/KIp3ZHpd7O2OCwhTauVkKA

了解 网易云 :
网易云官网:https://www.163yun.com/
新用户大礼包:https://www.163yun.com/gift
网易云社区:https://sq.163yun.com/

如何做好iOS应用安全?这有一把行之有效的“三板斧”的更多相关文章

  1. Hi,这有一份风控体系建设干货

    互联网.移动互联网.云计算.大数据.人工智能.物联网.区块链等技术已经在人类经济生活中扮演越来越重要的角色,技术给人类带来各种便利的同时,很多企业也饱受"硬币"另一面的伤害,并且形 ...

  2. iOS Run_time

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下,一为 查阅方便二为 或许能给他人一些启发,三为 希望得到 ...

  3. iOS:学习runtime的理解和心得 (转)

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下, 一为 查阅方便 二为 或许能给他人一些启发, 三为 希 ...

  4. iOS --runtime理解

    iOS~runtime理解 Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下,一为 查阅方便二为 或许能给 ...

  5. iOS:学习runtime的理解和心得

    http://www.cocoachina.com/ios/20150901/13173.html 作者:兴宇是谁 授权本站转载. Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门 ...

  6. iOS多线程编程原理及实践

    摘要:iOS开发中,开发者不仅要做好iOS的内存管理,而且如果你的iOS涉及多线程,那你也必须了解iOS编程中对多线程的限制,iOS主线程的堆栈大小为1M,其它线程均为512KB,且这个限制开发者是无 ...

  7. 【原】移动web页面兼容处理的思考

    本月收到一份关爱里程碑的邮件,入职满3周年了,从一个懵懂的新人到从容淡定的小油条,在外辛苦打工不容易,能收到一封简单的关怀邮件也是有感欣慰,这里祝愿公司越发展越好. 进入主题,移动网页设计中,很多同学 ...

  8. 使用jQuery的9个误区

    千万别忘记了使用最新的版本哦,毕竟每个版本更新肯定会在功能或性能上有所提升,或者修复了几个Bug,但有时惰性让人不想再去研究新版本的变化,因此,提醒你别忘记了在新项目用新的一定比旧版本要好. AD: ...

  9. Runtime - 01

    Runtime是想要做好iOS开发,或者说是真正的深刻的掌握OC这门语言所必需理解的东西.最近在学习Runtime,有自己的一些心得,整理如下, 什么是Runtime 我们写的代码在程序运行过程中都会 ...

随机推荐

  1. JS 图片切换

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="zzzz.aspx.cs&quo ...

  2. Ubuntu-18.04Python2与Python3自由切换

    一.配置ssh链接 安装openssh-server devops@devops-virtual-machine:~$ sudo apt-get install openssh-server 二.安装 ...

  3. expdp、impdp使用

    expdp介绍 EXPDP命令行选项1. ATTACH该选项用于在客户会话与已存在导出作用之间建立关联.语法如下ATTACH=[schema_name.]job_nameSchema_name用于指定 ...

  4. 使用jsonp跨域发送请求

    如果获取的数据文件存放在远程服务器上(域名不同,也就是跨域获取数据),则需要使用jsonp类型. 使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面. ...

  5. 解决lhgDialog插件在IE11浏览器的BUG

    项目中用到一款lhgDialog插件,最近在Win7系统IE11浏览器打上最新补丁(KB4012204)后,对话框内容的高度变成默认高度,经过调试,修改了lhgDialog里的iframe高度,问题解 ...

  6. 别人家的PS系列又来了!!!

    又到了“别人的PS”系列的日常感叹了,大家请边看推文边组织语言准备留言,用点新鲜词,不要再说什么给跪了,献上膝盖之类的,争取换点词. 好了,废话不多说,开始正文,先看几则简单的PS作品: 这两组作品出 ...

  7. linux磁盘管理(RHEL)

    IDE硬盘名称格式为/dev/hdXY,其中X为a-z的小写字母,Y为数字1-4(一块硬盘最多能分4个主分区).如hda1,表示第一块硬盘的第一个分区.hdb3表示第二块硬盘的第三个分区.还有如Pri ...

  8. DB2自增长ID

    建议类似的应用采用sequence对象,将来的应用维护和数据迁移会很方便.考虑的因素较少. 对于序列可以使用nextval和prevval来获得下一个和上一个值:CREATE SEQUENCE seq ...

  9. 2018.09.09 poj2949Word Rings(01分数规划+spfa判环)

    传送门 这题要先巧妙的转化一下. 对于每个字符串,我们把头尾的两个小字符串对应的点连边,边权是这个字符串的长度. 这样最多会出现26*26个点. 这个时候就只用求出边权和跟边数的最大比值了. 这个显然 ...

  10. hdu-1063(大数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063 思路:1.大数乘法模板 2.考虑小数点的位置 3.乘法前后判断前后道0 参考文章:https:/ ...