[Source] Super-kill sem ASM
Como vocês ficam sempre pedindo, senti pena e fiz o codigo do super-kill, na verdade uma base prontinha pra vocês que não esta dando Ban, a tecla que ativa é a NUMPAD0.
Não tem segredo nisso ai, é so compilar e injetar.
Creditos?
luizimloko -> meu amigão BR que implementou e postou na mpgh.
kmanev073 -> meu amigão russo que inventou
o restante, se é que tem, está na base.
ahh outra coisinha, essa base vai "atualizar sozinha", então não se preocupem.
Não tem segredo nisso ai, é so compilar e injetar.
Code:
#define WINVER _WIN32_WINNT_WINXP
#define _WIN32_WINNT _WIN32_WINNT_WINXP
#define NTDDI_VERSION NTDDI_WINXP
#define VC_EXTRALEAN
#define WIN32_LEAN_AND_MEAN
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <windows.h>
#include <stdio.h>
#include <psapi.h>
#pragma comment( lib, "psapi.lib" )
float vDims[3];
bool bActive = false, bOnce = true;
/****************************************************/
/* credits: fdsasdf
*****************************************************/
int CompareByteArray(PBYTE ByteArray1, PCHAR ByteArray2, PCHAR Mask, DWORD Length)
{
DWORD nextStart = 0;
char start = ByteArray2[0];
for (DWORD i = 0; i < Length; i++)
{
if (Mask[i] == '?')
{
continue;
}
if (ByteArray1[i] == start)
{
nextStart = i;
}
if (ByteArray1[i] != (BYTE)ByteArray2[i])
{
return nextStart;
}
}
return -1;
}
/****************************************************/
/* credits: fdsasdf
*****************************************************/
PBYTE FindPattern(LPVOID BaseAddress, DWORD ImageSize, PCHAR Signature, PCHAR Mask )
{
PBYTE Address = NULL;
PBYTE Buffer = (PBYTE) BaseAddress;
DWORD Length = strlen(Mask);
for (DWORD i = 0; i < (ImageSize - Length); i++)
{
int result = CompareByteArray((Buffer + i), Signature, Mask, Length);
if (result < 0)
{
Address = ( PBYTE )BaseAddress + i;
break;
}
else
{
i += result;
}
}
return Address;
}
DWORD WINAPI dwMainThread( LPVOID )
{
while( !GetModuleHandleA( "ClientFX.fxd" ) )
Sleep( 10 );
MODULEINFO m_iCShell;
GetModuleInformation( ( HANDLE )-1, GetModuleHandleA( "CShell.dll" ), &m_iCShell, sizeof( MODULEINFO ) );
DWORD dwModelNode = reinterpret_cast< DWORD >( FindPattern( m_iCShell.lpBaseOfDll, m_iCShell.SizeOfImage, "\x8B\x0D\x00\x00\x00\x00\x50\xD9\x5C\x0F\x38", "xx????xxxxx" ) );
if( dwModelNode )
{
dwModelNode = *reinterpret_cast< DWORD *>( dwModelNode + 0x2 );
DWORD dwModelNodePtr = *reinterpret_cast< DWORD *>( dwModelNode );
for( ;; )
{
if( GetAsyncKeyState( VK_NUMPAD0 ) & 1 )
bActive = !bActive;
if( dwModelNodePtr != NULL )
{
//Salva
if( bOnce )
{
vDims[0] = *( float *)( dwModelNode + 0x38 );
vDims[1] = *( float *)( dwModelNode + 0x3C );
vDims[2] = *( float *)( dwModelNode + 0x40 );
bOnce = false;
};
if( bActive )
{
*( float *)( dwModelNodePtr + 0x38 ) = 120.0f;
*( float *)( dwModelNodePtr + 0x3C ) = 120.0f;
*( float *)( dwModelNodePtr + 0x40 ) = 120.0f;
}
else
{
*( float *)( dwModelNodePtr + 0x38 ) = vDims[0];
*( float *)( dwModelNodePtr + 0x3C ) = vDims[1];
*( float *)( dwModelNodePtr + 0x40 ) = vDims[2];
}
}
Sleep( 250 );
}
}
return 0;
}
BOOL WINAPI DllMain( HMODULE hDll, DWORD dwReason, LPVOID )
{
switch( dwReason )
{
case 1:
CreateThread( 0, 0, dwMainThread, 0, 0, 0 );
break;
}
return true;
}
luizimloko -> meu amigão BR que implementou e postou na mpgh.
kmanev073 -> meu amigão russo que inventou
o restante, se é que tem, está na base.
ahh outra coisinha, essa base vai "atualizar sozinha", então não se preocupem.




