安卓逆向系列篇:安卓工具总结(三)

简介: 安卓逆向系列篇:安卓工具总结

五、安卓抓包工具

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

1、BurpSuite

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

在BurpSuite中配置

设置一个新的代理监听器

87a0d60b9a1f1784d59fadd60dd4cc94_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

手机wifi设置代理

d57a8c85ec084699b5aac90fe6fb5b62_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

访问应用-抓取流量

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

10e88dfcba27473d3e73bca2f172f240_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

抓取HTTPS流量-下载证书

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

36b04e1bbb0aa145d6a5b5bb8b860837_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

抓取HTTPS流量-导入证书

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

eb1c167acb342b8438aa6cc1de815efc_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

访问https的网址

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

87d2ab707be39d553526e07b2fc4a642_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2、Fiddler

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

清除目前抓到的包

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

3039b13cae710a66cc407803995b8075_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

抓包及指定抓包

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

9e2b89e7ff01e16adad5eb7cc13fc0cd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

配置抓取HTTPS流量

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

1dbc94666a48b66947ceaf6b19297d04_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3、HTTP Debugger Pro

下载地址:百度

直接双击安装

默认下一步简单安装

1ecc5ec4d7a367c64242a40e6953e6bd_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

解密SSL-添加证书

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

6d64cf758ca542f3f43e004478d05379_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

1、简单介绍

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

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

6eac5d45c4b75ecd48e9d1fae8f2bb49_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2、静态分析

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

9f0cad649fac3a0a653ffd4e2230a810_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

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

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

f141dd2a30c4f937cb254a16304f2c5b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

3、动态调试

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

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

16f8e9903197bd3a19bfc643ce8626fe_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

2)JEB下断点

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

26ff282fec73100e9031c5da35ae693b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

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

92ee8f864b6abbac8b01614598ed37d0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

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

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

70e0c55cc5005940866935daa1105690_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5)成功注册

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

58fee7cfe220044bc2d62eb3e029c541_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


4、小结

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

相关文章
|
8月前
|
Android开发 芯片 开发者
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
Android MediaTek bootloader 的序列号长度 & 移除非字母和数字限制 SN-Writer工具支持写入
112 0
|
2月前
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
57 8
|
5月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
75 1
|
6月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异性:平台、工具和用户体验的对比分析
【7月更文挑战第30天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着不可忽视的地位。本文将深入探讨这两大平台在开发环境、工具选择以及最终用户体验上的根本差异,并分析这些差异如何影响开发者的策略和用户的偏好。通过比较安卓的开放性与iOS的封闭性,我们将揭示不同平台下的开发哲学及其对生态系统的影响。
53 4
|
6月前
|
开发工具 Android开发 数据安全/隐私保护
探索iOS与安卓应用开发的异同:技术、工具和市场趋势
在移动操作系统的广阔舞台上,iOS和安卓两大主角各自演绎着怎样的精彩?本文将深入剖析这两大平台在应用开发过程中的技术差异、开发工具的选择以及面对的市场环境。通过数据支撑和案例分析,我们将一窥这两个系统如何影响开发者的决策,并探讨它们未来的发展方向。
|
6月前
|
监控 开发工具 Android开发
探索安卓与iOS开发的差异:平台特性、工具和市场趋势
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统扮演着主角。它们各自拥有独特的平台特性、开发工具和市场定位,这些差异深刻影响着开发者的决策和产品的最终形态。本文将深入分析这两大平台的关键技术差异,探讨各自的开发环境和工具集,以及它们在市场上的表现和未来的趋势,为开发者提供一个全面的视角,帮助他们在这两个平台上做出更明智的开发选择。
|
5月前
|
API 调度 Android开发
Android经典实战之处理后台任务的2个工具
本文介绍Android后台任务管理,涵盖WorkManager与JobScheduler的使用方法及区别。WorkManager属Jetpack库,确保任务可靠执行,支持延迟与条件依赖。JobScheduler则针对特定条件下的任务调度,如网络类型。两者各有优势,WorkManager适用于多数场景。
59 0
|
7月前
|
监控 Android开发 iOS开发
探索Android与iOS开发的差异:平台、工具和用户体验的比较
【6月更文挑战第25天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚,它们在开发环境、工具选择及用户体验设计上展现出独特的风貌。本文将深入探讨这两个操作系统在技术实现、市场定位和用户交互方面的关键差异,旨在为开发者提供一个全景式的视图,帮助他们在面对项目决策时能够更加明智地选择适合自己项目需求的平台。
|
7月前
|
开发工具 Android开发 iOS开发
探索安卓与iOS开发的差异:从工具到用户体验
【6月更文挑战第20天】在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据半壁江山。本文将深入探讨这两个操作系统在开发环境、编程语言、用户界面设计以及性能优化等方面的关键差异。我们将通过比较分析,揭示各自平台的独特优势和面临的挑战,为开发者提供决策参考,并为最终用户提供更深层次的用户体验洞察。
|
8月前
|
Java Android开发
Android 反编译工具的使用
Android 反编译工具的使用
91 0