首页 > 其他分享 >hook脚本的编写

hook脚本的编写

时间:2023-08-16 16:01:13浏览次数:32  
标签:脚本 use Java log res console hook var 编写

1.hook_map

 var TreeMap = Java.use('java.util.TreeMap');
    var Map = Java.use("java.util.Map");

    TreeMap.put.implementation = function (key,value) {
        if(key=="data"){
            console.log(key,value);
        }
        var res = this.put(key,value);
        return res;
    }

2 hook_StringBuilder

 var StringBuilder = Java.use("java.lang.StringBuilder");
    
    StringBuilder.toString.implementation = function () {
        var res = this.toString();
        console.log(res); 
        return res;
    }

3 hook_base64

var Base64 = Java.use("android.util.Base64");

    Base64.encodeToString.overload('[B', 'int').implementation = function (bArr,val) {
        var res = this.encodeToString(bArr,val);
        console.log("加密了-->",res);
         console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
        return res;
    }

4.关于拦截器的hook

import frida
import sys

rdev = frida.get_remote_device()
pid = rdev.spawn(["com.hupu.shihuo"])
session = rdev.attach(pid)

scr = """
Java.perform(function () {
     var UpdateDialog = Java.use("com.azhon.appupdate.dialog.UpdateDialog")
   
    //hook替换
    UpdateDialog.show.implementation = function(){
    console.log("++++++++show来啦++++++++++++++");
    //this.show();
    } 

    var Builder = Java.use('okhttp3.OkHttpClient$Builder');
    Builder.addInterceptor.implementation = function (inter) {
        //console.log("实例化:");
        console.log(inter);
        console.log(JSON.stringify(inter));
        //console.log(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Throwable").$new()));
        return this.addInterceptor(inter);
    };
})
"""
script = session.create_script(scr)


def on_message(message, data):
    print(message, data)


script.on("message", on_message)
script.load()
rdev.resume(pid)
sys.stdin.read()

标签:脚本,use,Java,log,res,console,hook,var,编写
From: https://www.cnblogs.com/pdxt666/p/17635310.html

相关文章

  • linux ssh 免密脚本
    #!/bin/baship="$1"pawd="123qwe!@#"expect<<EOFsettimeout10spawnssh-copy-id-p60022root@${ip}expect{       "yes/no"{send"yes\n";exp_continue}       "password:"{send"${pawd}\n"......
  • SElinux 导致 Keepalived 检测脚本无法执行
    哈喽大家好,我是咸鱼今天我们来看一个关于Keepalived检测脚本无法执行的问题一位粉丝后台私信我,说他部署的keepalived集群vrrp_script模块中的脚本执行失败了,但是手动执行这个脚本却没有任何问题这个问题也是咸鱼第一次遇到,为了能让更多的小伙伴以后不会踩这个坑,便有了今......
  • Linux系统DD一键脚本
    使用脚本存在一定的风险,谨慎使用。重统重装之后,请重新设置密码。脚本介绍GitHub地址:GitHub-leitbogioro/Tools全自动无人值守安装;支持各主流VPS商家;系统支持情况:Debian12、KaliRolling、AlpineLinuxEdge、CentOS9stream、AlmaLinux9、RockyLinux9、Fedora3......
  • Linux之脚本的函数数组
    目录一、shell函数1.1函数的定义二、数组三、冒泡一、shell函数将命令序列按格式写在一起可方便重复使用命令序列shell函数的定义调用函数的方法注意事项直接写函数中调用函数直接写函数名同名函数后一个生效调用函数一定要先定义只要先定义了调用的其他......
  • 如何高效地编写Go单元测试
    前言单元测试是代码质量的保证,良好的单元测试不仅能够提前暴露代码问题,还极大便利了代码重构,它能保证代码重构前后功能保持一致,让重构活动能够顺利的进行下去。Go对单元测试的支持已经相当友好了,原生的标准库就已经支持了单元测试。在Go中编写单元测试也非常简单,Go认为以_test.g......
  • 学好Elasticsearch系列-脚本查询
    本文已收录至Github,推荐阅读......
  • Docker-compose容器服务异常重启脚本
    前言:有些企业可能并没有足够的能力或者没必要搭建(云上租用)一个K8S集群,会考虑使用Docker。公司今年有个项目,一部分服务就是使用原来的,改改配置就能用,然后再配合实际的场景再新上1、2个服务。在云上再租用一个K8S集群或者自己搭建一个K8S集群就显得尤为浪费。但是有几个都是之前的服......
  • 【腾讯云 Cloud Studio 实战训练营】在线 IDE 编写 canvas 转换黑白风格头像
    关于CloudStudioCloudStudio是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用CloudStudio时无需安装,随时随地打开浏览器就能在线编程。CloudStudio作为在线IDE,包含代码高亮、自动补全、Git集成、终端等IDE的基础功能,同时支持实......
  • () {}用法,Linux shell脚本编程时bad substitution解决办法
     首先,我们要理解badsubstitution的字面意思,它的字面意思是“替换错误”的意思。这种错误的原因呢,通常是我们编写脚本时“{}”和“()”错误使用导致的。比如应该用“()”时,我们用成了“{}”;应该用“()”时,用成了“{}”。 那么如何区分什么时候用什么类型的括号呢?${}中,大括号里......
  • unity学习笔记------游戏对象和脚本
    创建工程在开始使用Unity编辑器之前,我们需要首先创建一个项目。打开UnityHub,这个是Unity的启动程序和安装程序应用程序,你可以在其中创建或打开项目,安装Unity版本以及执行其他操作。创建新项目时,可以选择其Unity版本和模板。创建之后,它将添加到项目列表中,并在相应版本的Unity编......