frida 将日志保存到txt文件中


function writeFile(content) {
     var file = new File("/data/user/0/包名/txt_log.txt","a+");//a+表示追加内容,此处的模式和c语言的fopen函数模式相同
     file.write(content+"\n");
     file.flush()
     file.close();
}

// 创建一个 Java 方法的处理函数
function hookMethod() {

//    var my_or = Java.use("or0")
   Java.use("xxx").method.overload('android.content.Context').implementation = function(arg1) {
        console.log("日志false--1")
        return false
   }

   Java.use("xxx").method.overload('android.content.Context').implementation = function(arg1) {
        console.log("日志返回false--1")
        return false
   }


    // 将打印日志,保存到集合中,最后将集合写到txt文档中,这样才能获取到我们需要的关键词
  Java.use("com.xxx.xxx").method.overload('java.lang.String').implementation = function(arg1) {
        var jiemiStr = this.method(arg1)
        var str = "参数=" + arg1 + " 值= " + jiemiStr;
        console.log(str)
        writeFile(str)

        return jiemiStr
   }

}

// Frida 脚本的入口点
Java.perform(function() {
    console.log("Inside-java-perform-function");
    hookMethod();
});

import subprocess
import sys
import time

import frida

from pip._vendor.distlib.compat import raw_input


def cmd(cmd):
    subprocess.run(cmd, shell=True)

def my_message_handler(message , payload): #定义错误处理
	print(message)
	print(payload)

if __name__ == '__main__':
    # cmd('adb shell "su -c /data/local/tmp/frida-server-15.2.2-android-arm64 &"')  #开启手机端frida-server

    pkg="com.xxx"   # 包名

    device = frida.get_usb_device()
    pid = device.spawn(pkg)
    print("pid-->" + str(pid))
    device.resume(pid)
    print("resume")
    # time.sleep(1)
    session = device.attach(pid)
    print("attach")
    with open('./上面的js.js', 'r', encoding='utf-8') as file:
        script_code = file.read()

    script = session.create_script(script_code)
    script.on("message", my_message_handler)  # 调用错误处理
    script.load()
    # 脚本会持续运行等待输入
    raw_input()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值