freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

安卓工具小结
2021-09-14 12:03:43

一、开发工具

安卓开发工具主要是一些Java开发环境、集成开发环境和安卓开发环境等

1、JDK和JRE

可以去官网下载,选择jdk8u111版本进行安装

JDK:Java Development Kit是Java的开发工具包,JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具。

JRE: Java Runtime Environment是Java运行时环境,包含了java虚拟机,java基础类库

安装过程:

1)双击启动安装程序

h1OGMF.png

2)默认安装路径

h1OK5q.png

3)jre路径选择

h1OQP0.png

4)配置环境变量

JAVA_HOME
C:\Program Files\Java\jdk1.8.0_111

h1O12T.png

%JAVA_HOME%\bin

h1OlGV.png

C:\Program Files\Java\jre1.8.0_111\bin

h1O3xU.png

2、adt-bundle

adt-bundle用于在Windows操作系统上搭建安卓开发环境

下载地址:http://dl.google.com/android/adt/adt-bundle-windows-x86_64-20140702.zip

直接下载下来拷贝至C盘即可

3、Eclipse

adt-bundle中配带了Eclipse

1)双击启动

h37G8S.png

2)选择Finish

h378C8.png

3)创建Java Project

h37Jgg.png

配置Java编译环境

h37lUP.png

配置Java运行环境

h3714f.png

配置文本文件编码

h37ejH.png

打开Logcat界面

LogCat界面主要用于查看报错信息及进程信息

h37uDA.png

配置Java代码提示

便于后面的Java代码编写,这部分可配可不配

abcdefghijklmnopqrstuvwxyz.

h37QEt.png

创建Class文件

h37KHI.png

public class try001 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Hello World!");
}

}

h37nud.png

4、Android Studio

‎Android Studio是一个为Android平台开发程序的集成开发环境,以IntelliJ IDEA为基础构建而成。类似于上面的Ecilpse,一般情况下两者都有使用,暂时不过多介绍,后面会使用到再详细介绍。

在官网直接下载即可,双击安装

安装类型

h377xe.png

确认安装

h37bKH.png

二、逆向工具

这部分介绍的安卓逆向工具是一些用于安卓反编译、逆向分析的工具,可以将源程序反编译成可读代码,如Android Killer、Jadx和JEB等工具

1、Android Killer

Android Killer是一款安卓逆向工具,集Apk反编译、Apk打包、Apk签名、编码互转、ADB通信等特色功能于一身,支持logcat日志输出,语法高亮,基于关键字项目内搜索,可自定义外部工具,简化了用户在安卓应用中的各种琐碎工作。

下载地址:https://www.androiddevtools.cn

Android Killer下载安装

1)下载后,解压至C盘

h1OjJ0.png

免安装直接使用。

2)简单配置

如果打开报错,就修改下jdk路径

h1OXiq.png

加载APKtool工具

默认情况下会自带一个apktool工具,这里加载额外的apktool

h1OxzT.png

Android Killer简单使用

对apk进行反编译

h1OvWV.png

2、Android逆向助手 v2018 少月版

下载地址:CSDN上有

安装前需确认存在JDK,其功能包括反编译、重打包,格式转换等。简单的功能都列在主页了,其中最好用就是签名apk功能

h37vIP.png

3、Jadx 反编译工具

Jadx工具用于将dex文件反编译成Java代码文件,分为命令行窗口和可视化窗口两种类型

命令行窗口工具,直接进入目录的cmd中,通过jadx命令进行反编译

h37zPf.png

可视化窗口工具Jadx-gui,打开后导入文件即可开始反汇编

载入文件及介绍

载入贪吃蛇apk文件,主要反编译有两个文件,源代码和资源文件,资源文件对应apk中的文件(这里用压缩软件打开apk文件查看到)

h3HmGT.png

简单搜索类

h3HeiV.png

函数跳转

选择函数,按住Ctrl+左键可以直接跳转至函数声明处。比如这里的BuyFailed()

h3HVI0.png

4、JEB 反编译工具

JEB是一款Android应用程序反编译工具,用于逆向分析、代码审计,具有静态分析和动态分析的能力

下载地址:https://www.pnfsoftware.com

双击bat文件启动

h3HMM4.png

选取一个apk文件进行反编译

Manifest文件是清单文件(元数据文件),用来定义扩展或档案打包相关数据包含了不同部分中的名/值对数据

Bytecode是字节码,里面内容是smali代码

h3HQsJ.png

简单使用

在smali文件中按q可以反编译回java代码

Ctrl+b下断点

三、安卓调试工具

这部分为安卓调试工具,主要先介绍下载及安装,JEB动态调试在本文的第六节中介绍,其余的IDEA和IDA会在后面的动态调试文章中体现

1、JEB

JEB是一款Android应用程序反编译工具,同时也具备动态调试的功能,下文将以一个小例子进行演示。

第六部分简单演示了JEB的动态调试过程

2、IDEA

IDEA 全称 IntelliJ IDEA,是java编程语言开发的集成环境,在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的

下载地址:https://www.jetbrains.com/idea

安装过程参考:01-IDE工具之IDEA的简介、下载与安装、初步配置

动态调试见后文

3、IDA

下载地址:百度

安装后有32位的和64位,这里的位数是针对软件而言的,而不是针对操作系统版本,这里先简单安装下,在后面IDA动态调试中会有专门一篇文章来介绍。

四、安卓辅助工具

这部分主要是一些辅助工具,查询信息、是否加壳等。对于没有真机的情况下还介绍了一些上手还可以的安卓模拟器

1、APK helper

APK helper工具用于查看apk文件简单信息,包括包名、证书、版本、文件信息等

h3HYi6.png

2、PKiD 查壳工具

PKiD工具,将apk文件拖入可以查看是否加壳

h3HGIx.png

3、安卓模拟器

如果没有真机做实验的情况下,可以使用安卓模拟器用于实验,大部分的模拟器都可以完成实验内容,但是注意的是安卓模拟器也是一个虚拟机,不建议在虚拟机内安装模拟器,一是安装不了,二是十分卡顿。这里介绍几款不错的安卓模拟器。

  1. 雷电模拟器

下载地址:https://www.ldmnq.com

  1. 网易MuMu

下载地址:https://mumu.163.com

  1. 逍遥模拟器

下载地址:https://www.xyaz.cn

  1. 蓝叠模拟器

下载地址:https://www.bluestacks.cn

五、安卓抓包工具

这部分介绍如何使用工具抓取安卓手机上的流量,主要是BurpSuite和Fiddler工具,还有安装证书抓取HTTPS的过程。

1、BurpSuite

BurpSuite抓取手机上的流量需要先设置手机和电脑为同一局域网

在BurpSuite中配置

设置一个新的代理监听器

h3Hxm9.png

手机wifi设置代理

h3bST1.jpg

访问应用-抓取流量

在手机上随便访问一些app,可以在BurpSuite中看到抓取的包

h3bCY6.png

抓取HTTPS流量-下载证书

浏览器中输入代理IP和端口,点击右上角的CA Certificate按钮下载cacert.der证书。默认下载是.der格式的证书,手机上无法打开.der文件,下载好后需要将其改为.crt文件。

h3HzwR.jpg

抓取HTTPS流量-导入证书

在设置-安全-从存储设备安装中,选择cacert.crt证书,安装即可

h3b9Fx.jpg

访问https的网址

在浏览器中访问https://www.baidu.com,BurpSuite中成功抓取到。

h3bPfK.png

2、Fiddler

先简单介绍Fiddler抓包工具的一些基础操作,稍微熟悉下

清除目前抓到的包

选项栏中选择Remove all删除所有的包

h3bJmj.png

抓包及指定抓包

左下角的Capturing图标来关闭/开启抓包功能,旁边可以对包进行选择

h3b8XQ.png

All Processes 抓取所有通过Fiddler代理的request包
Web Browsers 抓取PC中浏览器的代理请求包 (需要选中Capturing)
Non-Browser   抓取除浏览器外的代理请求包
Hide All     隐藏所有的代理请求包

配置抓取HTTPS流量

下载、安装证书,配置监听端口即可

h3bY0s.png

3、HTTP Debugger Pro

下载地址:百度

直接双击安装

默认下一步简单安装

h3bWh6.png

解密SSL-添加证书

进入页面后,点击黄色框中的解密 SSL,选择添加证书即可。

h3bRtx.png

之后即可抓包,也可以抓模拟器上的数据包

六、JEB静态分析+动态调试

1、简单介绍

本次调试的目的:实现任意用户注册,无视注册码

调试程序截图如下,失败返回无效用户名或注册码

h3b7Bd.png

2、静态分析

1)将注册机.apk文件导入至JEB中

h3bHHA.png

2)简单查看反编译后的Java代码

关键点在于checkSN函数,传入两个参数arg11和arg12,分别对应用户名和注册码

MessageDigest类为应用程序提供信息摘要算法的功能,这里提供MD5算法
messageDigest.update(str)输入待加密的字符串
messageDigest.digest()加密后的字节数组

主要的逻辑就是:将输入的用户名作为参数1并进行MD5加密,之后进行处理得到一个注册码,也就是说这里的注册码是实时根据用户名生成的,之后在将输入的注册码进行比较,相同则返回True。

h3bqAI.png

跟进equalsIgnoreCase()函数找到生成的注册码即可,接下来交给动态调试

3、动态调试

1)雷电模拟器中启动注册机apk

随意尝试用户名和注册码进行注册,返回提示无效用户名或注册码

h3bLNt.png

2)JEB下断点

选定equalsIgnoreCase()函数,按q返回到对应汇编代码处,下好断点

h3bO4P.png

3)连接到模拟器进行动态调试

需要adb工具,在之前安装SDK时配带

选择Debugger -> Start,选择雷电模拟器和注册机apk的进程

h3bxgS.png

4)找到校验值(破解点)

发现equalsIgnoreCase()函数需要两个变量v6和p2,查看v6的值"222275aa4840481c"

h3bv38.png

5)成功注册

重新启动注册机apk,输入admin和注册码222275aa4840481c,注册成功

h3bj9f.png

4、小结

初入门移动安全逆向apk的第一个小项目,虽然简单,只是一个破解得到注册码,但学到JEB工具的静态分析及动态调试,简单分析Java代码等

# 移动安全
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录