|
|
1
4
是的,你错过了很多。图书馆紧随其后 PE/COFF 格式,这是相当沉重的指针在整个文件。(例如,文件开头有一个表,指向文件中每个节的位置)。 在您编辑资源的情况下,如果您确保在编辑之后更正指向任何内容的指针和大小,就有可能在不破坏内容的情况下进行编辑,但我怀疑这是否容易。如果您正在编辑.text部分(即代码),那么我怀疑您是否能完成它,因为函数调用和跳转的操作数是相对于它们在代码中的位置的位置—您需要更新整个代码以考虑编辑。 克服这一问题的一种技术是“代码洞穴”,即用显式JMP指令替换现有代码的某个空位置(可以在运行时执行此操作,在您能够创建新内存的地方)-在您定义一些可以是任意长度的新代码的地方-然后您显式地将JMP返回到您调用from的地方(+5字节,比如JMP操作码+操作数)。 |
|
|
2
2
你要改的名字和旧名字一样长吗?如果不是,那么所有的偏移量都会发生偏移。有没有函数互相调用?这可能是另一个问题。获取源代码(如果项目不是内部的,则从项目网站获取,如果项目关闭,则从供应商获取)并在其中更改源代码,然后重新编译会更容易。我很好奇你为什么要改名字。 |
|
|
3
2
基本上,底线是你所做的总是会打破东西。如果你运气不好,它甚至可能会把它弄坏 真正地 |
|
|
4
2
库将由链接器编写以供链接器使用。它们遵循定义良好的格式,以便链接器能够轻松地进行写入和读取。他们不需要像编译器那样容忍人为输入。
你没有任何理由想这么做。如果是为了好玩,那就比你想象的要难。如果您有其他原因,最好获取源代码,或者让拥有源代码的人重命名并重新生成。 |
|
|
Guilherme Albertini · DLL中的类 8 年前 |
|
|
Naomi · C#dll资源文件更改语言 8 年前 |
|
|
AidanH · C#DLL语言翻译实现[关闭] 8 年前 |
|
|
subham · DLL函数调用不工作 8 年前 |
|
|
PixelThis · 为什么我的DLL要求我的程序有一个特定的名称? 8 年前 |
|
|
nemo · DLL的“好”调用约定是什么? 8 年前 |