java - 确定二进制文件的环境和版本
问题描述
我有一些二进制文件,我怀疑是用 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,如果确实如此 - 它是从 enamorment 中获取它还是硬编码。我的工具使用其他工具,因此其中一个可能使用 Java。我有一个特殊的工具(我们称之为toolX
),它在运行时跟踪所有被触摸的文件toolA
。从输出中,我发现 Java 来自我所说的二进制文件。我发现它使用了,Java1.6
但我不确定它是来自我的环境还是硬编码。另外,我无法检查它是否是硬编码的,因为它是一个二进制文件。该怎么办?
解决方案
推荐阅读
- selenium-webdriver - 无法从 Selenium 中的日期选择器中选择日期
- r - R中的多标准决策方法
- docker - RabbitMQ 集群:无法将从节点加入到主节点
- c++ - 我应该包含谷歌测试的头文件或源文件吗?
- highcharts - 如何在 Highcharts 中创建规范的 3d 图?
- python - 如何将一维信号转换为二维信号?
- node.js - 如果与 bluebird map 函数一起使用,Iteratee 函数会在 javascript 中丢失对此对象的引用
- angular - Angular 8 - 构建生产路线不起作用
- reactjs - Reactjs 中的动画
- python - statsmodels anova_lm 是否需要与 scipy f_oneway anova 相同的假设?