我有一些Binary文件,我怀疑其中是用Java创建的。有没有办法找出哪个环境创建了该文件(例如,如果是Java或gcc)。如果它是用Java创建的,我如何确定Java的版本。
我知道file
命令,我得到的输出是:
ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped
说的不多。因此,我使用了ldd
命令:
linux-vdso.so.1 => (0x00007ffff7ffe000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007ffff7dbf000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007ffff7bba000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007ffff79b7000)
librt.so.1 => /lib64/librt.so.1 (0x00007ffff77ae000)
libuuid.so.1 => /lib64/libuuid.so.1 (0x00007ffff75a8000)
libm.so.6 => /lib64/libm.so.6 (0x00007ffff732d000)
libc.so.6 => /lib64/libc.so.6 (0x00007ffff6fb1000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
仍然没有告诉我太多。还有其他方法吗?
EDID::我认为我的问题确实符合“ XY问题”。我将尝试了解该问题。我正在尝试确定我的工具(我们称其为toolA
)是否使用Java,是否使用Java-是从迷恋中获取它还是对其进行硬编码。我的工具使用其他工具,因此其中一个可能使用Java。我有一个特殊的工具(叫它toolX
),它在toolA
运行时跟踪所有被触摸的文件。从输出中,我发现Java来自我讨论过的二进制文件。我发现它使用Java1.6
,但不确定它是否来自我的环境或是否经过硬编码。另外,我无法检查它是否为硬编码,因为它是二进制文件。该怎么办?