P.S Warning if you read this topic, you can detect A BIG BULLSHIT FROM RAZ9R :)
HackShield Small Signatures ByPass :)
HackShield Small Signatures ByPass :)
What does it do ?
we intercept hackshield api call, through themida api Virtualization and we place our own hook!
any problem of detection with 10501?
no thanks, no more!
Code contain nothing of special but a safe place for hook!
And yea hard to say but hackshield still scanning with this retarded method!
Code:
MEMORY_BASIC_INFORMATION MBInfo; // Global Define
SIZE_T ( WINAPI * oVirtualQuery ) ( LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength );
__declspec(noinline)
SIZE_T WINAPI nVirtualQuery ( LPCVOID lpAddress,PMEMORY_BASIC_INFORMATION lpBuffer,SIZE_T dwLength )
{
_asm pushad
SIZE_T hRet = oVirtualQuery(lpAddress,lpBuffer,dwLength);
if ( lpAddress > (PVOID*)MBInfo.BaseAddress && lpAddress < (PVOID*)MBInfo.BaseAddress + MBInfo.RegionSize ) // Our Dll Range :)
{
// Telling HackShield they scanning bad regions and that regions does not contain something :)
lpBuffer->AllocationProtect = PAGE_NOACCESS;
lpBuffer->RegionSize = 0x1000;
lpBuffer->State = MEM_FREE;
lpBuffer->Protect = 0;
lpBuffer->Type = MEM_PRIVATE;
}
_asm popad
return hRet;
}
DWORD WINAPI Init ( LPVOID lpArg )
{
while(!GetModuleHandle("EhSvc.dll"))
Sleep(300);
BYTE dwPTRVirtualQuery [] = { 0xFF,0x15,0x00,0x00,0x00,0x00,0x85,0xC0,0x0F,0x84,0x00,0x00,0x00,0x00,0x33,0xDB };
DWORD dwHSVirtualQuery = tool->FindPattern((DWORD)GetModuleHandle("EhSvc.dll"),0x15A000,dwPTRVirtualQuery,"xx????xxxx????xx",2,true);
if ( dwHSVirtualQuery )
{
// Hooking Function
// we don't need VirtualProtect because hackshield didn't protect that memory range's where i place hook :)
*(DWORD*)(&oVirtualQuery) = *(DWORD*)(dwHSVirtualQuery +0x4C);
*(DWORD*)(dwHSVirtualQuery+0x4C) = (DWORD)(&nVirtualQuery);
return 0;
}
return 1;
}
BOOL WINAPI DllMain ( HMODULE hDll, DWORD dwReason, LPVOID lpReserved )
{
if( dwReason == DLL_PROCESS_ATTACH )
{
VirtualQuery((void*)(hDll),&MBInfo,sizeof(MBInfo));
if ( !MBInfo.BaseAddress || !MBInfo.RegionSize )
return FALSE;
CreateThread(NULL,NULL,Init,NULL,NULL,NULL);
}
return TRUE;
}
All Creditz for it going TheBoss ( Skype : GHTheBoss )
Some thanks going to disav0w for some idea about signatures functionaly :)
Have a nice day guys!