bash文件包含可执行文件/二进制代码

吉姆

我找到了这个工具,当我下载它时,它是一个包含二进制代码的bash可执行文件。
首先,我不知道这是可能的。有谁知道这是谁可以做到的?而且我不确定这通常有多安全,因为我真的不确定bash文件包含什么

斯蒂芬·基特

这是一个独立的Java程序,它依赖于一些“技巧”:

  • Java程序可以打包为JAR文件,JAR文件是包含清单(META-INF/MANIFEST.MF)的ZIP文件,该清单指定了要启动的Java类。
  • java -jar给定一个JAR文件,它将查看清单并启动相应的类,并从JAR文件和Java运行时加载任何其他必需的资源(也可以指定要运行的另一个类,但这在此无关紧要);
  • ZIP文件可以以任意数据开头;这就是自解压可执行文件的工作方式(可执行的ZIP文件,它们在运行时会自行提取)。

svg2pngJAR文件也是如此,但是带有前置的shell脚本:

#!/bin/sh

exec java -Xmx1G -jar "$0" "$@"

运行时,它将运行一个外壳,然后将其替换为,java -Xmx1G -jar并将其替换为“脚本”的名称(svg2png使用任何路径)以及所有参数。-Xmx1G设置堆大小,并-jar告诉JVMsvg2png在这种情况下“运行”给定的JAR文件其余的svg2png是JAR文件。特别是,它包含以下清单:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: sterlp
X-Compile-Target-JDK: 1.8
X-Compile-Source-JDK: 1.8
Created-By: Apache Maven 3.3.3
Build-Jdk: 1.8.0_51
Main-Class: org.sterl.svg2png.Main

这指示JVM运行org.sterl.svg2png.Main该类,从而启动程序。

您将在Wikipedia上找到有关ZIP格式的更多详细信息,特别是结构说明,该结构说明显示了该格式如何在文件开头(以及其他位置)允许任意数据。ZIP文件由其“中央目录”标识,该目录位于文件的末尾

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

包含二进制可执行文件的Bash脚本

来自分类Dev

在自包含的可执行文件中提取二进制文件的位置

来自分类Dev

在Linux中从可执行文件到机器代码的二进制执行步骤

来自分类Dev

Android:在AOSP版本中包含su二进制可执行文件

来自分类Dev

如何将机器代码转换为二进制可执行文件?

来自分类Dev

如何将机器代码转换为二进制可执行文件?

来自分类Dev

Bash:将原始二进制变量用作可执行文件吗?

来自分类Dev

与位置无关的可执行文件:什么是“主要可执行二进制文件”?

来自分类Dev

漏洞扫描程序会扫描源代码还是可执行文件(二进制文件)?

来自分类Dev

可执行文件与二进制文件..它们如何工作?

来自分类Dev

如何知道我的二进制可执行文件的内存占用量

来自分类Dev

将参数传递给python二进制可执行文件

来自分类Dev

从JAR为AWS Lambda运行二进制可执行文件

来自分类Dev

UiPath进程可以转换为二进制可执行文件吗?

来自分类Dev

无法在Ubuntu 12.04上运行二进制可执行文件

来自分类Dev

从Debian到Ubuntu的二进制可执行文件?

来自分类Dev

为什么可执行文件需要二进制格式规范?

来自分类Dev

使用LLVM工具将二进制数据嵌入可执行文件

来自分类Dev

可执行文件上的通配符(二进制)

来自分类Dev

在Mac上将Python3编译为二进制可执行文件

来自分类Dev

如何通过指令读取二进制可执行文件?

来自分类Dev

如何在Mac OS X的可执行文件中嵌入二进制文件的内容?

来自分类Dev

是否可以将可执行文件/二进制文件(已构建)作为unikernels运行?

来自分类Dev

使用依赖性pandoc-citeproc在Haskell中构建独立的二进制可执行文件

来自分类Dev

如何在目录中递归查找所有二进制可执行文件?

来自分类Dev

如何恢复正在运行的进程被删除的二进制可执行文件

来自分类Dev

将 C/C++ 二进制可执行文件作为 docker 容器运行

来自分类Dev

在 x86_64 系统上运行 x86-64 可执行文件无法执行二进制文件:Exec 格式错误

来自分类Dev

可执行文件(二进制文件)的标准命名惯例,以及如何判断文件是否具有不可打印的字符?

Related 相关文章

  1. 1

    包含二进制可执行文件的Bash脚本

  2. 2

    在自包含的可执行文件中提取二进制文件的位置

  3. 3

    在Linux中从可执行文件到机器代码的二进制执行步骤

  4. 4

    Android:在AOSP版本中包含su二进制可执行文件

  5. 5

    如何将机器代码转换为二进制可执行文件?

  6. 6

    如何将机器代码转换为二进制可执行文件?

  7. 7

    Bash:将原始二进制变量用作可执行文件吗?

  8. 8

    与位置无关的可执行文件:什么是“主要可执行二进制文件”?

  9. 9

    漏洞扫描程序会扫描源代码还是可执行文件(二进制文件)?

  10. 10

    可执行文件与二进制文件..它们如何工作?

  11. 11

    如何知道我的二进制可执行文件的内存占用量

  12. 12

    将参数传递给python二进制可执行文件

  13. 13

    从JAR为AWS Lambda运行二进制可执行文件

  14. 14

    UiPath进程可以转换为二进制可执行文件吗?

  15. 15

    无法在Ubuntu 12.04上运行二进制可执行文件

  16. 16

    从Debian到Ubuntu的二进制可执行文件?

  17. 17

    为什么可执行文件需要二进制格式规范?

  18. 18

    使用LLVM工具将二进制数据嵌入可执行文件

  19. 19

    可执行文件上的通配符(二进制)

  20. 20

    在Mac上将Python3编译为二进制可执行文件

  21. 21

    如何通过指令读取二进制可执行文件?

  22. 22

    如何在Mac OS X的可执行文件中嵌入二进制文件的内容?

  23. 23

    是否可以将可执行文件/二进制文件(已构建)作为unikernels运行?

  24. 24

    使用依赖性pandoc-citeproc在Haskell中构建独立的二进制可执行文件

  25. 25

    如何在目录中递归查找所有二进制可执行文件?

  26. 26

    如何恢复正在运行的进程被删除的二进制可执行文件

  27. 27

    将 C/C++ 二进制可执行文件作为 docker 容器运行

  28. 28

    在 x86_64 系统上运行 x86-64 可执行文件无法执行二进制文件:Exec 格式错误

  29. 29

    可执行文件(二进制文件)的标准命名惯例,以及如何判断文件是否具有不可打印的字符?

热门标签

归档