前言

原计划出一系列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. Win10系统jdk环境变量配置方法

    http://www.w10zj.com/Win10xy/Win10yh_5620.html

  2. python进阶之 线程编程

    1.进程回顾 之前已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程 ...

  3. [JavaScript] Frequently used method or solutions for issues

    Get the file name from the file path Solution: var fileName = fullPath.replace(/^.*[\\\/]/, ''); // ...

  4. export to excel

    using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel;npoi是重点. 定义一个exporttoe ...

  5. python操作wifi

    python连接wifi需要使用pywifi包,可以用pip install pywifi安装 1.导入包 import pywifi,time #保存包中写义的常量 from pywifi impo ...

  6. 登录小项目 js+servlet+jdbc+mvc

    项目名称: 沪上阿姨 实现需求: 实现用户登录 实现用户退出 实现用户注册 功能分析: 用户登录: 根据用户名和密码查询用户信息.查询则登录成功,查不到则登录失败. 用户退出: 销毁session 用 ...

  7. 以选项卡的故事扯扯js面向对象

    在现在的网页中,选项卡(我自己这样子叫)是非常普遍的,也是比较基础,学了原型实现选项卡也挺久了,最近在学ES6,学了用类实现选项卡,今天就在此做个总结,别的废话也不多说. 以"貌" ...

  8. 玩转spring boot——结合docker

    前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 liunx机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有 ...

  9. Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4

    Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.4 from https://repo.mave ...

  10. input 输入速度和方向判断、搜索功能的延迟请求

    1.input 输入速度和方向判断 var wxApp = {} wxApp.click = function (str,speed) { var lastInput = { d: "&qu ...