首页 / 知识
Android逆向基础入门
2023-04-11 16:35:00

一、基础App数据抓取
1、App常用分析工具
常用的拦截抓包工具有fiddler、mitmproxy、charles(手机端需和电脑端在同一个网络下,且手机端要配置相应的证书,手机端还要设置手动代理):大部分app使用的数据通信协议基于http/https,可通过抓包查看来模拟url请求。因SSL Pinning导致无法正常抓包时需要对android进行逆向
常用的自动化工具有uiautomatorviewer、Appium、Airtest(手机与电脑端通过usb数据线连接,同时手机需要打开usb调试功能进入开发者模式):就相当于web端的selenium
2、fiddler抓包工具
fiddler安装与使用,不用手动设置代理,打开软件就自动开启了代理
3、mitmdump抓包工具
mitmproxy安装与抓包分析, 需要手动设置浏览器局部代理不太方便但还行;强大功能在于mitmdump可以实时抓包,然后给python等处理
mitmdump实时抓包使用介绍:分析抓包逻辑编写好python处理脚本 > mitmdump -s py文件 -p 端口号 > 滑动app(设置代理)或者web(设置局部代理)
4、charles抓包工具
charles安装与抓包分析,Charles免费使用30分钟,然后需要重启再次使用,貌似设置了SSL Proxying证书,可以抓SSL Pining的包(低于7版本的安卓系统)
5、uiautomatorviewer / appium自动化工具
appium相关操作使用,与手机通过usb连接,需要确定要操作的相应的app包名起服务,没有airtest方便;可通过录制功能自动生成python代码
appium实战案例1
appium实战案例2
6、Airtest自动化工具
Airtest相关操作使用,与手机通过usb数据线连接,可以操作多个手机实现群控,可通过录制功能自动生成python代码,功能十分强大
二、Android_apk逆向
1、Android逆向名词
每个android app都有对应的安装包,以。apk为后缀
反编译工具:jadx、JEB、Apktool:因SSL Pinning导致无法正常抓包时,需要反编译apk文件,还原成可读性高的java代码分析内部逻辑
Hook工具:Xposed、Frida:可以通过hook拦截和改写逻辑,获取关键加密数据,hook或模拟Java层和Native层(即so层由C/C++等实现)的代码;其中Xposed只能Hook Java层逻辑,且Xposed整个模块逻辑需要使用Java语言实现;因此Frida更强大、方便、灵活
反汇编工具:IDA Pro工具:逆向分析、调试、模拟Native层(so层)的代码实现逻辑
2、jadx反编译工具
jdk1.8_java环境安装(目录3)
adb安装(目录2)
jadx工具:jadx-gui反编译图形界面工具,jadx下载 , 解压后运行exe文件,然后打开加载apk文件即可
常用功能:文本搜索(导航),右击代码查找方法声明,右击代码查找用例,反混淆(工具),日志查看器(帮助),设置选项里面也有很多功能
3、JEB反编译工具
(1)JEB常用功能介绍
JEB反编译器使用详细介绍
JEB下载安装,windows运行。bat文件,然后加载apk文件,即可看到右侧Smali代码,通过编译也可以转到java代码看
|
最新内容
相关内容
python如何导入txt数据库?
python如何导入txt数据库?,数据,时间,代码,培训,数据库,函数,读数,数据表,以上,方法,python将TXT数据导入数据库的方法代码如下:#!/usr/bin/pypython如何调用另一个文件夹中的内
python如何调用另一个文件夹中的内容?,系统,培训,文件,模块,内容,路径,函数,所在,前缀,语句,python中调用另外一个文件夹中的内容:1、同一文件python中怎么对一个数进行因式分解
python中怎么对一个数进行因式分解?,代码,培训,因式分解,因数,个数,最小,整数,数组,假定,分解,1、Python因式分解代码:importtime#对一个数进python怎样获取json数据类型?
python怎样获取json数据类型?,培训,数据类型,类型,正则,火狐,以上,方法,更多,内容,列表,python中获取json不同数据类型的方法:1、获取"key":vpython怎么在数组添加一行?
python怎么在数组添加一行?,培训,下标,维度,数组,列表,函数,形状,元素,代表,原型,python中在数组添加一行的方法:python中可以使用stack()函数python数据怎么添加列?
python数据怎么添加列?,数据,位置,培训,方法,属性,结果,示例,函数,前面,以上,python在DataFrame数据中添加列的方法:1、使用concat方法在数据python如何获取列表里的数据类型?
python如何获取列表里的数据类型?,代码,信息,培训,类型,数据类型,表里,元素,语句,函数,对象,1、Python可以通过tpye()方法来判断list里的元知python怎么读sql数据?
python怎么读sql数据?,数据,培训,游标,格式,字典,方式,语句,参数,结构,对象,python中读取SQL数据的方法:python中可以使用游标cursor来读取SQLpython函数里面形参和实参一样吗?
python函数里面形参和实参一样吗?,培训,函数,参数,里面,变量,实际,形式,全称,示例,后面,python函数里面形参和实参不一样。形参全称是形式参实数是不是python的数据类型?
实数是不是python的数据类型?,数字,标准,培训,实数,数据类型,数轴,复数,有限小数,无理数,虚数,实数是python的数据类型。实数,是有理数和无理python判断xml是否存在某一节点?
python判断xml是否存在某一节点?,数据,培训,节点,方法,结果,表达式,长度,以上,更多,内容,python中判断xml是否存在某一节点的方法:使用selectNpython怎么筛选列表中大于0的数据?
python怎么筛选列表中大于0的数据?,数据,培训,函数,结果,以上,方法,更多,内容,列表,python筛选列表中大于0的数据的方法:1、使用匿名函数lamb