在 Frida 中迭代集合——创建一个迭代器

Iterate over collection in Frida - Creating an iterator

我在 Frida 中 hook 了一个 Java 方法,它看起来像

public ABC setSomething(Collection<RandObject> things) {
  this.things = new ArrayList(things);
  return this;
}

在 javascript 中,我能够记录 things 参数并打印出 RandObjects。我还可以执行 size() 并获取内部元素的总数。

我尝试迭代集合所做的任何操作都不起作用。您不能使用 .get(X)[X] 访问元素。我无法执行 Array.from,因为 Frida 似乎没有可用的。我相信我需要创建一个迭代器才能正确执行此操作。我该怎么做?

我一直在尝试实例化 Java.use("java.util.Iterator") 但卡住了。

想通了:

var iter = things.iterator();
while(iter.hasNext()) {
  console.log(iter.next());
}