Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #3  
Antiguo 05-08-2013
Jais Jais is offline
Miembro
NULL
 
Registrado: jul 2013
Posts: 12
Poder: 0
Jais Va por buen camino
Hola escafandra

Gracias por tu respuesta. La DLL que quiero inyectar es esta:

Código:
library Sumar;

{$APPTYPE CONSOLE}

uses
  SysUtils,Windows;

Var
  i: Integer;
  Cuenta: String;

begin
  { TODO -oUser -cConsole Main : Insert code here }
  Cuenta := '';
  For i:=0 To 10 Do
    Begin
      Cuenta := Cuenta + IntToStr(i);
    End;

  MessageBox(0,PAnsiChar(Cuenta),'Cuenta',64);
end.
Llevo tiempo leyendo tutoriales, tanto los que mencionas como otros, pero no tengo muy claro el funcionamiento.

Ahora mismo estoy trabajando con este codigo, que me funciona en Windows XP:

Código:
procedure InjectDll(PID: dword;  DLL: pChar);
var
  BytesWritten, hProcess, hThread, TID: Cardinal;
  Parameters: pointer;
  pThreadStartRoutine: Pointer;
begin
  // Abrimos el proceso
  hProcess := OpenProcess(PROCESS_ALL_ACCESS,  False,  PID);
  // Creamos espacio en el proceso
  Parameters := VirtualAllocEx( hProcess, nil, Length(DLL)+1, MEM_COMMIT or MEM_RESERVE, PAGE_READWRITE);
  // Escribimos en el proceso la ruta de nuestra DLL
  WriteProcessMemory(hProcess,Parameters,Pointer(DLL  ),Length(DLL)+1,BytesWritten);
  // Obtenemos la direccion de LoadLibrary con GetProcAddress
  pThreadStartRoutine := GetProcAddress(GetModuleHandle('KERNEL32.DLL'), 'LoadLibraryA');
  // Creamos un Thread en el proceso remoto que ejecute nuestra dll
  hThread := CreateRemoteThread(hProcess,  nil,  0,  pThreadStartRoutine,  Parameters,  0,  TID);
  // Cerramos el hProcess abierto
  CloseHandle(hProcess);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  InjectDll(Aqui pongo el PID del notepad o de la calculadora,PAnsiChar('C:\Sumar.dll'));
end;
He probado este codigo tanto con el PID de un notepad y con el de la calculadora y con los dos me ha funcionado.

Tengo unas dudas, ¿porque obtenemos la dirección de LoadLibrary?
He leido el algun tutorial, pero no se porque motivo es, que este codigo no funciona en Sistemas Operativos de 64 bits. ¿Por que razon no funciona? Yo no le podido probar en sistemas operativos de 64 bits porque no tengo.

Muchisimas gracias de antemano.

Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Inyeccion SQL RebeccaGL MySQL 10 30-04-2012 17:15:43
ataques de inyección de sql hogol SQL 5 17-10-2011 23:00:37
Formas de inyección de procesos aeff API de Windows 8 27-10-2007 19:25:25
Inyeccion de sql richy08 PHP 0 19-10-2007 01:08:41
evitar inyeccion de html reevil PHP 2 21-12-2006 03:26:08


La franja horaria es GMT +2. Ahora son las 06:57:54.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi