当前位置:首页 » 工具五金 » 抓包工具如何反编译
扩展阅读
钻石灯怎么挂漂亮 2025-03-01 03:09:03
宝鸡哪里有卖洗车工具 2025-03-01 03:09:00

抓包工具如何反编译

发布时间: 2025-02-28 23:11:19

A. 2023frida使用教程(1)

1.使用材料:

(Windous10)pc

Python3环境

雷电模拟器

frida16.0.9(hook框架)

vscode

Charles(抓包)

APP(驾培训创业教练)未加固

jadx4.1

2.逆向目标:hook接口:逆向登录参数sigin加密

3.详细逆向过程:

3.1抓包

设置ssl代理,在雷电模拟器WIFI设置代理,下载证书并安装证书,重启雷电模拟器

打开 驾培训创业教练 APP的登录页面

打开抓包工具

输入手机号抓包,抓包结果如下:

vscode note记录抓包结果,养成好习惯!

3.2反编译app搜索逆向关键词

APP未加壳,如果加壳需要先破壳,安卓逆向中最重要的就是:算法分析和脱壳

打开jadx 导入APP后开始反编译 搜索关键词:getSmscode 双击转到代码区

代码审计:

这段代码就是构造请求体,包括了 类型 手机 时间 签名 。其中签名是用了stringMD5toUpperCase函数来生成,

其中stringMD5toUpperCase函数又使用了yyyyMMddHHmmss + i + str + str2这几个参数生成,我们不知道str是什么,所有可以使用frida进行hook!!!!!!

3.3编写hook代码

目录如下:

我们直接使用模板frida

python模板

模板介绍:frida两种模式,我们这里使第二种。他们的区别:

-spawn模式,Frida会自行启动并注入进目标App,Hook的时机非常早 自动重启 设置包名

-attach模式,Frida会附加到当前的目标进程中,即需要App处于启动状态,这也意味着只能从当前时机往后Hook 手动启动 设置APP名

js模板:

结合反编译Java代码编写:

补充:java方法的重载

什么是重载?

几个相同的函数,参数不相同

该怎么hook呢?

Java.use('包名.类名').方法.overload('java.lang.String')

例如:

Java.use('com.jx885.library.http.CommAction').getSmscode..overload('int')implementation=function(mi){}

完整代码:

3.4 连接frida服务器,对app进行hook

终端命令:

端口转发

运行

结果如下:

补充:grpc直接调用

B. 抓包工具(如Charles)抓取Https数据包

1、HTTPS 不是单独的一个协议,它是 HTTP + SSL/TLS 的组合;

2、TLS 是传输层安全性协议,它会对传输的 HTTP 数据进行加密,使用非对称加密和对称加密的混合方式;

3、抓包工具的原理就是“伪装“,对客户端伪装成服务器,对服务器伪装成客户端;

4、使用抓包工具抓 HTTPS 包必须要将抓包工具的证书安凯袭装到客户端本地,并设置信任;

5、HTTPS 数据只是在传输时进行了加密,而抓包工具是接收到数据后再重新加密转发,所以抓包工具抓到的 HTTPS 包可以直接看到明文;

1、HTTPS 的数据是加密的,常规下抓包工具代盯源兄理请求后抓到的包内容是加密状态,无法直接查看。但是,正如前文所说,浏览器只会提示安全风险,如果用户授权仍然可以继续访问网站,完成请求。因此,只要客户端是我们自己的终端,我们授权的情况下,便可以组建中间人网络,而抓包工具便是作为中间人的代理。

2、通常HTTPS抓包工具的使用方法是会生成一个证书裂塌,用户需要手动把证书安装到客户端中,然后终端发起的所有请求通过该证书完成与抓包工具的交互,然后抓包工具再转发请求到服务器,最后把服务器返回的结果在控制台输出后再返回给终端,从而完成整个请求的闭环。

HTTPS可以防止用户在不知情的情况下通信链路被监听,对于主动授信的抓包操作是不提供防护的,因为这个场景用户是已经对风险知情。要防止被抓包,需要采用应用级的安全防护,例如采用私有的对称加密,同时做好移动端的防反编译加固,防止本地算法被破解。