我用Frida和重载函数调试了一个android应用程序,该函数返回java.util.List<SomeObject>

我想从列表中删除函数返回的第一个元素.

我该怎么做?

Java.perform(function x() {
    
    var my_class = Java.use("a.b");
    my_class.c.overload().implementation = function () { 
        var s= this.c(); // THE FUNCTION RETURN java.util.List<SomeObject>
        //HERE I WANT TO REMOVE THE FIRST ELEMENT IN S
        return s;
        
    };
});

以下是c个函数:

public List<SomeObject> c() {
        return this.c;
    }

推荐答案

你可以先创建一个变量,然后用s个方法来调用它.

如果列表c()返回值是可变的,则以下代码有效:

let s = this.c(); 
let list = Java.cast(s, Java.use("java.util.List"));
list.remove(0);
return list;

如果返回的列表是不可变的,则需要创建一个新的可变数组和delete-then-first元素:

let s = this.c(); 
let list = Java.cast(s, Java.use("java.util.List"));
let newList = Java.use("java.util.ArrayList").$new(list);
newList.remove(0);
return newList;

可变列表是例如ArrayListLinkedList.例如,通过List.of(...) Arrays.asList(...)、用Collections.unmodifiableList()包装列表或通常通过stream/lambda表达式创建不可变.

Javascript相关问答推荐

Bootstrap动态选项卡在切换选项卡后保持活动状态,导致元素堆叠

Cookie中未保存会话数据

如何在Javascript中的控制台上以一行形式打印循环的结果

Next.js(react)使用moment或不使用日期和时间格式

WebRTC关闭navigator. getUserMedia正确

Angular 17—每当一个布尔变量变为真时触发循环轮询,只要它保持为真

在运行时使用Next JS App Router在服务器组件中运行自定义函数

使用领域Web SDK的Vite+Vue应用程序中的Web程序集(WASM)错误

如何在Node.js中排除导出的JS文件

在css中放置所需 colored颜色 以填充图像的透明区域

在FAQ Accodion应用程序中使用React useState时出现问题

如何在独立的Angular 应用程序中添加Lucide-Angel?

Django模板中未加载JavaScript函数

AstroJS混合模式服务器终结点返回404

material UI自动完成全宽

使用jQuery每隔几秒钟突出显示列表中的不同单词

JQuery-无法 Select 使用elementor添加的元素的值

Qualtrics联合实验脚本随机化条件

V-如果使用数组[vue3]中的布尔结果

Tinymce CREATE COMMENT函数不读取更新状态