我有一个没有源代码的编译后的dll文件(dll二进制文件)。我必须从这个DLL删除一些功能。 Dll是用C++编写的。如何从DLL二进制文件中删除函数
例如,我有Math.dll其中包含3个功能:
int Func1(int x);
int Func2(int x, int y);
double Func3(double x, double y);
我需要新的dll文件只有一个功能:
int Func1(int x);
我的一切。得到的是Math.dll - 一个二进制dll文件。
任何工具或任何方法来做到这一点?
更新
我需要删除的,因为几个要求一些功能:
- 新的DLL只包含功能我的应用程序需要
- 新的DLL大小必须降低
为什么你必须删除这些功能?那么,您可以更改标题,以免从客户端代码中看到它们。但以你要求的方式改变二进制文件是不可能的。 –
我已更新我的问题。可以使用asm和低级编程,但我正在寻找更简单和“高级”解决方案。 –
常见的过程是从源代码重建DLL。 DLL是一个常规的可执行文件,因此它包含标题,代码,数据和重定位,并且从中间删除一部分将不起作用。您可能会将其与* library *文件混淆。 – usr2564301