Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Java objects created from Frida are never garbage collected, leading to a guaranteed memory leak and eventual crash

未关闭
#235 1 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
java, javascript
领域
devtools

调研方向

首先,在 Frida REPL 中使用 Java.array、$dispose() 和 Runtime.gc() 复现分配循环。然后跟踪这些入口背后的 Java 对象生命周期,以确定为什么已 dispose 的数组仍然保持可达。完成的标准是,复现的数组可以被回收,并且重复分配不再导致报告中的内存增长或最终 OOM。

由索引模型根据 Issue 内容生成。

描述

In the example below, I allocate 1000 int[] objects, immediately calling $dispose() on each one. I then force garbage collection. These objects are never deallocated, as seen in the screenshot.

I have also tried setting the variable to undefined, calling delete foo, etc. In practice, such allocations will eventually cause an OOM exception, crashing the app I am attached to. No amount of memory pressure or GC invocations ever deallocates any of these objects.

$ frida -U -n TestApp
     ____
    / _  |   Frida 15.1.13 - A world-class dynamic instrumentation toolkit
   | (_| |
    > _  |   Commands:
   /_/ |_|       help      -> Displays the help system
   . . . .       object?   -> Display information about 'object'
   . . . .       exit/quit -> Exit
   . . . .
   . . . .   More info at https://frida.re/docs/home/
                                                                               
[Android Emulator 5554::TestApp]-> var foo;
[Android Emulator 5554::TestApp]-> for (let i = 0; i < 1000; i++) { foo = Java.array('int', [4,5,6]); foo.$dispose();}
[Android Emulator 5554::TestApp]-> var rt = Java.use('java.lang.Runtime');
[Android Emulator 5554::TestApp]-> rt.getRuntime().gc()
[Android Emulator 5554::TestApp]->

image

主要语言
JavaScript
星标
413
派生
173
PR 合并指标
30 天内没有已合并 PR

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

frida/frida-java-bridge 的其他 Issue

查看 frida/frida-java-bridge 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。