前言

原计划出一系列APP测试文章,从基础发,整个思路还在整理,秉着吹牛的态度,整理了一部分安卓代码安全的工具推荐给大家玩玩,提升一下逼格。

在这之前给大家讲讲阿旺对安全测试的理解,不管别人怎么扯,一定要找到你自己的理解与划分维度,也许我的维度划分不一定适合你,阿旺我的维度划分客户利益与公司利益两个维度。

客户利益:个人隐私、账号密码、金钱交易等体现为传输安全、存储安全

公司利益:代码安全、客户数据、金钱交易等体现为传输安全、存储安全。

简单说说代码安全,比如公司内部流程管理问题导致的代码安全:代码SVN备份存档、代码拷贝泄漏、误删恢复等;比如外发程序的加密封装不当导致代码安全:是否可轻易逆向工程获取源码,是否可在无源码情况下被修改植入恶意代码;比如代码规范或人员水平导致的代码安全:内存泄露,死锁,空指针,资源泄露,缓冲区溢出,SQL注入等。

今天介绍的工具主要是针对代码安全(我归类到存储安全)的。

一、安全工具
01. Android lint

静态分析工具,Android lint 工具是一个静态代码分析工具,检查您的 Android 项目源文件的潜在错误和优化改进正确性,安全性,性能,可用性,可访问性和国际化。http://tools.android.com/tips/lint

02. infer

静态分析工具,Facebook 开源的静态代码分析工具,用于在发布移动应用之前对代码进行分析,找出潜在的问题。https://github.com/facebook/infer

03. APKfuscator

DEX混淆工具,Tim Strazzere写的一个防止dex逆向的开源项目,主要是让当然几个工具崩溃,例如smali, dex2jar等。https://github.com/strazzere/APKfuscator

04. APKProtect

加壳工具,APKPotect通过阻止反编译软件、代码混淆加密、字符串加密、类名加密等方式使被保护过的APP难以被反编译逆向分析,从而达到保护APP不被破解的目的。

05.Drozer

安全评估工具,Drozer 是一款综合的安全评估和攻击的android框架,允许您通过承担应用程序的角色并与 Dalvik VM,其他应用程序的 IPC 端点和基础操作系统交互来搜索应用程序和设备中的安全漏洞。

二、第三方加固工具
A01. 爱加密
A02. 阿里聚安全

http://jaq.alibaba.com/

A03. 360加固保

http://jiagu.360.cn/

A04. 腾讯云应用乐固

https://www.qcloud.com/product/cr.html

A05. 百度安全防护

http://safe.baidu.com/service

A06. 梆梆安全

http://www.bangcle.com/

A07. 通付盾移动安全云

https://www.tongfudun.com/secapp.jhtml

A08. 娜迦加固

http://www.nagain.com

阿旺:排名不分优劣,如须知优劣请自行分析

三、逆向工程工具
0x00. apktool

apktool工具集成了aapt,smali,baksmali,AXML编码解码等工具,可以完成反编译和再编译的功能,原常用做汉化工具。

下载地址:https://code.google.com/p/android-apktool/

使用教程:http://findyou.cnblogs.com/p/3450721.html

Findyou:我常用工具之一。

0x01. dex2jar

dex文件是Android平台上可执行文件的类型,dex2jar是将dex反编译JAR的工具,再借助JD-GUI 则可以查看JAVA源码。

使用教程:http://findyou.cnblogs.com/p/3450692.html

Findyou:我常用工具之一。

0x02.  JD-GUI

Java反编译工具。下载地址:http://jd.benow.ca/

Findyou:我常用工具之一。

0x03.  IDA Pro

Android除了混淆代码,另一种防范是将重要逻辑封装到.so文件。而IDA Pro之前是PC端是一个非常流行的反汇编工具,在安卓主要静态分析so文件。

0x04.  Enjarify

Enjarify 是一个用 Python 写的, Google 官方开源的可以将 Dalvik 字节码转换为 Java 字节码的工具。https://github.com/google/enjarify

0x04.  Dexdump

Dexdump是AndroidSDK自带的一个工具,利用它可以直接对Dalvik字节码进行反编译,原理是利用线性扫描对整个dex文件进行线性反编译,也就是说,dexdump会认为每一个指令是有效的,进而依次对其反编译,如果加入一些垃圾指令,dexdump也同样会对其进行反编译从而影响到正常指令的解析。最后,dexdump会输出一些类、方法和一些类的结构等信息。

0x05. Android逆向助手

Android逆向助手是一功能强大的逆向辅助软件。该软件可以帮助用户来进行apk反编译打包签名dex/jar互转替换提取修复;so反编译;xml、txt加密;字符串编码等等,操作简单,只需要直接将文件拖放到源和目标文件。

http://enjoycode.info/uploads/Androidnxzs.zip

0x06.  Android Apk decompiler

在线反编译APK的工具。http://www.decompileandroid.com/

0x07.  SmaliViewer

SV是一款免费的APK分析软件,通过查看Smali对移动应用软件代码的分析。http://blog.avlyun.com/wp-content/uploads/2014/04/SmaliViewer.zip

0x08.  Smali & Baksmali

Smali    https://code.google.com/p/smali/

Baksmali

https://code.google.com/p/smali/downloads/detail?name=baksmali

四、Hooking工具
01. Xposed

Xposed 框架使您能够在运行时修改系统或应用程序方面和行为,而无需修改任何 Android应用程序包。

Findyou:需要root,但是比较牛X的玩意。


参考:

[1]AndroidDevTools :  http://www.androiddevtools.cn/

[2]baidu.com


转载说明

本文为原创文章,如需转载,请在开篇显著位置注明作者Findyou和出处(这最先发在我自己玩的订阅号)。

Android代码安全工具集的更多相关文章

  1. Android虚拟环境的工具集Genymotion完整安装教程

    Genymotion提供Android虚拟环境的工具集.相信很多Android开发者一定受够了速度慢.体验差效率及其地下的官方模拟器了.如果你没有物理机器,又不想忍受官方模拟器的折磨,Genymoti ...

  2. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  3. Android 代码检查工具SonarQube

    http://blog.csdn.net/rain_butterfly/article/details/42170601 代码检查工具能帮我们检查一些隐藏的bug,代码检查工具中sonar是比较好的一 ...

  4. 提高 Android 代码质量的4个工具

    在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...

  5. 如何利用工具提高你的 Android 代码质量

    在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...

  6. 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研

    想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研 http://blog.csdn.net/testing_is_believing/article/details/22 ...

  7. 老李分享:android app自动化测试工具合集

    老李分享:android app自动化测试工具合集   poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨 ...

  8. 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等

    以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...

  9. Lint——Android SDK提供的静态代码扫描工具

    Lint和FindBugs一样,都是静态代码扫描工具,区别在于它是Android SDK提供的,会检查Android项目源文件的正确性.安全性.性能.可用性等潜在的bug并优化改进. 下图简单地描述了 ...

随机推荐

  1. vue的install

    将$platform挂载到Vue.prototype下面,this里面的内容就是$platform里面的东西 Vue.prototype.$platform = this 在chrome开发者工具下的 ...

  2. 解决bootstrap 模态框 数据清除 验证清空

    $("#switchModel").on("hidden.bs.modal", function () { $('#ware-form')[0].reset() ...

  3. redis内存不够 : OOM command not allowed when used memory > ‘maxmemory’

    Redis内存不够,报错. 三种解决思路 注:如修改了配置文件需重启redis 1. 增加redis内存,修改redis.conf(集群中为redis-env.sh),默认为1024MB,增加到合适的 ...

  4. js对象属性名驼峰式转下划线

    一.题目示例: 思路: 1.匹配属性名字符串中的大写字母和数字 2.通过匹配后的lastIndex属性获取匹配到的大写字母和数字的位置 3.判断大写字母的位置是否为首位置以及lastIndex是否为0 ...

  5. [openjudge-搜索]城堡问题(The Castle)

    题目描述 描述 图1是一个城堡的地形图.请你编写一个程序,计算城堡一共有多少房间,最大的房间有多大.城堡被分割成mn(m≤50,n≤50)个方块,每个方块可以有0~4面墙. 输入 程序从标准输入设备 ...

  6. Python 语言来编码和解码 JSON 对象

    Json函数: json.dumps: Python标准库中的json模块,集成了将数据序列化处理的功能. 将 Python 对象编码成 JSON 字符串 语法: json.dumps(obj, sk ...

  7. Tomcat日志文件catalina.out文件过大问题

    随着项目的运行,Tomcat的日志文件catalina.out的大小日益增大,现在都有好几个GB了.如果我们不做任何处理,catalina.out的文件大小将会持续增加,直到把我们的系统硬盘空间给撑爆 ...

  8. 【只要有ENA千万别用NCBI】拆分SRA文件,通过SRAtoolkits

    只要有ENA千万别用NCBI!!!! 最近开始分析网上Download的数据,一开始用人家现成的GWAS数据,后来觉得反正自己的数据到手该做的也是要做的,出来混早晚是要还的,所以就开始从头分析一些SR ...

  9. Unable to execute 'doFinal' with cipher instance

    今天项目启动后登录项目,突然爆出Unable to execute 'doFinal' with cipher instance错误.清除cookie登录测试,又不报错了,以前也见过类似问题,因为不影 ...

  10. Android一个工程引用另一个工程的方法

    一个工程包含另一个工程.相当于一个jar包的引用.但又不是jar包反而像个package 现在已经有了一个Android工程A.我们想扩展A的功能,但是不想在A的基础上做开发,于是新建了另外一个And ...