【问题标题】:Is it possible to revert compiled shell code?是否可以还原已编译的 shell 代码?
【发布时间】:2014-02-13 05:45:17
【问题描述】:

我有这个运行正确的 shell 脚本。但是,文件的内容是……

3b33 8963 9a9d b0b2 98f7 8f3a cd9d 6067
b09d ae7b a351 639e 18f1 5c69 58ec 9343
512c c449 ebc0 cb64 7712 3335 2db2 b6f6
e4f7 65e6 48b1 a145 f270 1475 f062 f548
8d0e 14ec 1ca1 cd4e 6221 55fe c25b b7f8
8814 759b 11c3 3def 6b29 1fee 34fe 13fb
ee2c 3618 87af a6fc 3f5e 43b0 f885 6b6f
7aa2 9328 4f0b a2a2 f2ea cd9b 6039 b465

是否可以将其逆向工程为正常的 shell 代码,以便我可以调整逻辑?

【问题讨论】:

  • 这是整个文件吗?如果不是太大,你能把它作为od -t x1的输出发布吗?另外,你在什么上运行它?
  • 文件的一部分 :( 文件有 650000+ 行。在 MacOSX 上运行它
  • 代码有什么作用?可能有一个开源替代方案。
  • 该文件是实际脚本吗?该文件是否包含 ASCII 十六进制数字和空格,还是二进制文件的可读表示? file 命令对文件有什么看法?你知道它是用什么制作的吗?

标签: macos bash shell


【解决方案1】:

从文件大小和十六进制转储来看,这不再是脚本了。它已被such as this one 工具编译成二进制形式,可能已加密,并且可能与它所依赖的所有二进制文件捆绑在一起。

如果这只是一个obfuscated script,它会更容易逆转。就目前而言,它仍然是可行的,但需要更多的合格努力。根据二进制文件的性质,重写它可能更明智(阅读:更便宜),让原作者根据您的需要对其进行修改,或者编写位于此二进制文件和您的数据之间的中间件以进行额外处理。

【讨论】:

    【解决方案2】:

    我会说你能够做到这一点的机会很小。我所知道的所有 bash 到二进制编译器都会加密代码,其唯一目的是防止人们对代码进行逆向工程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-14
      • 1970-01-01
      • 1970-01-01
      • 2021-02-17
      • 2010-09-13
      • 1970-01-01
      • 2012-08-09
      相关资源
      最近更新 更多