前言

原计划出一系列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. 【UML】-NO.44.EBook.5.UML.1.004-【UML 大战需求分析】- 顺序图(Sequence Diagram)

    1.0.0 Summary Tittle:[UML]-NO.44.EBook.1.UML.1.004-[UML 大战需求分析]- 顺序图(Sequence Diagram) Style:DesignP ...

  2. Python数据分析Pandas库数据结构(一)

    pandas数据结构 1.生成一维矩阵模拟数据 import pandas as pdimport numpy as nps = pd.Series([1,2,3,4,np.nan,9,9])s2 = ...

  3. 第七节 DOM操作应用-高级

    表格应用: 获取:tBodies.tHead.tFoot.rows.cells <!DOCTYPE html> <html lang="en"> <h ...

  4. LeetCode #003# Longest Substring Without Repeating Characters(js描述)

    索引 思路1:分治策略 思路2:Brute Force - O(n^3) 思路3:动态规划? O(n^2)版,错解之一:420 ms O(n^2)版,错解之二:388 ms O(n)版,思路转变: 1 ...

  5. Python Rabbit 广播模式

    Exchange 在RabbitMQ下进行广播模式需要用到,exchange这个参数,它会把发送的消息推送到queues队列中,exchange必须要知道,它接下来收到的消息要分给谁,是要发给一个qu ...

  6. [c/c++] programming之路(13)、函数

    一.函数 #include<stdio.h> //stdio.stdlib标准库 #include<stdlib.h> //代码重用, 函数的诞生,C语言主要是函数组成 //写 ...

  7. 关于vim的折叠

    参考: http://www.cnblogs.com/fakis/archive/2011/04/14/2016213.html 和 这篇文章: https://blog.csdn.net/benda ...

  8. Python作业

    1使用while 循环输入1,2,3,4,5,6,,8,9,10 count = 0 while count<10: count+=1 if count ==7: continue print( ...

  9. Javascript 字典应用实例

    字典时一个很有用的工具,在之前C#项目中有经常使用,这篇博文主要讲解在Javascript中,字典的实际应用场景 首先在JS中,是没有Dictionary‘类的,我们需要实现键值(KEY) -- 数值 ...

  10. Executors创建线程池的几种方式以及使用

    Java通过Executors提供四种线程池,分别为:   1.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.   ...