接触android开发也有2年多时间了。对于APP的安全方面虽然接触的不算全面,但是也做过好多反编译人家APP,看代码,或者抓他们数据的勾当。- - 。来谈谈个人对APP安全这方面的一些见解吧。
一:APP的安全主要有几方面?
1.代码安全:
对于很多个人开发者或者公司来说,有些功能代码是自己独有的东西。最怕的就是自己的代码被被人窃取。在android市场上,只要是比较火的游戏。经常都会被人反编译加广告。例如年初的时候为了了解一个直播的实现,我就反编译了某个直播软件。偷偷看了他们的实现。了解到了直播视频需要用到的一些库。以及他们自己请求服务器的一些代码。因此代码这方面的保护措施对于一些比较看重自己功能点的APP来说是非常必须的。要不然。没发布多久就出现了一堆山寨应用。这让精心设计了N久的你来说。是不是想屎的心都有了。
2.数据安全:
对于一些APP。功能的实现并不是很独特。只要稍微知道功能都能做出来。这些APP更偏向于自己的一些数据资源。这种类型的APP分两种:
(1).离线数据型:有些APP数据会存放在sqlite数据库上。作为用户离线使用,sqlite数据我们都知道。只要能获取到文件。打开就能直接看到数据    了。
(2)在线数据请求型:这类APP数据普遍都是放在服务器上,需要的时候就通过http,websevice等方式来获取数据。这种时候需要担心的就是,某些人会去研究你的APP怎么请求到的数据。自己写相应的请求去读取你的数据。
二:APP是怎么被窃取这些私密内容的?
 1.代码-反编译:
对于一个APK文件,想要看到具体实现的源码或者是布局文件,一般采用的就是反编译的方式。反编译的软件网络上有很多。最主要的还是通过apktool+jd-gui.很多集成工具也只是把这两个工具集合在一起而已。这里介绍我自己使用的软件:ApkDec-Release-0.1。使用方法:
打开ApkDec-Release-0.1.exe,选择你想要反编译的APK。选择发编译后文件存放的路径。可以选择只反编译Jar或者全部。点击开始反编译。
等待完成后打开设置的目录。可以看到如下列表。
 
.jar文件就是我们所得到的代码。使用jd-gui打开.jar文件。
    
代码是不是很清楚的能看到呢。既然能看到代码了。就没什么秘密好隐藏的了。
   2.数据库-root获取
Android的APP如果有使用到数据库,一般来说默认是建到data底下本APP包名下的databases目录下。使用eclipse的DDMS可以很容易的把该目录底下的数据库文件给下载到本地查看。部分手机需要root权限。拿到数据库文件。用sqlite管理工具打开,就能看到有关数据了。我使用的是SQLite Expert Professional
 

3.接口-数据抓包
对于一些数据比较重要的APP。很多人的做法就是抓包,把APP怎么请求服务器的链接给获取到。自己写请求去模拟请求。这样服务器的数据就都被他们给拿到了。有些人有个疑问。请求都是在手机上做的。我怎么抓到呢。我有2个方法,
第一种,使用android的抓包软件。市场上搜有很多,只需要打开抓包软件,打开您要抓包的APP,执行完需要的操作之后。抓包软件就会把手机上所有请求网络的链接都保存到一个文本文件。打开这个文本文件就能看到在什么事件请求的数据链接。
第二种,有点取巧。买一个随身wifi。或者是笔记本接网线,然后用无线把网络共享出去,建立一个wifi。将手机连到这个wifi上,记住只能要抓包的手机连。其他设备一个都不能连上。然后电脑上下一个抓包软件抓取共享wifi网卡的数据。我用的是影音嗅探专家。步骤如下:
打开影音嗅探专家,点击顶部的设置,选择网卡,选择共享的那个网卡。然后点击开始嗅探。底下的列表就会显示一堆的链接。就是手机所请求的各种网络接口。
 
这些数据我们可以进行筛选。得到我们所需要的接口,包括地址,参数等等东西。
这样就能把这个APP怎么请求网络数据都给拿到手了。
三:提高APP安全性的几种方法
看了以上的几种方式,对安全没怎么在意的你是不是发现。自己的APP处在了十分危险的环境下呢。这是没有办法滴。但是别担心。既然有破解措施,那就有对应的防护措施。
对于代码的安全方面。现在能用到的主要有几种,
一个是在打包APK的时候对代码进行混淆。把代码混淆成abcd这种惨无人道的名字。基本可以阻止一些水平较低来看懂你的代码。但是水平高一些的人还是能跟踪到你的代码逻辑。
第二种,将重要的代码用C++来写,编译成.so文件,使用ndk调用so文件中的C++代码。这个方法需要有NDK基础。现在很多的应用都是采用这种方式,保护代码。
第三种方法。APK加密。市面上有很多,梆梆加密就是一个。具体的用法很简单。
注册,
 
上传APK。
 
加密,下载加密后的APK。
 
对加固后的APK进行重新签名。可以使用梆梆提供的签名工具。
完成后。就不怕APK被反编译出源代码了。
数据方面的安全,也是分2个,数据库和服务器数据。
数据库,网上有个方法是数据库文件加密,加密之后用户下载.db文件之后是没法打开的。但是这个有个坏处。请求数据库的代码都要改过。不太实际,因此大部分人的做法是,对数据内容进行加密保存。用对应的算法对数据进行加密。保存到数据库,使用的时候取出加密数据,使用对应的解密规则解密数据。这样子你的数据就算被别人拿到。看到的也都是一堆加密后的数据。没有解密规则,根本没法拿到具体数据。
服务器数据,主要靠的是APP请求接口获取,因此我们要在请求上做文章。常用的方式有几种;
(1)使用session,cookie等安全措施。同时对每个APP绑定手机的mac地址等。年初的时候反编译一个软件,它的请求就做的很完美。生成一个随机数,请求接口的时候带上这个随机数,已经手机mac地址。服务端根据解密规则得到随机数,然后根据这个随机数将返回的数据加密。APP只要根据随机数就能取到正常的解密数据。而MAC地址则是判断请求方是否合法的标志。注册时,会将MAC与用户ID绑定,每次请求数据需要mac地址参数一致才允许请求数据。这样很大程度上能避免别人模拟你的请求来获取到服务端的数据。
(2)使用post请求及Webservice等方式。使用这些请求方式的时候。抓包没办法抓到post的参数。少了几个参数。就没办法请求到数据。这一点可能有争议。我到目前为止是还没找到方法抓Post及webservice数据。但是不代表没有。可能有朋友有方法。可以提供下。
总结:
对于APP的各方面安全。个人觉得需要做的就是把以上几点结合起来。单单使用一点的话也还是会被拿到的。比如说数据加密。解密的规则在代码中肯定能知道。如果你没有混淆或者加密APK。那么只要拿到加密数据。再反编译你的APK取到解密的规则。一样能拿到正确的数据。综合一起使用才能最有效的保护自己的知识财产。
以上就是个人对APP安全的一些看法。不足的地方望大家见谅。
附上使用到的几个工具

android反编译工具(ApkDec-Release-0.1)-正式版.zip

7.46 MB, 下载次数: 19, 下载积分: e币 -5 元

售价: 5 元e币  [记录]  [购买]

反编译工具

影音嗅探专家.zip

7.71 MB, 下载次数: 19, 下载积分: e币 -5 元

售价: 5 元e币  [记录]  [购买]

抓包工具

#梆梆安全杯#个人对APP安全的一些看法相关推荐

  1. android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测

    android安全检测工具,梆梆安全 - 防止反编译|APP安全加固|应用加固|盗版监测 https://dev.bangcle.com/ 业内专业的应用加固服务供应商 帮助数十万APP抵御破解风险, ...

  2. php加固apk,脱壳再打包某梆梆免费加固APP

    Apk: 梆梆免费加固apk,非2019最新版. 准备工具: Apktool dex-tools-2.1-SNAPSHOT smali-2.3.4 DexExtractor jd-gui 整体也是这个 ...

  3. Andorid APK反逆向解决方案---梆梆加固原理探寻

    本文章由Jack_Jia编写,转载请注明出处.   文章链接: http://blog.csdn.net/jiazhijun/article/details/8892635 作者:Jack_Jia   ...

  4. android应用加固后闪退,梆梆加固,启动就闪退了

    今天尝试用了梆梆加固,结果启动就闪退了. 错误信息如下,毫无头绪. 03-07 13:51:27.142 6520 6520 E CrashHandler: In thread: Thread[mai ...

  5. dalvik下替换so简单dump出梆梆加固保护的odex

    由于保护技术更迭迅速,不保证本文方法适用于后续或者其它版本的梆梆加固,需要读者自行测试. 梆梆加固后的apk,里面的classes.dex只是个外壳,负责加载libDexHelper.so,而真正的d ...

  6. Android逆向案例:干掉梆梆加固免费版的反调试检测

    目标和现象 分析目标:某行网银手机客户端 分析壳类型: 使用[d2j-dex2jar]反编译后发现关键代码缺失,因为 AndroidManifest.xml 中的绝大部分activity和server ...

  7. 梆梆安全:做以结果为导向的安全服务商

    作为国内领先的安全服务提供商,梆梆安全不谈概念,始终从基本出发,致力于解决客户的根本性问题.通过运用领先技术提供专业可靠的服务,为全球政府.企业.开发者和消费者打造安全.稳固.可信的安全生态环境,其用 ...

  8. 2017年中国互联网企业百强出炉 梆梆安全领跑移动安全行业

    2017年8月3日,中国互联网协会.工业和信息化部信息中心联合发布了"2017年中国互联网企业100强"排行榜.腾讯.阿里巴巴.百度.京东等传统互联网豪强再次占据榜首位置,而梆梆安 ...

  9. 梆梆安全的金砖梦想:安全联结世界

    序言:参与了连续两天的2017年金砖国家工商论坛,聆听了主席及多国领导人的讲话,感触颇多.随着思考的深入,一个"安全联结世界"的梆梆安全金砖之梦开始在脑海里愈发清晰起来. 刚收到& ...

  10. 从移动互联网时代到物联网时代 梆梆安全追寻“本质安全”

    2016国家网络安全宣传周在江城武汉如火如荼的进行中,期间的网络安全博览会吸引一百多家企业报名参展,安全周为提高全民的网络安全意识.安全辨别能力,以及让更多人了解网络安全.养成良好的网络使用习惯提供了 ...

最新文章

  1. Java设计模式(工厂模式>抽象工厂模式和原型模式)
  2. 《Redis官方文档》事件库
  3. dataframe类型数据的遍历_Python零基础入门到爬虫再到数据分析,这些你都是要学会的...
  4. dataTables插件使用
  5. 项目拖太久的巨大风险
  6. 国家网信办:所有网站应对传播内容承担法律责任
  7. lisp坐标一键生成_Grasshopper自动生成坡度标注
  8. 静默安装Oracle12.2数据库
  9. 两次被简书签约作者拉黑的经历
  10. xlsx 解析excel 后渲染到表格里(前端实现 解析excel渲染到表格)
  11. MessageDigest 详解
  12. 如何下载网页中加了限制的Flash、RM、WMV等视频文件
  13. 怎么可以修改pr基本图形中的文字_视频剪辑 | pr的简单教学
  14. luogu P3934 [Ynoi2016] 炸脖龙 I
  15. 手机格式化的计算机原理,格式化也不靠谱?教你如何彻底删除手机上的数据
  16. matlab中int函数的用法
  17. RabbitMQ 下载安装 (window) 百度网盘
  18. pytorch对矩阵(奇异和非奇异)求逆
  19. AT24C02数据存储
  20. CodeForces - 1646E Power Board (思维,数学)

热门文章

  1. cmsplus实战之仿[我扫网]之四:安装整站下载器并下载仿站所有数据
  2. excel的lookup函数
  3. vb远程访问dde服务器,做wincc与VB的dde连接一定要用ddeserver吗?
  4. word一级标题行距一样宽度不一致
  5. 用python绘制万花筒_Python实现PS滤镜的万花筒效果示例
  6. 【zheng】学习搭建github的高星项目:zheng
  7. 实现加入购物车的功能
  8. PlayYou 捉弄人软件(手机控制电脑)
  9. [OpenAirInterface实战-17] :OAI 软件无线电USRP N300/N310硬件详解
  10. 基于C#的AE二次开发之GP工具的使用心得