从程序

时间:2016-08-31 16:30:18

标签: c dll disassembly

我试图效法克里斯卡巴斯基揭开的黑客拆解一书中的一个例子。示例如下:

#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放在另一个文件中并调用它但不起作用。为什么这不起作用?任何人都可以帮助我吗?

0 个答案:

没有答案