iGamesbr
Visite nosso novo website.

http://manoproject.tk

ou manocelo.tk os dois são o mesmo website.
iGamesbr

O melhor conteúdo.
 
InícioInício  PortalPortal  CalendárioCalendário  FAQFAQ  MembrosMembros  Registrar-seRegistrar-se  Conectar-se  Seja um Over Member!  

Compartilhe | 
 

 Criando um Speed Hack

Ir em baixo 
AutorMensagem
Manocelo
Fundador e Administrador.
  Fundador e Administrador.
avatar

Jogo preferido : Grandchase
Sexo : Masculino
Mensagens : 75
Creditos : 2661
Agradecimentos : 4
Data de inscrição : 12/01/2012
Idade : 6
Localização : Na net

MensagemAssunto: Criando um Speed Hack    Seg Fev 06, 2012 3:11 pm

Necessário:
Citação :

•Experiência básica no delphi.
•Ter o delphi 7 instalado ( lógico t.t).

Vamos lá ,
Clique em File >> New >> Other e selecione DLL Wizard.



Renomeie a Dll para "speedhack" ( SEM ASPAS)

Apague as uses até o end e cole este código:
Código:

uses
SysUtils,
Classes,
speedhackunit in 'speedhackunit.pas',
ui in 'ui.pas' {Form1};
 
{$R *.res}
 
exports acceleration;
exports sleeptime;
 
 
begin
sui:=tui.create(false);
 
end.
         
      



Agora clique em File >> New > Form

dê 2 clicks no form e adicione nas uses :
Citação :

speedhackunit;

Logo abaixo da type coloque :
Código:

type
TUI = class(tthread)
public
procedure execute; override;
end;
         
      

Deixando assim:



Componentes
Citação :

2 - Edits
2 - Labels
1 - Botão

Deixe no visual a seu gosto no meu caso deixei assim,


Nas variaveis adicione
Código:
sui: tui;
         
      

Cole esté código embaixo do {$R *.dfm}
Código:

   
         
            procedure TUI.execute;
begin
form1:=tform1.Create(nil);
form1.ShowModal;
end;

Clique duas vezes no botão1 deixe o nome dele "Ligar speed Hack" ( SEM ASPAS) e apague o begin e o end; e coloque o seguinte código no lugar:
Código:

var a: single;
s: dword;
begin
s:=strtoint(edit2.text);
a:=strtofloat(edit1.Text);
 
sleeptime:=s;
acceleration:=a;
end;
         
      

Renomeie a unit da form para ui.

Crie uma nova Unit em File >> New > Unit
Apague todo código que há nele e cole este

Código:

unit speedhackunit;

interface
uses windows,classes;

type TAPIInfo = record
  location: Pointer;
  Original: Array [0..4] of byte;
  Jump:    Array [0..4] of byte;
end;

type TTick=class(TThread)
  private
  public
    procedure Execute; override;
  end;

procedure InitializeSpeedhack;
procedure StopSpeedhack;

procedure GetTime; stdcall;
//function GetTime:dword; stdcall;
function NewQueryPerformanceCounter(var output: int64):BOOl; stdcall;
var CETick: dword;
    CETick64: int64;
    Ticker: TTick;

    PerformanceFrequency: int64;
    PerformanceFrequencyMS: int64;
    acceleration: single;
    sleeptime: dword;
    slow: boolean;
    tickerstopped: boolean;
    speedhackenabled: boolean;


    timeGetTimeInfo:TAPiInfo;
    getTickcountInfo: TAPIInfo;
    QueryPerformanceCounterInfo: TAPIInfo;
    winmmlib,kernel32lib: thandle;

implementation

procedure InitializeSpeedhack;
var op:dword;
begin
  cetick:=gettickcount;
  //Visite iGames.forumbrasil.net e aprenda muito mais !
  if ticker<>nil then
  begin
    ticker.Terminate;
    stopspeedhack;
  end;
  ticker:=nil;


  winmmlib:=LoadLibrary('winmm.dll');
  if winmmlib<>0 then
  begin
    timeGetTimeInfo.location:=GetProcAddress(winmmlib,'timeGetTime');
    if VirtualProtect(timeGetTimeInfo.location,5,PAGE_EXECUTE_READWRITE,op) then
    begin
      timeGetTimeInfo.jump[0]:=$e9;
      pdword(@timeGetTimeInfo.jump[1])^:=dword(@GetTime)-dword(timeGetTimeInfo.location)-5;

      try
        asm
          //store original
          push edi
          push esi
          lea edi,timeGetTimeInfo.original[0]
          mov esi,timeGetTimeInfo.location
          movsd
          movsb

          //replace with jump
          lea esi,timeGetTimeInfo.jump[0]
          mov edi,timeGetTimeInfo.location
          movsd
          movsb

          pop esi
          pop edi
        end;
      except

      end;
    end;
  end;


  kernel32lib:=LoadLibrary('kernel32.dll');
  if kernel32lib<>0 then
  begin
    //gettickcount
    GetTickCountInfo.location:=GetProcAddress(kernel32lib,'GetTickCount');
    if VirtualProtect(GetTickCountInfo.location,5,PAGE_EXECUTE_READWRITE,op) then
    begin
      GetTickCountInfo.jump[0]:=$e9;
      pdword(@GetTickCountInfo.jump[1])^:=dword(@GetTime)-dword(GetTickCountInfo.location)-5;

      try
        asm
          //store original
          push edi
          push esi
          lea edi,GetTickCountInfo.original[0]
          mov esi,GetTickCountInfo.location
          movsd
          movsb

          //replace with jump
          lea esi,GetTickCountInfo.jump[0]
          mov edi,GetTickCountInfo.location
          movsd
          movsb

          pop esi
          pop edi
        end;
      except

      end;
    end;


    //QueryPerformanceCounter
    if QueryPerformanceFrequency(PerformanceFrequency) then
    begin
      QueryPerformanceCounter(CETick64);
      PerformanceFrequencyMS:=PerformanceFrequency div 1000;

      //there is a high performance counter
      QueryPerformanceCounterInfo.location:=GetProcAddress(kernel32lib,'QueryPerformanceCounter');
      if VirtualProtect(QueryPerformanceCounterInfo.location,5,PAGE_EXECUTE_READWRITE,op) then
      begin
        QueryPerformanceCounterInfo.jump[0]:=$e9;
        pdword(@QueryPerformanceCounterInfo.jump[1])^:=dword(@NewQueryPerformanceCounter)-dword(QueryPerformanceCounterInfo.location)-5;

        try
          asm
            //store original
            push edi
            push esi
            lea edi,QueryPerformanceCounterInfo.original[0]
            mov esi,QueryPerformanceCounterInfo.location
            movsd
            movsb

            //replace with jump
            lea esi,QueryPerformanceCounterInfo.jump[0]
            mov edi,QueryPerformanceCounterInfo.location
            movsd
            movsb

            pop esi
            pop edi
          end;
        except

        end;
      end;
    end;
  end;

  speedhackenabled:=true;

  if ticker=nil then ticker:=TTick.Create(false);
end;

procedure StopSpeedhack;
begin
  if not speedhackenabled then exit;

  speedhackenableD:=false;

  try
    asm
      lea esi,timeGetTimeInfo.original[0]
      mov edi,timeGetTimeInfo.location
      movsd
      movsb
    end;
  except

  end;

  try
    asm
      lea esi,GetTickCountInfo.original[0]
      mov edi,GetTickCountInfo.location
      movsd
      movsb
    end;
  except

  end;

  try
    asm
      lea esi,QueryPerformanceCounterInfo.original[0]
      mov edi,QueryPerformanceCounterInfo.location
      movsd
      movsb
    end;
  except

  end;



  FreeLibrary(winmmlib);
  FreeLibrary(kernel32lib);
  winmmlib:=0;
  kernel32lib:=0;
  if ticker<>nil then ticker.terminate;
  ticker:=nil;
end;


procedure GetTime; stdcall;
asm
  mov eax,[CETick]
  ret
end;

{function GetTime:dword; stdcall;
begin
  result:=CETick;
end;}

function NewQueryPerformanceCounter(var output: int64):BOOl; stdcall;
begin
  output:=cetick64;
  result:=true;
end;

procedure TTick.Execute;
begin
  tickerstopped:=false;
  freeonterminate:=true;
  priority:=tpTimeCritical; //if not a thread with higher priority will prevent the timer from running
  while not terminated do
  begin
    inc(cetick64,trunc(acceleration*(PerformanceFrequency / (1000 / sleeptime))) );
    inc(cetick,trunc(sleeptime*acceleration));
    sleep(sleeptime);
  end;
  tickerstopped:=true;
end;

initialization
  acceleration:=1.8;
  sleeptime:=10;
  InitializeSpeedhack;

end.

Resultado final do SpeedHack



Para quem quiser baixar e usar >> [Você precisa estar registrado e conectado para ver este link.]


Créditos á Cheat Engine.org
e a min por disponibilizar, traduzir a português para iGames!
Voltar ao Topo Ir em baixo
http://igames.forumbrasil.net
pitio157
Moderador Gamezone
Moderador Gamezone
avatar

Sexo : Masculino
Mensagens : 55
Creditos : 2569
Agradecimentos : 1
Data de inscrição : 10/02/2012
Idade : 21

MensagemAssunto: Re: Criando um Speed Hack    Sex Fev 10, 2012 5:22 pm

Eu nao tenho experiencia basica posta um tuto pra novatos ai plis admim
Voltar ao Topo Ir em baixo
Nick
Ex - Moderador
Ex - Moderador
avatar

Sexo : Masculino
Mensagens : 73
Creditos : 2641
Agradecimentos : 1
Data de inscrição : 03/02/2012
Idade : 27

MensagemAssunto: Re: Criando um Speed Hack    Sab Fev 11, 2012 7:33 am

Muito bom Manocelo, pq n coloca um novo designer nesse Speed : [Você precisa estar registrado e conectado para ver este link.]

Iria fica mara..
Voltar ao Topo Ir em baixo
Conteúdo patrocinado




MensagemAssunto: Re: Criando um Speed Hack    

Voltar ao Topo Ir em baixo
 
Criando um Speed Hack
Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
iGamesbr :: Info Zone :: Desenvolvimento - Pro :: Delphi-
Ir para: