Página 1 de 1

listar procesos con asrl (windows 7>)

Publicado: 14 Ago 2013, 09:59
por joselin
bueno asrl se implemento para evitar el desbordamiento de bufer
(antiexploit)no profundice mucho en el tema, si alguien quiere aportar mas informacion ,estaria bueno.
copie y traduje el codigo desde c++ (y con ayuda de ejemplos que encontre en la red)a delphi, es sencillo

Código: Seleccionar todo

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,tlhelp32;

type
  TForm1 = class(TForm)
    ListBox1: TListBox;
    Button1: TButton;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var
 hasNext  : Bool;
fsHandle,hproc : THandle;
 fpe32    : TProcessEntry32;
 begin
 ListBox1.Clear;
   fsHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
     fpe32.dwSize := SizeOf(fpe32);
      hasNext := Process32First(fsHandle, fpe32);
         while hasNext do begin
 hProc := OpenProcess(PROCESS_ALL_ACCESS, FALSE,fpe32.th32ProcessID);

if (hProc <> 0)  then
ListBox1.Items.Add(Format('%s, pid = %d', [fpe32.szExeFile, fpe32.th32ProcessID]));

    hasNext := Process32Next(fsHandle, fpe32);
  closehandle(hProc);
     end;

           CloseHandle(fsHandle);
          //**********final deteccion asrl en windows 7*********************
end;

end.

Re: listar procesos con asrl (windows 7>)

Publicado: 15 Ago 2013, 01:32
por Metal_Kingdom
Gracias, está bien el code.

Me he tomado la libertad de modificar el código para una mayor facilidad de uso, adjunto también el source de la herramienta [XE3], espero que no te importe.
//Uses System.SysUtils, System.Classes, Winapi.tlhelp32;

Function ShProc(Procesos, PID: TStrings): bool;
var
  hasNext: bool;
  fsHandle: THandle;
  hproc: THandle;
  fpe32: TProcessEntry32;
begin
  Result := False;
  fsHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  fpe32.dwSize := SizeOf(fpe32);
  hasNext := Process32First(fsHandle, fpe32);

  while hasNext do
  begin
    hproc := OpenProcess(PROCESS_ALL_ACCESS, False, fpe32.th32ProcessID);
    if (hproc <> 0) then
    begin
      Result := True;
      if (fpe32.szExeFile <> '') and (fpe32.th32ProcessID <> 0) then
      begin
        Procesos.Add(fpe32.szExeFile);
        PID.Add(IntToStr(fpe32.th32ProcessID));
      end;
    end;
    hasNext := Process32Next(fsHandle, fpe32);
    closehandle(hproc);

  end;
  closehandle(fsHandle);
end;
Imagen

Listar Procesos ASLR [Muy Ofuscado] XE3.rar
Saludos.

Re: listar procesos con asrl (windows 7>)

Publicado: 15 Ago 2013, 01:45
por joselin
no.... como me voy a enojar si mejoraste el codigo,
yo me habia complicado con los resultados boleanos,quedo de 10
salud y buena vida metal

Re: listar procesos con asrl (windows 7>)

Publicado: 15 Ago 2013, 04:43
por Pink
excelente compas gracias :)