关注移动应用安全走出“代码混淆”误区.docx_第1页
关注移动应用安全走出“代码混淆”误区.docx_第2页
关注移动应用安全走出“代码混淆”误区.docx_第3页
关注移动应用安全走出“代码混淆”误区.docx_第4页
关注移动应用安全走出“代码混淆”误区.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关注移动应用安全 走出“代码混淆”误区 长久以来,为避免手机APP被反编译和破解,大多数移动开发者选择代码混淆技术来抵抗破解者的攻击。但随着不断有应用被破解和盗版的事件发生,让越来越多的开发者开始质疑这种抵御方式的有效性。用代码混淆技术来保护手机APP安全到底是良策还是误区,本文请到360加固保的技术工程师刘敏为大家揭晓。什么是代码混淆?代码混淆是将程序的代码转换成一种功能上等价,但是难于阅读和理解的形式的行为。比如将代码中的各种元素,如变量、函数、类的名字改写成无意义的名字,使破解者在阅读时无法根据名字猜测其用途,增加反编译的阅读难度。代码混淆的利与弊以济南团谱的一款APP九天传说为例,这是一款目前风靡的RPG类打怪游戏。以超酷的打斗视觉体验和好玩的等级模式让应用一上线就赢得了许多用户。为避免出现盗版,提高应用安全性,技术人员对其进行了代码混淆。图1是进行代码混淆前后的代码结构对比。右侧截图是对源代码文件中的一些类名做了变换,改成了以英文字母命名的名称,这样破解者在阅读时就不容易理解其特指的含义。图1:代码混淆前后代码结构对比这种代码混淆方法简单、便于操作。但也因此会给开发者的调试工作带来困难,开发人员通常需要保留原始的未混淆的代码用于调试。由于混淆是不可逆的,在混淆的过程中一些不影响正常运行的信息将永久丢失,这些信息的丢失会使程序变得更加难以理解。代码混淆后手机APP能否再被破解?虽然做了代码混淆,但混淆只是对源代码的类名和一些变量名做了变换,增加了破解者阅读的难度,并不能真正阻止反编译。下面是对进行过混淆的九天传说APP进行破解并插入恶意广告的过程演示。首先,使用apktool工具进行反编译,可以得到smali代码文件,再定位找到主Activtiy的代码,主Activity可以从AndroidManifest文件中查到。九天传说的主Activity查到为com.tp.ttgame.jiutian.JiuTian。图2是处理comtpttgamejiutianJiuTian.smali中的onCreate函数,向其中添加有米广告的初始化代码截图。图2:添加有米广告的初始化代码再将添加banner的函数插入其中,并在onResume函数中调用,见图3、图4。图3 :添加banner的函数图4 :调用添加banner的函数这样代码部分就修改完成了。最后再修改AndroidManifest文件,需要将有米广告必要的配置写进去。见图5、图6。图5:添加有米广告必要的组件图6:添加有米广告必要的权限最后,将有米广告SDK的内容转成smali,并将其跟九天程序的smali合并。用apktool重新打包之后生成的程序就是一款含有有米广告的盗版应用了。图7是启动该盗版应用后的界面,能看到右下角增加的有米广告内容。图7:启动盗版应用后的界面 同理,破解者还可以将正版APP中的广告替换掉,这样,当用户下载该盗版应用并点击广告后,所带来的广告收入就直接进入了破解者的腰包。重要的是盗版应用中的广告大多是恶意广告,会在用户不知情的情况下下载程序,造成流量的消耗和资费的损失,影响用户体验更损害正版APP的品牌形象。所以,单纯的通过代码混淆并不能完全保证应用安全。如何避免手机APP被破解和盗版?目前越来越多的开发者选择使用360加固保来保护应用安全,这种方式到底是否可靠,下面再为大家做下演示。图8是对九天传说APP进行加固保护前后的代码结构对比,能看到右侧截图中加固后的代码文件都已经被隐藏起来,只保留了加固后的保护程序,破解者在反编译时无法找到源程序真正的代码,即可有效的避免手机APP被破解和盗版。图8:使用加固前后的代码结构对比 除了可以对手机APP的代码进行保护外,加固后还具备反调试、反篡改、反窃取和反逆向等功能,能有效防止代码注入,避免游戏外挂或木马程序的恶意篡改行为,从根源上防止应用被二次打包,杜绝盗

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论