我有一个包含四个函数的DLL文件,我需要访问这四个函数,但它们没有名称,只是我知道的入口点。我必须弄清楚这四个功能的作用。
问题是,如何在C#(。Net)中调用这些未知函数?我怎样才能弄清楚他们的参数和返回值是什么?
DLL是Sndvolsso.DLL
。它的功能在互联网上无处可去。(除非你能找到它们)如果有人知道我可以用来读取参数和返回值的工具,那将非常有帮助。
答案 0 :(得分:2)
如果你的DLL是无人值守的: -
使用IDA
IDA中user32.dll的MessageBoxA示例: -
.text:77D6EA11
.text:77D6EA11 ; int __stdcall MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
.text:77D6EA11
答案 1 :(得分:2)
您还可以使用免费版IDA 5.0。
答案 2 :(得分:0)
参数/类型/签名信息不存储在非托管DLL文件中。您可以使用LoadLibrary
和GetProcAddress
以及使用序数来获取每个导出函数的地址。但你得到的只是地址;你应该知道如何恰当地调用这些函数。
它将帮助您了解函数在二进制/机器代码级别的工作方式以及堆栈的工作方式。
以下是您的选择:
否则你将不得不妥协:
sndvolsso.dll
的任何,那么即使你让它“正常”,一旦出现任何问题你就会迷失方向。但是想想看,你的问题确实没有意义。如果你不知道这些功能是什么,你怎么知道你需要它们?