Register

Você não está conectado. Conecte-se ou registre-se

 #1Dom 9 Jun - 20:22

Davisnatsu


«Administrador»

«Administrador»

Davisnatsu

http://www.soldiercheats.com/forum

 [DELPHI]Criando um Anti-DLL Injection Empty [DELPHI]Criando um Anti-DLL Injection
Bom, ola pessoal, a tempos nao posto entao resolvi postar algo simples sobre criar uma dll que proibi que as pessoas injetem qualquer DLL.

Primeiro de tudo voce precisa saber que a funcao de injetar DLL se localiza nos 5 primeiros bytes da DLL "NTDLL.DLL".
Nossa resolucao e simples, trocaremos esses 5 primeiros bytes por uma funcao X que criaremos.Vamos la.

Primeiro de tudo nossa funcao principal:
Código PHP:

Código:
procedure HookarFunc(NossaFunc : Pointer);
var
  Pular : DWORD;
  Funcao : Pointer;
begin
Funcao := GetProcAddress(GetModuleHandle('ntdll.dll'), 'LdrLoadDLL');//pegamos o handle da funcao LdrLoadDLL
  Pular := DWORD(NossaFunc) - DWORD(Funcao) - 5;
  VirtualProtect(Funcao, 5, PAGE_EXECUTE_READWRITE, nil);
  Funcao := Pointer(Pular);
end; 

Agora faremos o que o programa fara quando tentarem injetar alguma DLL:
Código PHP:
Código:
procedure OnInject;
var
H : Thandle;
begin
ShowMessage('Impedimos a injecao');
end; 

Entre o Begin e o End coloque:
Código PHP:
Código:
HookFunc(@OnInject); 

Agora eu vou deixar o codigo inteiro que eu adicionei algumas coisas inuteis para ficar legal.
Código PHP:

Código:
library Project2;

{ Criado por AceStryer.SoldierCheats - Cheats for life }

uses
  SysUtils,
  Classes,
  Windows,
  Dialogs;

{$R *.res}

var
HH : THandle;
WBytes : Cardinal;
procedure HookarFunc(NossaFunc : Pointer);
var
  Pular : DWORD;
  Funcao : Pointer;
begin
Funcao := GetProcAddress(GetModuleHandle('ntdll.dll'), 'LdrLoadDLL');//pegamos o handle da funcao LdrLoadDLL
  Pular := DWORD(NossaFunc) - DWORD(Funcao) - 5;
  VirtualProtect(Funcao, 5, PAGE_EXECUTE_READWRITE, nil);
  Funcao := Pointer(Pular);
end;

procedure OnInject;
var
H : Thandle;
begin
ShowMessage('Impedimos a injecao');
H := GetModuleHandle('ntdll.dll');
H := 0;
end;
Procedure InjetadoNoPrograma;
begin
ShowMessage('Agora nosso Anti-DLL esta funcionando.');
end;

begin
HH := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID);
HookarFunc(@OnInject);
CreateRemoteThread(HH, nil, 0, @InjetadoNoPrograma, @InjetadoNoPrograma, 0, WBytes);
end. 


Pronto, espero que tenham gostado,


Anúncios



Ver o tópico anterior Ver o tópico seguinte Ir para o topo Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos

 

Banner