欢迎来到培训无忧网!

全国切换

咨询热线 400-001-5729

位置:培训无忧网 > 新闻资讯 > 电脑/IT > 手机开发 >  Android应用攻与防

Android应用攻与防

来源:www.pxwy.cn 发布人:彭二胖

2021-12-30 20:25:43|已浏览:2671次

安卓软件开发

      安卓系统是由谷歌推出的一款移动终端,由于开源,所以国内出现了许多使用相关系统的厂商,比如小米,oppo,vivo,魅族等。
      在国内,这些系统的用户群体甚多。我们日常使用的社交、游戏、工作等应用,很多都装在安卓系统上。
      由于安卓系统的开源性,很多安全问题也随之而来。那么,在安卓系统上运行的应用又是如何保证自身安全的呢?
      本文通过实战挖洞,展现一下Android应用的防守与攻击方式。
1
简介
      为了避免应用被攻击,各种应用在投产前会用一些技术手段进行加固。但是在持续对抗下,总会出现各种反加固的手段。
      部分开发者可能忽视应用的安全性,各大应用市场上也有很多未采取加固手段或进行简单加固的应用。
      首先,我们来看一看一个未进行任何加固手段的应用,运行起来有多危险。
      AES算法能保证身份证号以密文形式在网络上传输,不被他人窃取,将代码打包安装在我们手机中运行。
      由于安卓应用包很容易获取,源码包被攻击者拿去反编译:
      对比开发者写的代码和攻击者反编译的代码,几乎完全一样,攻击者很容易分析出我们的代码逻辑,从而造成破坏。
      上面程序,拿到我们加密算法逻辑,对传输中的加密内容进行解密,来获取身份证号。
      由此可见,没有做任何安全防护的安卓源码犹如“裸奔”。
2
防守原理
       上面实例可见,没有加固的安卓应用,运行起来是相当危险的。下面介绍几种常见的应用加固方式。包括源码混淆、应用加壳、应用运行环境检测。
源代码混淆保护
       混淆是将代码中的类、方法、变量等信息进行重命名,把它们改成一些如“a,b,c,d”这样毫无意义的名字,这样就增加了攻击者逆向难度。混淆效果图如下:
应用加壳保护
      加壳是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,做一些额外的工作。
      应用加固的一种手法对原始二进制原文进行隐藏。简单描述就是代码隐藏了,只有程序运行时才会还原。
      我们将上面加密身份证号的应用加壳,然后使用工具反编译如下,已经看不到任何源码信息。
      攻击者如果想要攻击,第一步就需要脱壳。我这里是只进行简单的加固,对安卓的关键dex文件整体加固,只有在运行的时候才会还原原有dex文件。当然还有其他不同类型的加壳手段。
      本文由培训无忧网长沙牛耳教育课程顾问老师整理发布,希望能够对想在长沙参加安卓软件开发培训的学生有所帮助。更多课程信息可关注培训无忧网电脑IT培训频道或添加老师微信:15033336050

      注:尊重原创文章,转载请注明出处和链接 https://www.pxwy.cn/news-id-11334.html 违者必究!部分文章来源于网络由培训无忧网编辑部人员整理发布,内容真实性请自行核实或联系我们,了解更多相关资讯请关注手机开发频道查看更多,了解相关专业课程信息您可在线咨询也可免费申请试课。关注官方微信了解更多:150 3333 6050

留下你的信息,课程顾问老师会一对一帮助你规划更适合你的专业课程!
  • 姓名:

  • 手机:

  • 地区:

  • 想学什么:

  • 培训无忧网
免 费 申 请 试 听
提交申请,《培训无忧网》课程顾问老师会一对一帮助你规划更适合你的专业课程!