Ir para conteúdo
Faça parte da equipe! (2024) ×

Criando Um Utilities No Delphi Com Injetor De Dll Para Grand Chase


Halls_™
 Compartilhar

Posts Recomendados

Bom Pessoal , Hoje Estarei Aqui Ensinando A Criar Um Utilities No Delphi Com Injetor De DLL Para Grand Chase

 

Dividirei O Tópico em 4 Partes

 

1º - Ajeitando a Form (Designe , ... )

2º - Injetor De DLL

3º - Utilities

4º - Atualizador de Grand Chase

 

__________________________________________________________________________________________

1º Parte - Ajeitando a Form

 

 

Bom Primeiramente Abra Sua Form , em Caption , Mude o Nome Da Form Para o Nome do Seu Utilities (ex:super utilities)

Ficara Assim :

 

M5hgl.png

 

Depois disso , Veja o Tamanho Que Você Vai Ocupar Na Form Com Sua Imagem e Faça ela

Depois de Faze - la va em Additional , Image e Selecione o Tamanho q vai ocupar na form e em Picture Procura Sua Imagem

___________________________________________________________________________________________

2º Parte - Injetor de DLL

 

Depois de Ter Colocado a Imagem , Em Win32 Adicione um Page Control

Clique nele com botão direito e clique em New Page e Renomeie Para Injetor De DLL

Nessa Aba Do Page Control Adicione os Compontentes :

 

2- GroupBox - Renomeia a 1 como "Configurações" e a segunda como "Injeção".

2- Labels - O primeiro escrito "Processo" e o Segundo "Dll".

3- Buttons - O primeiro escrito "Aguardar..."(Voce pode substituir por um RadioButton escrito Automatico) o segundo "Procurar" e o terceiro "Limpar Lista"

1- Listbox

1- Timer

1- OpenDialog

 

Ficara mais ou menos Assim :

 

pfk8c.png

 

De dois cliques no form e declare nas uses TlHelp32.

 

Declare a função acima de end. :

 

function GetPID(ProcessName: string): DWORD;

var MyHandle: THandle;

Struct: TProcessEntry32;

begin

Result:=0;

try

MyHandle:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);

Struct.dwSize:=Sizeof(TProcessEntry32);

if Process32First(MyHandle, Struct) then

if Struct.szExeFile=ProcessName then

begin

Result:=Struct.th32ProcessID;

Exit;

end;

while Process32Next(MyHandle, Struct) do

if Struct.szExeFile=ProcessName then

begin

Result:=Struct.th32ProcessID;

Exit;

end;

except on exception do

Exit;

end;

end;

 

 

Abaixo da função declarada acima, declare :

 

function InjectDll(PID:DWORD; sDll:string):Boolean;

var

hLib: Pointer;

hThread: THandle;

pMod: Pointer;

hOpen: THandle;

dWritten: Cardinal;

ThreadID: Cardinal;

begin

Result := FALSE;

hOpen := OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

if hOpen <> INVALID_HANDLE_VALUE then

begin

hLib := GetProcAddress(GetModuleHandle(PChar('kernel32.dll')), PChar('LoadLibraryA'));

pMod := VirtualAllocEx(hOpen, nil, Length(sDll) + 1, MEM_COMMIT or MEM_RESERVE, PAGE_EXECUTE_READWRITE);

if WriteProcessMemory(hOpen, pMod, @sDll[1], Length(sDll), dWritten) then

Result := TRUE;

hThread := CreateRemoteThread(hOpen, nil, 0, hLib, pMod, 0, ThreadID);

WaitForSingleObject(hThread, INFINITE);

CloseHandle(hOpen);

CloseHandle(hThread);

end;

 

 

Clique 2 vezes no botão "Procurar" e adicione o seguinte código:

 

if not OpenDialog1.Execute then Exit;

Listbox1.Items.Add(ExtractFileName(OpenDialog1.FileName));

 

 

De dois cliques no botão "Aguardar..." e adicione:

 

Timer1.Enabled:=True;

 

 

De dois cliques no Timer e adicione:

Obs: Apague o begin.

 

 

var PID: DWORD;

begin

Timer1.Enabled:=False;

 

if PID=0 then

begin

Timer1.Enabled:=True;

Exit;

end;

Timer1.Enabled:=False;

 

MessageBoxA(Handle, 'DLL injetada com sucesso!', 'DLL Injector', MB_ICONEXCLAMATION+MB_SYSTEMMODAL)

 

end;

 

end.

 

 

No botão Limpar Lista Adicione o seguinte código:

 

ListBox1.Clear

 

 

Injetor de DLL Criado

_____________________________________________________________________________________________

3º Parte - Utilities

 

Clique Com Botão Direito no Page Control e Clique Em New Page e Renomeie Para Utlities

Adicione :

 

4 Buttons (Localizado em Standard ) :

 

Renomeie o 1º Para Limpar Logs e Adicione o Seguinte Código :

 

deletefile ('C:\Level Up Games\Grand Chase\ScreenShot ')

 

Ativar Quando o Patch Estiver 100% Para Excluir a Pasta e Não ir Para Level Up

 

Renomeie o 2º Para Resolver Erro Do NProtect e Adicione o Seguinte Código :

 

deletefile ('C:\Level Up Games\Grand Chase\NProtect ')

 

Ativar Antes Do Patch Para Ele Atualizar a Pasta

 

No 3º Renomeie para Renovar IP E Adicione o Seguinte Código :

 

WinExec('cmd /C ipconfig /renew',SW_SHOW);

WinExec('cmd /C ipconfig /release',SW_SHOW);

 

 

Renomeie o 2º Button Para Registrar DNS E Adicione o Seguinte Código :

 

WinExec('cmd /C ipconfig /registerdns',SW_SHOW);

 

 

Ficara Assim :

 

hgyCu.png

 

4º Parte - Autalizador De Grand Chase

 

Introdução :

 

Vcs ira baixar 1 arquivo e por na pasta lib do delphi.

 

Download :

 

 

Códigos :

Adicione 2 buttons, 1 edit e no 1 coloque abrir gc sem atualizar!

 

var

TituloDoPrograma: string;

TextoAEnviar: string;

begin

TituloDoPrograma := 'Executar';

 

if AppActivate(PChar(TituloDoPrograma)) then

begin

TextoAEnviar := edit1.Text+'\grandchase.exe';

SendKeys(PChar(TextoAEnviar), True); //<-- ENVIA O USUARIO PARA O EDIT

SendKeys(PChar('{TAB}'), false);

 

 

SendKeys(PChar('{ENTER}'), false); //<-- DA UM ENTER NO BOTAO

end;

end;

 

 

No outro :

Caption = Atualizar GC em, manutençao!

 

var

TituloDoPrograma: string;

TextoAEnviar: string;

begin

TituloDoPrograma := 'Executar';

 

if AppActivate(PChar(TituloDoPrograma)) then

begin

TextoAEnviar := edit1.Text+'\grandchase.exe __kogstudios_skip_patchtimecheck__';

SendKeys(PChar(TextoAEnviar), True); //<-- ENVIA O USUARIO PARA O EDIT

SendKeys(PChar('{TAB}'), false); // <-- ENVIA TAB PARA IR PARA O CAMPO SENHA

SendKeys(PChar('{ENTER}'), false); //<-- DA UM ENTER NO BOTAO

end;

 

 

Entendendo a coisa :

Abre o executar e clique em 1 dos buttons , para atualizar o gc em manutenção!

Edit1.Text = local do gc

 

UTILITES CRIADO : D

 

Créditos : Grown

Link para o comentário
Compartilhar em outros sites

Maneiro.

Já levou meu ty (: , estava pensando em criar um utilities mas para combat arms e mais avançado rs =D. Mas para quem quer fazer o mesmo na área gc, além de servir como base, demonstra como é simples e fácil :).

Link para o comentário
Compartilhar em outros sites

O que pensam da vida esses imbecis que criam "utilities" e injetores de dll?

Que vao contribuir em algo,um programa lixo a mais para os 0x7FFFFFFF existentes?

"Se acham" por criar um programa totalmente copiado?

Voltem para seus jogos,seus analfabetos.

 

Muito Bom..

Vai ajudar quem sempre quis criar um Utilities assim...

Topico Organizado!

Thx

 

Ainda tem gente imbecil no mundo para falar coisas assim.

Link para o comentário
Compartilhar em outros sites

Este tópico está impedido de receber novos posts.
 Compartilhar

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.