Android代码安全工具集
前言
原计划出一系列APP测试文章,从基础发,整个思路还在整理,秉着吹牛的态度,整理了一部分安卓代码安全的工具推荐给大家玩玩,提升一下逼格。
在这之前给大家讲讲阿旺对安全测试的理解,不管别人怎么扯,一定要找到你自己的理解与划分维度,也许我的维度划分不一定适合你,阿旺我的维度划分客户利益与公司利益两个维度。
客户利益:个人隐私、账号密码、金钱交易等体现为传输安全、存储安全。
公司利益:代码安全、客户数据、金钱交易等体现为传输安全、存储安全。
简单说说代码安全,比如公司内部流程管理问题导致的代码安全:代码SVN备份存档、代码拷贝泄漏、误删恢复等;比如外发程序的加密封装不当导致代码安全:是否可轻易逆向工程获取源码,是否可在无源码情况下被修改植入恶意代码;比如代码规范或人员水平导致的代码安全:内存泄露,死锁,空指针,资源泄露,缓冲区溢出,SQL注入等。
今天介绍的工具主要是针对代码安全(我归类到存储安全)的。
静态分析工具,Android lint 工具是一个静态代码分析工具,检查您的 Android 项目源文件的潜在错误和优化改进正确性,安全性,性能,可用性,可访问性和国际化。http://tools.android.com/tips/lint
静态分析工具,Facebook 开源的静态代码分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题。https://github.com/facebook/infer
DEX混淆工具,Tim Strazzere写的一个防止dex逆向的开源项目,主要是让当然几个工具崩溃,例如smali, dex2jar等。https://github.com/strazzere/APKfuscator
加壳工具,APKPotect通过阻止反编译软件、代码混淆加密、字符串加密、类名加密等方式使被保护过的APP难以被反编译逆向分析,从而达到保护APP不被破解的目的。
安全评估工具,Drozer 是一款综合的安全评估和攻击的android框架,允许您通过承担应用程序的角色并与 Dalvik VM,其他应用程序的 IPC 端点和基础操作系统交互来搜索应用程序和设备中的安全漏洞。
http://jaq.alibaba.com/
http://jiagu.360.cn/
https://www.qcloud.com/product/cr.html
http://safe.baidu.com/service
http://www.bangcle.com/
https://www.tongfudun.com/secapp.jhtml
http://www.nagain.com
阿旺:排名不分优劣,如须知优劣请自行分析
apktool工具集成了aapt,smali,baksmali,AXML编码解码等工具,可以完成反编译和再编译的功能,原常用做汉化工具。
下载地址:https://code.google.com/p/android-apktool/
使用教程:http://findyou.cnblogs.com/p/3450721.html
Findyou:我常用工具之一。
dex文件是Android平台上可执行文件的类型,dex2jar是将dex反编译JAR的工具,再借助JD-GUI 则可以查看JAVA源码。
使用教程:http://findyou.cnblogs.com/p/3450692.html
Findyou:我常用工具之一。
Java反编译工具。下载地址:http://jd.benow.ca/
Findyou:我常用工具之一。
Android除了混淆代码,另一种防范是将重要逻辑封装到.so文件。而IDA Pro之前是PC端是一个非常流行的反汇编工具,在安卓主要静态分析so文件。
Enjarify 是一个用 Python 写的, Google 官方开源的可以将 Dalvik 字节码转换为 Java 字节码的工具。https://github.com/google/enjarify
Dexdump是AndroidSDK自带的一个工具,利用它可以直接对Dalvik字节码进行反编译,原理是利用线性扫描对整个dex文件进行线性反编译,也就是说,dexdump会认为每一个指令是有效的,进而依次对其反编译,如果加入一些垃圾指令,dexdump也同样会对其进行反编译从而影响到正常指令的解析。最后,dexdump会输出一些类、方法和一些类的结构等信息。
Android逆向助手是一功能强大的逆向辅助软件。该软件可以帮助用户来进行apk反编译打包签名dex/jar互转替换提取修复;so反编译;xml、txt加密;字符串编码等等,操作简单,只需要直接将文件拖放到源和目标文件。
http://enjoycode.info/uploads/Androidnxzs.zip
在线反编译APK的工具。http://www.decompileandroid.com/
SV是一款免费的APK分析软件,通过查看Smali对移动应用软件代码的分析。http://blog.avlyun.com/wp-content/uploads/2014/04/SmaliViewer.zip
Smali https://code.google.com/p/smali/
Baksmali
https://code.google.com/p/smali/downloads/detail?name=baksmali
Xposed 框架使您能够在运行时修改系统或应用程序方面和行为,而无需修改任何 Android应用程序包。
Findyou:需要root,但是比较牛X的玩意。
参考:
[1]AndroidDevTools : http://www.androiddevtools.cn/
[2]baidu.com
本文为原创文章,如需转载,请在开篇显著位置注明作者Findyou和出处(这最先发在我自己玩的订阅号)。
Android代码安全工具集的更多相关文章
- Android虚拟环境的工具集Genymotion完整安装教程
Genymotion提供Android虚拟环境的工具集.相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了.如果你没有物理机器,又不想忍受官方模拟器的折磨,Genymoti ...
- Android代码分析工具lint学习
1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...
- Android 代码检查工具SonarQube
http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...
- 提高 Android 代码质量的4个工具
在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...
- 如何利用工具提高你的 Android 代码质量
在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...
- 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研
想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研 http://blog.csdn.net/testing_is_believing/article/details/22 ...
- 老李分享:android app自动化测试工具合集
老李分享:android app自动化测试工具合集 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
- Lint——Android SDK提供的静态代码扫描工具
Lint和FindBugs一样,都是静态代码扫描工具,区别在于它是Android SDK提供的,会检查Android项目源文件的正确性.安全性.性能.可用性等潜在的bug并优化改进. 下图简单地描述了 ...
随机推荐
- HBuilder/Mui开发ios使用上拉刷新导致滚动条无法使用的解决方法
HBuilder/Mui开发的APP使用上拉刷新,当滚动到底部是会触发上拉刷新,加载更多数据.但是ios上确是一个坑,导致滚动条无法滚动. 解决方法 放弃Mui的上拉刷新,自己使用JS实现. var ...
- js对象添加动态属性
在业务中,经常会遇到使用同个方法调用多个同类型接口,以下简单模拟两个API接口 // api-1 { code: 0, status: 200, title: 'web前端框架', list: [ { ...
- db2空值、null
1. 输入参数为字符类型,且允许为空的,可以使用COALESCE(inputParameter,'')把NULL转换成''; 2. 输入类型为整型,且允许为空的,可以使用COALESCE(inputP ...
- CSRF(Cross Site Request Forgery, 跨站域请求伪造)
CSRF(Cross Site Request Forgery, 跨站域请求伪造) CSRF 背景与介绍 CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的 ...
- 清空nohup日志
#清空nohup日志cat /dev/null > /tpdata/www/wxapp_domain/nohup.out
- SQL Server通过BCP进行大批量数据导入导出
预置条件: 使用sa帐号登录SQL Server Management Studio,右键点击安全性-登录名-数据库用户名属性,设置服务器角色为sysadmin. 删除已存在的存储过程 String ...
- ajax return 的问题
平时都是在AJAX里执行逻辑,实然想到能不能return返回数据呢? ajax 是异步请求,return拿值得时候 ajax并没有取到值,所以是undefind. 需要把ajax的请求方式改为同步 v ...
- 关于django1.8版本的静态文件配置
环境:Python3.5.4,django1.8.1. 在页面使用js时,总是提示404找不到js文件. 于是,看看了settings文件 好像也没什么毛病.导入的方式也换了很多种,总是不行,于是只好 ...
- js 二维数组 for 循环重新赋值
javascript 二维数组的重新 组装 var arr = [[1,2],[3,4],[5,6],[7,8]]; var temp = new Array(); for(var i= 0 ;i&l ...
- CSS 页面布局、后台管理示例
CSS 页面布局.后台管理示例 页面布局 1.头部菜单 2.中间内容/中间左侧菜单 3.底部内容 <div class='pg-header'> <div style='width: ...