【问题标题】:Understanding EXE Internals了解 EXE 内部结构
【发布时间】:2010-04-19 14:51:12
【问题描述】:

我试图安装一个在安装前需要序列号的 exe,供应商尚未提供给我们。

这让我开始思考是否有任何信息可以通过使用十六进制编辑器/VI/等查看 exe 获得?

使用VI查看exe,我可以看到一些纯文本部分,但是如果没有任何上下文,很难确定它指的是什么。

是否可以通过读取exe确定任何信息?

谢谢

【问题讨论】:

  • 当然可以通过在二进制编辑器中打开信息来确定信息。但是您要确定哪些信息?
  • 有一些方法,但您可能需要确保您被允许使用它们。 EULA 经常提到,禁止反编译、反汇编、逆向工程或以任何其他方式尝试通过分析程序的内脏来了解程序的功能。
  • 许多 EULA 不具有法律约束力。
  • 有PE编辑器可以查看大部分Windows EXE的PE结构。不,您通常无法通过查看 PE 结构获得序列号。
  • 假设我创建了一个 exe,并提示输入序列号,但丢失了它。我并不关心它的合法性,而是试图更好地理解 exe 格式,以及这是否可能,以及我该如何去做。

标签: windows unix executable exe


【解决方案1】:

一个体面的注册系统根本不会将预期的密钥嵌入到 EXE 中,而是需要一个由供应商私钥签名的代码。

如果系统已经被很好地实现(这是一个 if),那么在数学上使用除蛮力之外的任何其他方法是不可能找到密钥的。

【讨论】:

    【解决方案2】:

    从 exe 文件中获取一些信息的唯一方法是反汇编它并尝试理解反汇编程序返回给您的机器语言,它无法挽救任何原始 cmets 或变量名称。

    IDA 是一个杨树工具,有一个较旧的 free version 可用。它确实使任务更容易一些,但它并不能让您真正理解代码中实际发生的事情。

    如果它只是一种更简单的保护,您可能必须对检查代码进行逆向工程并尝试从中派生密钥。

    但由于等待或购买许可证可能会便宜得多,然后聘请经验丰富的程序员可能会花费数天时间才能获得结果,因此我建议您等待。

    【讨论】:

      【解决方案3】:

      Fravia 留下了反转信息的遗产(直到再次查找他才知道他已经去世了)。根据那个 wiki 页面,Fravia's reversing archive is here 的最后一个已知镜像。

      【讨论】:

        【解决方案4】:

        你需要的其实叫software cracking

        【讨论】:

          猜你喜欢
          • 2019-01-08
          • 2010-09-21
          • 2019-10-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-10
          • 1970-01-01
          相关资源
          最近更新 更多