Loader para GBS Trainer

Transcrição

Loader para GBS Trainer
Loader para o GBS Trainer
2009
Tutorial: Loader para o GBS Trainer
Autor: Wagner Barongello
Data: 02/11/2009
Objetivo: Abrir o GBS Trainer sem a
necessidade de clicar nos banners
Wagner Barongello – http://www.barongello.com.br
Página 1
Loader para o GBS Trainer
2009
1. Objetivo
Construir um aplicativo para carregar o GBS Trainer e carregá-lo sem a
necessidade de ficar clicando nos banners de propaganda.
2. Ferramentas
Apenas um compilador a sua escolha, neste tutorial teremos três exemplos, em
NASM, MASM e Delphi.
3. Introdução
Precisaremos utilizar 5 APIs (no Delphi 4, pois ele implementa a ExitProcess
sozinho), que são: WinExec, FindWindowA, FindWindowExA, SendMessageA e
ExitProcess.
Para explicar, direi apenas suas utilizações, sem as exemplificar, algo bem
superficial.
• WinExec: executar outras aplicações à partir da sua.
• FindWindowA: encontrar janelas top-level por classe e/ou título.
• FindWindowExA: encontrar janelas filhas que contenham determinada classe e
título.
• SendMessageA: enviar mensagens para a WinProc de outras aplicações.
• ExitProcess: finalizar sua aplicação.
4. Procedimentos
Precisaremos seguir esta ordem:
1. Carregar o GBS Trainer.
2. Procurar e esperar pela janela principal até que ela seja exibida.
3. Procurar e esperar pelo botão que carregar o jogo.
4. Enviar o comando para que o botão seja pressionado.
5. Finalizar nossa aplicação.
5. Códigos
5.1. NASM
Apêndice A.
5.2. MASM
Apêndice B.
5.3. Delphi
Apêndice C.
6. Agradecimentos
Às pessoas que me apóiam e a todos que leram este tutorial.
Wagner Barongello – http://www.barongello.com.br
Página 2
2009
Loader para o GBS Trainer
Apêndice A
;
Programa: GBS Trainer Loader
; Programador: Wagner Barongello
;
Data: 02/11/2009
;
Objetivo: Abrir o GBS Trainer sem a necessidade de clicar nos banners
extern
extern
extern
extern
extern
extern
WinExec
FindWindowA
FindWindowExA
SendMessageA
MessageBoxA
ExitProcess
%include '\radasm\nasm\compiler\inc\win32n.inc'
%macro call 2-*
%define _j %1
%rep %0-1
%rotate -1
push dword %1
%endrep
call _j
%endmacro
[SECTION DATA USE32 CLASS=DATA]
gbs_trainer_exe
GamerzAimPro.exe', 0
gbs_trainer_titulo
gbs_trainer_botao_classe
gbs_trainer_botao_texto
gbs_trainer_handle
gbs_trainer_botao_handle
db
'GamerzTools Trainer GBS Public v6.0.0 +
db
db
db
dd
dd
'[GzB] Público Trainer - GBS', 0
'TButton', 0
'3', 0
0
0
[SECTION CODE USE32 CLASS=CODE]
..start:
call
WinExec, gbs_trainer_exe, SW_NORMAL
esperar_janela:
call
FindWindowA, 0, gbs_trainer_titulo
cmp
eax, 0
je
esperar_janela
mov
[gbs_trainer_handle], eax
esperar_botao:
call
FindWindowExA, [gbs_trainer_handle], 0, gbs_trainer_botao_classe,
gbs_trainer_botao_texto
cmp
eax, 0
je
esperar_botao
mov
[gbs_trainer_botao_handle], eax
call
SendMessageA, [gbs_trainer_handle], WM_COMMAND, 1,
[gbs_trainer_botao_handle]
call ExitProcess, 0
Wagner Barongello – http://www.barongello.com.br
Página 3
2009
Loader para o GBS Trainer
Apêndice B
;
Programa: GBS Trainer Loader
; Programador: Wagner Barongello
;
Data: 02/11/2009
;
Objetivo: Abrir o GBS Trainer sem a necessidade de clicar nos banners
.586
.model flat, stdcall
option casemap: none
include windows.inc
include user32.inc
include kernel32.inc
includelib user32.lib
includelib kernel32.lib
.data
gbs_trainer_exe
GamerzAimPro.exe', 0
gbs_trainer_titulo
gbs_trainer_botao_classe
gbs_trainer_botao_texto
.data?
gbs_trainer_handle
gbs_trainer_botao_handle
.code
start:
invoke
esperar_janela:
invoke
cmp
je
mov
db
'GamerzTools Trainer GBS Public v6.0.0 +
db
db
db
'[GzB] Público Trainer - GBS', 0
'TButton', 0
'3', 0
dd
dd
?
?
WinExec, offset gbs_trainer_exe, SW_NORMAL
FindWindowA, 0, offset gbs_trainer_titulo
eax, 0
esperar_janela
gbs_trainer_handle, eax
esperar_botao:
invoke
FindWindowExA, gbs_trainer_handle, 0, offset
gbs_trainer_botao_classe, offset gbs_trainer_botao_texto
cmp
eax, 0
je
esperar_botao
mov
gbs_trainer_botao_handle, eax
invoke
SendMessageA, gbs_trainer_handle, WM_COMMAND, 1,
gbs_trainer_botao_handle
invoke
ExitProcess, 0
end start
Wagner Barongello – http://www.barongello.com.br
Página 4
Loader para o GBS Trainer
2009
Apêndice C
//
Programa: GBS Trainer Loader
// Programador: Wagner Barongello
//
Data: 02/11/2009
//
Objetivo: Abrir o GBS Trainer sem a necessidade de clicar nos banners
program Project1;
uses
Windows,
Messages;
var
Janela: HWnd;
Botao: HWnd;
begin
WinExec('GamerzTools Trainer GBS Public v6.0.0 + GamerzAimPro.exe',
SW_NORMAL);
Repeat
Janela := FindWindowA(Nil, '[GzB] Público Trainer - GBS');
Until Janela <> 0;
Repeat
Botao := FindWindowEx(Janela, 0, 'TButton', '3');
Until Botao <> 0;
SendMessage(Janela, WM_COMMAND, 1, Botao);
end.
Wagner Barongello – http://www.barongello.com.br
Página 5

Documentos relacionados