【问题标题】:how to edit dll archives?如何编辑dll档案?
【发布时间】:2015-03-10 08:14:19
【问题描述】:

好的,所以我对 DLL 不太了解。但我需要编辑其中一些。那些看起来像存档文件的文件。 如:firefox的xul.dll、windows/twain_32.dll

当我尝试在 .NET Reflector 中打开它们时,它无法打开它们。这里的一个非常不受欢迎的答案让我意识到它们可以用 7zip 打开,并且里面似乎有文件。 我可以提取文件,但不能编辑 dll,而且我不知道如何创建这样的 dll。我没有visual c++ 或basic,我不知道我是否可以使用它们。

先谢谢了,不然怎么说

【问题讨论】:

    标签: dll edit archive


    【解决方案1】:

    一个dll文件通常包含程序代码(即:你不容易理解的二进制代码)。一些 dll 文件还可能包含资源,有时可以使用资源编辑器(如 ResourceHacker)进行编辑。

    dll 文件不是档案,它们的主要用途不包括保存文件。资源通常是相当小的数据元素,例如图标。

    编辑:如果您在 7zip 中打开一个 dll 文件,您将看到一些虚拟文件(它们不是真实文件,而是二进制对象文件的部分,例如参见 symbol table and relocation table in object file)以及一个虚拟文件夹 .rscs( “资源”的缩写),其中包含您可以使用资源编辑器编辑的上述资源。同样,请记住这些不是文件。 7zip 仅以您可能想到的文件方式显示它们。

    .text.data.reloc 内部的目标代码包含二进制程序代码和初始化数据以及重新分配表。除非您使用反汇编程序,否则编辑这些信息是没有意义的,能够理解生成的汇编代码,了解反汇编的陷阱,进行有意义的更改并能够重新组装代码。

    即使你这样做了,你也不会将反汇编程序应用于整个目标文件而不是单个部分。

    【讨论】:

    • 我尝试使用资源黑客,但如果我没有遗漏任何内容,它只能编辑 dll 内的 .rsrc 文件夹中的文件。尝试过其他喜欢的人,他们也这样做
    • 正如我所说,dll 文件不是档案,而是程序代码。您要修改什么类型的数据?
    • 例如,当使用 7zip 打开时,我想修改 dll 中的单个文件。我可以使用十六进制编辑器编辑 dll,但我无法区分任何东西。我不能用 .NET 反射器之类的打开它。
    • 它们可以用 7zip 解压缩,即使它们不是文件。所以如果我可以在从它们中删除或编辑它们后将它们编译回 dll 中,它们应该可以工作,对吗?在这些情况下如何实际使用反汇编程序?正如我所写,它们无法使用 .NET 反射器、ILSpy 和类似程序打开。
    • 如果您不知道如何使用反汇编程序,您将无法理解它的输出。我也不这样……对不起。
    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-30
    • 2015-06-27
    • 1970-01-01
    相关资源
    最近更新 更多