frida hook构造函数

frida hook这种写法的话 进程必须是打开状态

import frida, sys
‘‘‘
我们要hook构造函数,和普通的函数是有区别的,要用$init这种形式,并且要return this.$init(arg1,arg2)调用原始的函数实现
‘‘‘
jscode = """
Java.perform(function () {
    var utils = Java.use(‘com.xiaojianbang.app.Utils‘);
    utils.getCalc.implementation = function (a, b) {
        console.log("Hook Start...");
        send(arguments[0]);
        send(b);
        send("Success!");
        var num = this._getCalc(100, 200, 300);
        send(num);
        return num;
    }

    var money = Java.use(‘com.xiaojianbang.app.Money‘);
    money.$init.implementation = function (a, b) {
        console.log("Hook Start...");
        send(arguments[0]);
        send(b);
        send("Success!");
        return this.$init(10000, "美元");
    }

});
"""

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

process = frida.get_remote_device().attach(‘com.xiaojianbang.app‘)
script= process.create_script(jscode)
script.on("message", message)
script.load()
sys.stdin.read()


原文地址:https://blog.51cto.com/haidragon/2396978

时间: 2024-10-11 23:06:59

frida hook构造函数的相关文章

Frida HOOK微信实现骰子作弊

由于微信摇骰子的功能在本地进行随机后在发送,所以存在可以hook掉判断骰子数的方法进行修改作弊. 1.frida实现hook java层函数1)写个用来测试的demo,当我们点击按钮的时候会弹出窗口显示数字.代码中我是传进的参数是4,显示为8. package com.example.fridatest; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import

frida Hook 重载方法

用overload("int") import frida, sys jscode = """ Java.perform(function () { var utils = Java.use('com.xiaojianbang.app.Utils'); utils.getCalc.implementation = function (a, b) { console.log("Hook Start..."); send(arguments

frida Hook对象参数函数

adb forward tcp:27043 tcp:27043adb forward tcp:27042 tcp:27042 import frida, sys jscode = """ Java.perform(function () { var utils = Java.use('com.xiaojianbang.app.Utils'); var money = Java.use('com.xiaojianbang.app.Money'); utils.test.over

frida hook so导出函数

只在4.4.4上运行成功7系统一直没成功,难受. # -*- coding: UTF-8 -*- import frida, sys jsCode = """ Java.perform(function(){ var nativePointer = Module.findExportByName("libhello.so", "Java_com_xiaojianbang_app_NativeHelper_add"); send(&quo

frida hook java原生算法同时打印调用堆栈

# -*- coding: UTF-8 -*- import frida, sys jsCode = """ function showStacks() { Java.perform(function () { send(Java.use("android.util.Log").getStackTraceString(Java.use("java.lang.Exception").$new())); }); } (function ()

解密SuperWebview的一种另类方法

解密SuperWebview的一种另类方法 什么是SuperWebview SuperWebview是APICloud官方推出的另一项重量级API生态产品,以SDK方式提供,致力于提升和改善移动设备Webview体验差的整套解决方案.APP通过嵌入SuperWebview替代系统Webview,即可在HTML5中使用APICloud平台现有的所有端API,以及包括增量更新.版本管理.数据云.推送云.统计分析.积木式模块化开发.所有已经聚合的开方平台服务等在内的云服务能力,增强用户体验,解决移动设

Android-Hook

Hook_Android Cydia HOOK 新建工程 在工程中找到 libs 文件夹,将 jar 包拷贝到文件夹中 设置 jar 包为依赖(类似在 c++中导入一个 lib,写了一个 #param comment(lib,"user32")) 在清单文件中指定权限和入口类 <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://sc

xposed代码示例

package com.example.xposedhook; import android.util.Log; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.XC_LoadPa

Android逆向之旅---Hook神器家族的Frida工具使用详解

一.前言 在逆向过程中有一个Hook神器是必不可少的工具,之前已经介绍了Xposed和Substrate了,不了解的同学可以看这两篇文章:Android中Hook神器Xposed工具介绍 和 Android中Hook神器SubstrateCydia工具介绍 这两篇文章非常重要一个是Hook Java层的时候最常用的Xposed和Hook Native层的SubstrateCydia,可以看我之前的文章比如写微信插件等都采用了Xposed工具,因为个人觉得Xposed用起来比较爽,写代码比较方便.