编程-Xposed开发 如何修改通过参数传值的函数的参数?

问题描述

Xposed开发 如何修改通过参数传值的函数的参数?

如题,比如我要HOOK一个函数

其返回值是一个int类型,表示读取到byte[] b里面的内容的长度,而真正的内容在byte[] b里面,通过参数传递的。在函数执行前byte[] b是一个长度为1024的空数组。
执行后b读取到内容。
我想获取函数执行后b的内容并修改,但是失败了

按道理来说第一次的log应当能记录下函数执行后b的实际值,即函数所要传递的内容,但是得到的却是长度为1024的空数组。
第二次log确实得到了修改后的“read method was hooked!!!!”,但是在应用中调用这个方法时并没有显示这句话,和hook之前一样。
我的想法是xposed只保存了函数调用前的参数,函数调用后无法再对参数做出变更。
那么请问我该如何达到我的目的?

时间: 2024-11-03 13:25:29

编程-Xposed开发 如何修改通过参数传值的函数的参数?的相关文章

详解javascript函数的参数_javascript技巧

javascript函数可以用任意多个参数来调用,而不用管函数定义时指定了几个参数.因为函数是弱类型的,没有方法去声明它所期望的参数类型,并且给任何函数传递任何类型的值都是合法的. 1.Js函数可以传入不同的参数,如 function writeNString(strMsg){ document.write(strMsg + "<br>"); } 2.Js函数返回值,js函数可以将运行的结果返回,函数可以视为一个黑盒子,使用参数输入数据后产生所需的运行结果,如 functi

理解Python中函数的参数_python

 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码.默认参数 我们仍以具体的例子来说明如何定义函数的默认参数.先写一个计算x2的函数: def power(x

Oracle中自定义函数 无参数 输入参数 输出参数

-- 19-1:建立无参数的函数 CREATE OR REPLACE FUNCTION cur_datetime RETURN VARCHAR2 IS BEGIN RETURN TO_CHAR(sysdate, 'YYYY"年"MM"月"DD"日"HH24″时"MI"分"SS"秒"'); END; / -- 19-2:建立带有输入参数的函数 CREATE OR REPLACE FUNCTION g

Javascript函数的参数_javascript技巧

 本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘 函数的参数                      对于参数值,JavaScript不会进行类型检查,任何类型的值都可以被传递给参数.             对于函数参数,如果过少,没得到值的参数值为undefined,如果过多,多的会被忽略掉. //调用函数时传入的实际参数 function add(num1, num2) { return num1 + num2; } //一切正常的调用方式 console.info(add(1

编程-能帮我修改下代码吗?那fopen_s函数的参数

问题描述 能帮我修改下代码吗?那fopen_s函数的参数 解决方案 fopen_s(&fp,"c:\zi.txt","w");

PHP的面向对象编程:开发大型PHP项目的方法(二)(转载)

编程|对象|项目 PHP的面向对象编程:开发大型PHP项目的方法(二) 作者:Luis Argerich 译者:limodou "Another"类的对象现在拥有了父类(Something)的全部的数据成员及方法,而且还加上了自已的数据成 员和方法. 你可以使用 $obj2=new Something; $obj2->setX(6); $obj2->setY(7); PHP现在还不支持多重继承,所以你不能从两个或两个以上类派生出新的类来. 你可以在派生类中重定义一个方法,如

PHP的面向对象编程:开发大型PHP项目的方法(三)(转载)

编程|对象|项目 PHP的面向对象编程:开发大型PHP项目的方法(三) 作者:Luis Argerich 译者:limodou 重载(与覆盖不同)在PHP中不支持.在OOP中,你可以重载一个方法来实现两个或重多的方法具有相同 的名字,但是有不同数量或类型的参数(这要看语言).PHP 是一种松散类型的语言,所以通过类型重载不 起作用,然而通过参数的个数不同来重载也不起作用. 有时在OOP中重载构造函数非常好,这样你可以通过不同的方法创建对象(传递不同数量的参数).在PHP 中实现它的技巧是: --

PHP的面向对象编程:开发大型PHP项目的方法(五)(转载)

编程|对象|项目 PHP的面向对象编程:开发大型PHP项目的方法(五) 作者:Luis Argerich 译者:limodou 使用类进行数据存储 对于PHP和OOP一件非常好的事情就是,你可以很容易地定义一个类来操作某件事情,并且无论何时你想 用的时候都可以调用相应的类.假设你有一个HTML表单,用户可以通过选择产品ID号来选择一个产品.在数 据库中有产品的信息,你想把产品显示出来,显示它的价格等等.你拥有不同类型的产品,并且同一个动作 可能对不同的产品具有不同的意思.例如,显示一个声音可能意

shell处理文件-程序语言中使用 shell 怎么给其中参数传值呢

问题描述 程序语言中使用 shell 怎么给其中参数传值呢 其中initprocessID 是PID 进程号,有没有知道呢?我这样写的不行啊,怎么修改呢?如下: Shell "cmd.exe /c taskkill -pid initprocessID /f", vbHide 我用的是VB 写的,求指教,谢谢! 解决方案 可以用ShellExecute API Public Declare Function ShellExecute Lib "shell32.dll"