Показать сообщение отдельно

  #10  
Старый 12.01.2010, 18:55
sn0w
Статус пользователя:
Регистрация: 26.07.2005
Сообщений: 568
С нами: 10943066

Репутация: 1236


По умолчанию

по паттерну например так

Код:
BOOL utilsCompareData(const BYTE* pData, const BYTE* bMask, const char* pszMask)
{
	for(;*pszMask; ++pszMask, ++pData, ++bMask)
		if(*pszMask == 'x' && *pData !=* bMask ) 
			return FALSE;
	return (*pszMask) == 0;
}

//////////////////////////////////////////////////////////////////////////
DWORD utilsFindPattern(DWORD dwAddress, DWORD dwLen, BYTE *bMask, char * pszMask)
{
	for(DWORD i=0; i < dwLen; i++)
		if(utilsCompareData((BYTE*)( dwAddress+i ), bMask, pszMask ))
			return (DWORD)(dwAddress + i);

	return 0;
}
dwDecode = utilsFindPattern( (DWORD)(pDosHdr)+pSecHdr->VirtualAddress, pSecHdr->SizeOfRawData,
(BYTE*)"\x51\x53\x55\x8B\x6C\x24\x10\x56\x8B\x74\x 24\x20\x57","xxxxxxxxxxxxx");
__________________


snow white world wide
 
Ответить с цитированием