使用frida hook所有请求链接

chatgpt生成的


import frida, sys



j2 = """
Java.perform(function() {
    console.log('进入')
    var URLClass = Java.use("java.net.URL");
    var HttpURLConnectionClass = Java.use("java.net.HttpURLConnection");

    URLClass.$init.overload('java.lang.String').implementation = function(url) {
        console.log("URL: " + url);
        return this.$init(url);
    };

    HttpURLConnectionClass.connect.implementation = function() {
        console.log("Connecting to: " + this.getURL().toString());

        // 获取堆栈信息
        var stackTrace = Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new());
        console.log("Stack Trace: " + stackTrace);

        // 获取请求头信息
        console.log("Request Headers: " + JSON.stringify(this.getRequestProperties()));

        // 获取请求参数
        var requestMethod = this.getRequestMethod();
        if (requestMethod === 'POST') {
            var inputStream = this.getOutputStream();
            var byteArrayOutputStream = Java.use("java.io.ByteArrayOutputStream").$new();
            byteArrayOutputStream.writeTo.implementation = function(outputStream) {
                console.log("Request Data: " + this.toString());
                byteArrayOutputStream.writeTo(outputStream);
            };
            var bufferedWriter = Java.use("java.io.BufferedWriter").$new(Java.use("java.io.OutputStreamWriter").$new(inputStream));
            bufferedWriter.write.implementation = function(str) {
                console.log("Request Data: " + str);
                bufferedWriter.write(str);
            };
        }

        return this.connect();
    };
});
"""

def on_message(message, data):
    if message['type'] == 'send':
        print("[*]{0}".format(message['payload']))
    else:
        print(message)

process = frida.get_usb_device(-1).attach(10600)
# 可选择j1或者j2算法,使用起来功能一样,看哪个用的更顺手
script = process.create_script(j2)
script.on('message', on_message)
script.load()
# 不让程序断掉
sys.stdin.read()

Frida是一个强大的动态分析工具,可以用于对应用程序进行hookFrida提供了多种hook方式,包括在应用程序启动前注入代码、通过USB连接和远程连接等。通过在应用程序启动前注入代码,可以在应用程序启动时即实现hook的效果。可以使用frida.get_usb_device()方法连接待调试的USB设备,并使用frida.get_device()方法指定调试的设备。此外,也可以通过远程连接方式进行hook使用frida -U -f 包名 -l xxx.js --no-pause指令进行注入。以上是使用Frida进行hook的一些基本操作方式。需要根据具体的场景和需求选择合适的方法和参数进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Frida hook零基础教程](https://blog.csdn.net/cyjmosthandsome/article/details/120906998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [pythonfrida安卓逆向之hook大法好](https://blog.csdn.net/weixin_51111267/article/details/125109497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值