Index: loader/win32.c =================================================================== --- loader/win32.c.orig 2007-03-03 23:15:47.000000000 -0800 +++ loader/win32.c 2007-03-03 23:16:08.000000000 -0800 @@ -5006,6 +5006,8 @@ #define REMAP(X,Y,Z) \ {#X, Y, (void*)exp##Z}, +#define UNDEFF(X, Y) \ + {#X, Y, (void*)-1}, struct exports exp_kernel32[]= { FF(GetVolumeInformationA,-1) @@ -5167,6 +5169,10 @@ FF(VirtualProtect, -1) FF(EncodePointer,-1) FF(DecodePointer,-1) + UNDEFF(FlsAlloc, -1) + UNDEFF(FlsGetValue, -1) + UNDEFF(FlsSetValue, -1) + UNDEFF(FlsFree, -1) }; struct exports exp_msvcrt[]={ @@ -5251,7 +5257,7 @@ struct exports exp_user32[]={ FF(LoadIconA,-1) FF(LoadStringA, -1) - REMAP(LoadStringW, -1 LoadStringA) + REMAP(LoadStringW, -1, LoadStringA) FF(wsprintfA, -1) FF(GetDC, -1) FF(GetDesktopWindow, -1) @@ -5581,6 +5587,8 @@ { if(strcmp(name, libraries[i].exps[j].name)) continue; + if((unsigned int)(libraries[i].exps[j].func) == -1) + return NULL; //undefined func // printf("Hit: 0x%08X\n", libraries[i].exps[j].func); return libraries[i].exps[j].func; }