吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 465|回复: 5
收起左侧

[求助] Java 有什么工具能查看内存中的字符串?

[复制链接]
yxm9264 发表于 2024-7-17 09:55

通dnSpy的内存搜索去除Spire.XLS的PDF水印

https://www.52pojie.cn/thread-1685331-1-1.html

看这个贴有感,.net有神器可以直接看内存的字符串,还有直接修改编译后的代码,Java这边有类似的工具嘛?jd-gui只能看代码不能改。。。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

网瘾少年徐志摩 发表于 2024-7-17 11:40
用arthas
sincek 发表于 2024-7-17 14:26
riverker 发表于 2024-7-22 09:40
编译后的字节码文件没法修改,除非你反编译之后把修改后的代码再编译成字节码放进JVM里。查看的话用arthas工具就可以,支持方法变量切入和替换。
zeroconf 发表于 2024-7-23 14:51

在 Java 中查看内存中的字符串可以使用多种工具和方法。以下是一些常用的工具和方法:

1. 使用 JDK 自带工具
JVisualVM
JVisualVM 是 JDK 自带的监视和故障排除工具,能查看应用程序的内存使用情况,包括堆中的对象。

启动 JVisualVM(在 JDK 的 bin 目录中找到 jvisualvm 可执行文件)。
连接到运行中的 Java 应用程序。
使用“堆转储”功能,导出堆转储文件。
分析堆转储,查找内存中的字符串。
JConsole
JConsole 也是 JDK 自带的监视工具,虽然不如 JVisualVM 功能全面,但可以用来监视内存使用情况。

启动 JConsole(在 JDK 的 bin 目录中找到 jconsole 可执行文件)。
连接到运行中的 Java 应用程序。
监视内存使用情况。
2. 使用第三方工具
YourKit Java Profiler
YourKit 是一个强大的 Java 分析工具,能够深入分析 Java 应用程序的内存使用情况。

下载并安装 YourKit Java Profiler。
启动 YourKit,并连接到运行中的 Java 应用程序。
使用内存分析功能,查看内存中的字符串。
Eclipse Memory Analyzer (MAT)
MAT 是一个强大的内存分析工具,特别适合分析大型堆转储文件。

下载并安装 Eclipse MAT。
导出 Java 应用程序的堆转储(可以使用 JVisualVM 或者其他工具)。
在 MAT 中打开堆转储文件,分析内存中的字符串。
3. 使用编程方法
你也可以在代码中使用一些编程方法来查看内存中的字符串。例如,使用 Instrumentation API 获取对象的大小,或者编写自定义的内存监视工具。

示例代码(使用 Instrumentation 获取对象大小):
java
复制代码
import java.lang.instrument.Instrumentation;

public class ObjectSizeFetcher {
    private static Instrumentation instrumentation;

    public static void premain(String args, Instrumentation inst) {
        instrumentation = inst;
    }

    public static long getObjectSize(Object o) {
        return instrumentation.getObjectSize(o);
    }

    public static void main(String[] args) {
        String exampleString = "Hello, World!";
        System.out.println("Size of string: " + getObjectSize(exampleString) + " bytes");
    }
}
要使用这个代码片段,需要配置 MANIFEST.MF 文件,并编译为代{过}{滤}理 JAR 文件。

4. 使用 JVM 参数
通过添加一些 JVM 参数,也可以在启动应用程序时获取内存信息:

sh
复制代码
java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof -jar your-application.jar
这将在发生内存溢出时自动生成堆转储文件,然后可以使用上述工具进行分析。

还可以使用 jprofile 等工具
bdpingguo 发表于 2024-8-2 23:56
学习了,新知识
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-9-8 09:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表