Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Sospecho que está hecho en Delphi, ¿cómo saberlo? (https://www.clubdelphi.com/foros/showthread.php?t=30373)

Galbi 04-04-2006 23:29:50

Sospecho que está hecho en Delphi, ¿cómo saberlo?
 
Hola amigos, resulta que he visto aplicaciones que sospecho que están hechas en Delphi, entonces ¿cómo se puede saberlo a ciencia cierta?

Saludos.

Galbi.

esocrates 05-04-2006 00:05:19

En este sitio podés descargar una aplicación Free que creo te será útil.
http://www.geocities.com/charisoft/saleng.htm
Un saludo

delphi.com.ar 05-04-2006 00:10:02

Si no me equivoco, aplicaciones tipo en WinDASM te informan qué compiladores fueron utilizados para generar, los PE Files. El programa DeDe (Delphi Decompiler) no recuerdo si hace diferencia entre C++ Builder o Delphi.
Otra opción, que puedes escribir en delphi, supongo sin demasiadas complicaciones, es buscar en los recursos del tipo DATA, algo que puedas leer como DFM, con algunas de las funciones de la VCL como ReadComponentRes. (Te recomiendo ver el ejemplo ResXplor)

Saludos!

seoane 05-04-2006 00:22:13

Se me ocurre que podemos utilizar el echo de que delphi coloca en sus ejecutables donde deberia de ir el timestamp siempre el mismo numero (sus razones tendran). Ignoro si este metodo que propongo es muy de fiar, puede que otros compiladores coloquen el mismo numero en el timestamp pero ya seria mucha casualidad :)

Bueno aqui te dejo esta funcion, le pasas como parametro la ruta del ejecutable y si esta echo en delphi devuelve TRUE
Código Delphi [-]
function isDelphi(Filename: string): Boolean;
const
  BorlandMagicTimeStamp = $2A425E19;
var
  hFile: THandle;
  BytesRead: DWORD;
  ImageDosHeader: TImageDosHeader;
  ImageNtHeaders: TImageNtHeaders;
begin
  Result := FALSE;
  hFile := CreateFile(PChar(Filename), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, 0, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then
  begin
    if ReadFile(hFile, ImageDosHeader, SizeOf(TImageDosHeader),BytesRead, nil) then
      if BytesRead = SizeOf(TImageDosHeader) then
        if ImageDosHeader.e_magic = IMAGE_DOS_SIGNATURE then
          if SetFilePointer(hFile, ImageDosHeader._lfanew, nil, FILE_BEGIN) <> $FFFFFFFF then
            if ReadFile(hFile, ImageNtHeaders, SizeOf(TImageNtHeaders), BytesRead, nil) then
              if BytesRead = SizeOf(TImageNtHeaders) then
                if ImageNtHeaders.Signature = IMAGE_NT_SIGNATURE then
                  Result:= ImageNtHeaders.FileHeader.TimeDateStamp = BorlandMagicTimeStamp;
    CloseHandle(hFile);
  end;
end;

JXJ 05-04-2006 01:53:10

Con este programa es más fácil y no necesitas de tener que
instalar nada de ocx,

Hecho con delphi.

http://farrokhi.net/language/

seoane 05-04-2006 02:26:28

1 Archivos Adjunto(s)
Aqui os dejo un juguete para los curiosos, usando la funcion que describo arriba, este programa busca en una carpeta (y subcarpetas) que programas estan echos en delphi y los muestra en una lista.

Lo dicho, es solo un juguete :)

Robert01 05-04-2006 03:16:29

usá un descompilador para delphi: form extractor o exe2dpr, la descompilación es sólo para los formularios, de ninguna manera se recupera el código fuente completo

Galbi 06-04-2006 01:06:50

Que más puedo decir....Gracias!!!
 
Me han abrumado tantas respuetas, gracias por su tiempo.

Galbi.


La franja horaria es GMT +2. Ahora son las 06:13:42.

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