您能从以下命令DUMPBIN /SYMBOLS命令的输出导出函数声明吗?我运行了以下命令:DUMPBIN /SYMBOLS libinfinityhook.lib,并从转储中获得以下信息:
IfhInitialize@@YAJP6AXIPEAPEAX@Z@Z (long __cdecl IfhInitialize(void (__cdecl*)(unsigned int,void * *)))
上述输出的函数声明是什么?也许如下所示:
NTSTATUS IfhInitialize(
_In_ INFINITYHOOKCALLBACK InfinityHookCallback);假设以下类型为冒充者:
typedef void (__fastcall * INFINITYHOOKCALLBACK)(_In_ unsigned int SystemCallIndex, _Inout_ void** SystemCallFunction);发布于 2021-04-26 11:34:42
Microsoft附带了一个名为undname.exe的实用程序,它将将大多数修饰的名称反转为未修饰的名称。
GNU拥有c++filt,它将对GCC的名字进行同样的处理。
LLVM具有llvm-cxxfilt的符号名解模器,它与GNU c++filt兼容,因为LLVM和GCC使用相同的名称损坏方案。
与此相关的是,Boost demangle允许从typeid name()中拆下符号名。请记住,typeid name()不是由C++标准决定的,而是编译器特定的。因此,它不是可移植的,也不适合跨平台序列化/反序列化。天哪。
https://stackoverflow.com/questions/67257340
复制相似问题