www.pudn.com > anti1.rar > anti1.cpp


#include  
 
#pragma comment(linker, "/subsystem:windows") 
#pragma comment(linker, "/entry:mydllmain") 
#pragma comment(linker, "/filealign:0x200") 
 
 
void anti() 
{ 
	__asm 
	{ 
		push 0 
		push 0 
		push 11h 
		push -2 
		mov eax, 0C7h 
		mov edx, esp 
		int 2Eh 
	} 
 
	__try 
	{ 
		__asm 
		{ 
			lea eax, back 
			push 0 
			push eax 
			mov eax, 0E5h 
			mov edx, esp 
			__emit 0x0F 
			__emit 0x34 
		} 
	} 
 
	__except (1) 
	{ 
		__asm mov edi, edi 
	} 
 
back: 
	__asm add esp, 14h 
	return ; 
} 
 
 
DWORD __declspec(naked) Is98() 
{ 
	__asm 
	{ 
		xor eax, eax 
		mov ax, cs 
		shr eax, 8 
		retn  
	} 
} 
 
BOOL APIENTRY mydllmain( HANDLE hModule,  
                       DWORD  ul_reason_for_call,  
                       LPVOID lpReserved 
					 ) 
{ 
    switch (ul_reason_for_call) 
	{ 
		case DLL_PROCESS_ATTACH: 
			__asm push esi 
			if (Is98() == 0) 
				anti(); 
			__asm pop esi 
			break; 
    } 
    return TRUE; 
}