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.
paresco malo ,pero soy bueno
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.
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
UDTools.net
GitHub: https://github.com/MetalUDT
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
paresco malo ,pero soy bueno
Responder

Volver a “Fuentes”