【问题标题】:How to fix an error in dll file如何修复dll文件中的错误
【发布时间】:2013-11-05 20:20:44
【问题描述】:

1) 我正在尝试使用 Hxd 编辑器打开 dll 文件,但右侧有非可读文本

2) 所以我正在尝试使用 xextool 解决这个问题,但是当我执行 dll 文件时,我在读取 dll 时遇到错误

我能做什么?

它是一个由 UPX 0.80 - 1.24 DLL 打包的 .dll -> Markus & Laszlo - 我在谷歌上找不到这个,有人知道如何解决这个问题吗?

【问题讨论】:

  • 如果您希望使用十六进制编辑器修复已编译的代码,我猜您应该确切地了解您在做什么。 DLL有什么问题,为什么不能重新编译?
  • 我在 xextool 上遇到错误 - 读取 bfmod.dll 时出错,我在互联网上尝试了很多工具仍然没有运气,首先我需要解密代码,这就是我使用 xextool 的原因,然后在十六进制编辑器中查看它,并保存更改,但由于错误我不能这样做,而且我在使用 xextool 时在我的计算机中的所有 dll 上都收到此错误,为什么会这样,因为在教程中一切正常
  • 您在 Google 上找不到它?你试过“Markus & Laszlo”还是“UPX”?
  • 不,没找到,很遗憾
  • xextool 是一个用于处理 .xex 文件(加密的 XBox 360 exe)的工具。它不太可能对 Windows DLL 做任何有用的事情。你确定你知道你要做什么吗?

标签: c++ assembly dll


【解决方案1】:

一般来说,发布的代码没有符号信息。当您打开已发布的 DLL 并使用十六进制编辑器查看它时,如果文本是字符串文字,您可能会看到文本。

要查看汇编语言,您需要在调试器中打开 DLL 或将其传递给可以将 DLL 可执行代码转换为汇编语言的工具。

使用十六进制编辑器修改可执行文件或 DLL 充其量是困难的。您可以轻松更改常量并修改指令。但是,插入任何新代码或数据都会增加操作的复杂性。您可能需要移动代码,重新计算分支偏移量,并可能更改指令加载数据的地址。

通常,最好的方法是获取 DLL 的源并重新构建它。或者向源所有者提交问题报告并等待新版本。

您发布此问题的事实表明您没有成功修改 DLL 的经验。所以走另一条路并重建它。

【讨论】:

  • 我只需要修改 dll 中的 ip 地址,我已经尝试在程序集编辑器中运气好,但没有找到它,使用 IDA PRO
  • IP 地址可以以多种方式编码,二进制或文本,或者更可能是要使用的服务器名称。与此服务器建立什么样的连接?
  • 我不知道,我只有dll文件,不知道用什么编辑器或者程序来解决这个问题,可以推荐一下吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-20
  • 2021-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多