重命名win32api函数以进行模糊处理 < > C++中可以重命名Win32 API函数吗?

重命名win32api函数以进行模糊处理 < > C++中可以重命名Win32 API函数吗?,c++,windows,winapi,header-files,C++,Windows,Winapi,Header Files,我很好奇,因为我想混淆程序的函数名 我对任何可以重命名的方法都持开放态度 假设我有一个函数: somewin32apifunc(); 如何将其重命名为: renamedwin32apifunc(); 您不能在中重命名函数,但可以通过在kernel32.dll、user32.dll等上调用和自己来完全绕过它。然后,您可以通过返回的函数指针调用Win32 API函数 这样,只需导入的两个函数将是LoadLibraryA和GetProcAddress 这将使对可执行文件进行反向工程变得更加困难(但

我很好奇,因为我想混淆程序的函数名

我对任何可以重命名的方法都持开放态度

假设我有一个函数:

somewin32apifunc();
如何将其重命名为:

renamedwin32apifunc();

您不能在中重命名函数,但可以通过在kernel32.dll、user32.dll等上调用和自己来完全绕过它。然后,您可以通过返回的函数指针调用Win32 API函数

这样,只需导入的两个函数将是LoadLibraryA和GetProcAddress

这将使对可执行文件进行反向工程变得更加困难(但绝非不可能!)


有关保护可执行文件不受逆向工程影响的更多一般信息,请参阅。

在“重命名”下您的意思是什么?我进行了编辑以表示我正在查找的内容。您可以使用宏(
#define
)或者函数指针。如果有人能提供一个工作示例/答案,我会接受。你是说混淆你的源代码吗?或者更确切地说,是生成的.exe文件的内容,因此无法如此轻松地对其进行反汇编(即函数导入表等)?@red:.@IInspectable:感谢您提供该链接。这使我省去了写一个例子的时间。修改该示例所需的全部内容是,“MyPuts.dll”必须重命名为“kernel32.dll”或“user32.dll”或导出Win32 API函数的任何dll,“MyPuts”必须重命名为函数名,例如“GetWindowTextA”。另一件必须更改的事情是“\u cdecl”必须更改为“\u stdcall”,因为Win32 API对几乎所有函数调用都使用该调用约定。您还需要提供正确的函数指针签名。对于x64,Windows的ABI只有一个没有名称的函数。虽然您可以在以x64(或ARM)为目标时使用,但它会被默默地忽略。@Redslev:在各个Windows API函数的文档中,函数总是写入存储它的DLL。