确定环境和二进制文件的版本

时间:2019-06-03 16:54:52

标签: java linux ldd

我有一些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,但不确定它是否来自我的环境或是否经过硬编码。另外,我无法检查它是否为硬编码,因为它是二进制文件。该怎么办?

0 个答案:

没有答案