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
  #15  
Antiguo 03-07-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Nipx4215,

Cita:
Empezado por escafandra
...En realidad un proceso puede modificar la memoria de otro, independientemente de quién lo haya creado...
Cita:
Empezado por escafandra
...si pretendes basar una protección de algún componente en el hecho de que se ejecute o no desde el IDE, quizás estés en un apuro, a no ser que exista una solución al problema de encontrar el verdadero padre...
Cita:
Empezado por Nipx4215
...sigo investigando...


Pregunto : ¿Has considerado hacer un hash a explorer.exe y verificar el mismo en tu proceso?

Revisa este código:
Código Delphi [-]
  unit Unit1;
  
  interface
  
  uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls, IdHashMessageDigest, IdHash, IdHashSHA1;
  
  type
    TForm1 = class(TForm)
      Button1: TButton;
      Button2: TButton;
      procedure Button1Click(Sender: TObject);
      procedure Button2Click(Sender: TObject);
    private
      { Private declarations }
    public
      { Public declarations }
    end;
  
  var
    Form1: TForm1;
  
  implementation
  
  {$R *.dfm}
  
  function GetMD5(const FileName : String): String;
  var
     MD5 : TIdHashMessageDigest5;
     FS : TFileStream;
  begin
     Result := EmptyStr;
     MD5 := TIdHashMessageDigest5.Create;
     FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
     try
        Result := MD5.HashStreamAsHex(FS);
     finally
        MD5.Free;
        FS.Free;
     end;
  end;
  
  function GetSHA1(const FileName : String): String;
  var
     SHA1 : TIdHashSHA1;
     FS : TFileStream;
  begin
     Result := EmptyStr;
     SHA1 := TIdHashSHA1.Create;
     FS := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite);
     try
        Result := SHA1.HashStreamAsHex(FS);
     finally
        SHA1.Free;
        FS.Free;
     end;
  end;
  
  procedure TForm1.Button1Click(Sender: TObject);
  var
     FileName : String;
     MsgUsr, Title : String;
  begin
     FileName := 'C:\Windows\explorer.exe';
     MsgUsr := GetMD5(FileName);
     Title := 'MD5 ' + FileName;
     MessageBox(Handle, PChar(MsgUsr), PChar(Title), MB_OK + MB_ICONINFORMATION);
  end;
  
  procedure TForm1.Button2Click(Sender: TObject);
  var
     FileName : String;
     MsgUsr, Title : String;
  begin
     FileName := 'C:\Windows\explorer.exe';
     MsgUsr := GetSHA1(FileName);
     Title := 'SHA1 ' + FileName;
     MessageBox(Handle, PChar(MsgUsr), PChar(Title), MB_OK + MB_ICONINFORMATION);
  end;
  
  end.
El código anterior en Delphi 2010 sobre Windows 7 Professional x32, Permite calcular un Hash MD5 y SHA1 a un archivo seleccionado, como se muestra en la siguiente imagen:



Nota: La idea en este caso particular, es calcular el hash de explorer.exe y guardarlo dentro de la aplicación para que esta pueda verificar si efectivamente corresponde al hash del proceso padre actual.

Revisa esta información:
Espero sea útil

Nelson.
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
Saber si la aplicación fue ejecutada desde Delphi aeff API de Windows 16 13-11-2008 00:37:18
Aplicacion en Delphi 6 ejecutada por Internet canelita Internet 1 10-07-2008 16:29:07
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
¿Cómo puedo saber desde mi aplicación cuándo se abre por primera vez? nuri Varios 7 21-07-2005 14:07:51
Detectar aplicacion a ser ejecutada. anitra_cattivo API de Windows 7 05-11-2004 18:52:41


La franja horaria es GMT +2. Ahora son las 01:29:59.


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