我试图效法克里斯卡巴斯基揭开的黑客拆解一书中的一个例子。示例如下:
#include <stdio.h>
#include <windows.h>
__declspec(dllexport) void Demo()
{
#define PASSWORD_SIZE 100
#define PASSWORD "myGOODpassword\n"
int count=0;
char buff [PASSWORD_SIZE]="";
for(;;)
{
printf("Enter password:");
fgets(&buff[0], PASSWORD_SIZE-1, stdin);
if (strcmp(&buff[0], PASSWORD))
printf("Wrong password\n");
else break;
if (++count>2) return -1;
}
printf("Password OK\n");
}
main()
{
HMODULE hmod;
void (*zzz) ();
if ((hmod=LoadLibrary("crackme0x03.exe"))
&& (zzz=(void (*) ())GetProcAddress (hmod, "Demo")))
zzz();
else
printf("Error loading DLL\n");
}
此代码应存储在名为crackme0x03.c的文件中并进行编译。问题是,DLL不会加载。我甚至尝试将dll放在另一个文件中并调用它但不起作用。为什么这不起作用?任何人都可以帮助我吗?