[SOURCE]XTrap Bypass (GrandChase)
library Project2;
uses
Windows;
var
Place : Pointer;
ProtecaoAntiga : DWORD;
Written : cardinal;
procedure ExitProc(uExitCode : DWORD);stdcall;
begin
end;
function TerminateProc(Proc : THandle;uExitCode : DWORD) : DWORD;stdcall;
begin
result := 8;
end;
procedure HookThis(Lib, Func : String;CallBack : Pointer);
begin
Place := GetProcAddress(LoadLibrary(PChar(Lib)), PChar(Func));
VirtualProtect(Place, 6, PAGE_READWRITE, ProtecaoAntiga);
PBYTE(DWORD(Place))^ := $E9;
PDWORD(DWORD(Place) + 1)^ := (DWORD(CallBack) - (DWORD(Place)) -5);
VirtualProtect(Place, 6, ProtecaoAntiga, ProtecaoAntiga);
end;
function
CreateThr(lpThreadAttribute : Pointer;dwStackSize :
Cardinal;lpStartAddress, lpParameter : Pointer;dwCreationFlag, ThreadID :
Cardinal) : Cardinal;stdcall;
var
dwTemp1, dwTemp2 : DWORD;
i : integer;
hModule, dwFunc : DWORD;
Command : string;
CreateRemoteThreadEx : function (hProcess : Cardinal;lpThreadAttribute :
Pointer;dwStackSize : Cardinal;lpStartAddress, lpParameter :
Pointer;dwCreationFlag : DWORD; lpAttributeList : Pointer;ThreadID :
Cardinal) : Cardinal;stdcall;
begin
i := 0;
CreateRemoteThreadEx := GetProcAddress(GetModuleHandle('kernel32.dll'), 'CreateRemoteThreadEx');
if (GetModuleHandle('XTrapVa.dll') <> 0) then begin
hModule := GetModuleHandle('XTrapVa.dll');
dwFunc := DWORD(GetProcAddress(hModule, 'XProc3'));
dwTemp1 := DWORD(lpStartAddress) - hModule;
dwTemp2 := DWORD(lpStartAddress) - dwFunc;
if ((dwTemp1 = $17C0) or (dwTemp2 = $2D510) or (dwTemp2 = $321E0)) then begin
result := CreateRemoteThreadEx(DWORD(-1), lpThreadAttribute,
dwStackSize, lpStartAddress, lpParameter, CREATE_SUSPENDED, nil,
ThreadID);
Exit;
end;
end;
result := CreateRemoteThreadEx(DWORD(-1), lpThreadAttribute,
dwStackSize, lpStartAddress, lpParameter, dwCreationFlag, nil,
ThreadID);
end;
begin
HookThis('ntdll.dll', 'RtlExitUserProcess', @ExitProc);
HookThis('ntdll.dll', 'ZwTerminateProcess', @TerminateProc);
HookThis('kernel32.dll', 'CreateThread', @CreateThr);
MessageBoxA(0, 'You´re now full bypassed.', 'By AceStryker!', MB_ICONEXCLAMATION);
end.
[center]
Sobre o bypass:
Muitos não sabem, mais para construir um hack para qualqueur jogo com x-trap
é necessario passar por uma proteção, que no caso a do gc é o X-Trap
Este bypass hooka 3 APIS do windows, a principal dela é a "CreateThread",
assim o grand chase não criar as threads do x-trap.
CreateThread:
CreateThread é uma API do Windows que criar um novo segmento dentro de processo de chamada.
É a função do kernel32.dll
Fonte: http://en.wikipedia.org/wiki/CreateThread
Thread:
Linha ou Encadeamento de execução (em inglês: Thread), é uma forma de um processo dividir a si mesmo em duas ou mais tarefas que podem ser executadas concorrentemente. O suporte à thread é fornecido pelo próprio sistema operativo (SO), no caso da linha de execução ao nível do núcleo (em inglês: Kernel-Level Thread (KLT)), ou implementada através de uma biblioteca de uma determinada linguagem, no caso de uma User-Level Thread (ULT).Fonte: http://pt.wikipedia.org/wiki/Thread_(ciência_da_computação)
Criação de hacks:
Para construir um hack é necessario ter conhecimento em:
Cheat Engine e Ollydbg
com esses programas acima, você econtra o endereço fixo para uma trapaça
de qualquer jogo de pc.
Com os endereços fixos em mãos você pode montar um hack em
C++, Delphi, Assembly
Download bypass ja compilado:
Download & Scan:
Clique diretamente na imagem para fazer o download e ver o scan !
Instruções:
Após baixar, copie a "unicows.dll" e cole na pasta do teu grand chase
abra o "grandchase.exe" clique em "entrar" e abra o cheat engine ou o ollydbg,
selecione o processo e faça as trapaças procurando os endereços.
OBS: Este bypass so funciona no tutorial(praticar)[/center]