Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi wie Signatur/Certific. von EXE auslesen (wie sigcheck.exe) (https://www.delphipraxis.net/39528-wie-signatur-certific-von-exe-auslesen-wie-sigcheck-exe.html)

TKC 3. Feb 2005 23:15


wie Signatur/Certific. von EXE auslesen (wie sigcheck.exe)
 
Hi Leute,

ich würde gern das Zertifikat aus einer EXE auslesen, wie sigcheck von www.sysinternals.com.

Bin nun schon seit 2 Tagen dran das zu realisieren und habe noch nicht ein mal einen Ansatz :wall: !

Hat jemand einen Denkanstoß für mich?

Bin für jeden Tip dankbar.


cya

negaH 4. Feb 2005 00:02

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
wenn ich mich recht entsinne dann sind solche Funktionen in ImageHlp.dll enthalten.

Gruß Hagen

TKC 4. Feb 2005 17:19

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
hi,

danke ! super ! ... genau der Ansatz hat mir gefehlt .. ich werde mal ne Unit dafür machen,
evtl. kann das ja noch jemand gebrauchen.

cya

TKC 9. Feb 2005 22:45

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
hi,

also irgendwie komme ich da nicht weiter ....

Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
  hFile            : THandle;
  x                : DWORD;
  px               : pdword;

BEGIN

  hFile := CreateFile(PChar('c:\windows\explorer.exe'), FILE_READ_DATA, 0,0, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);

  IF hFile = 0 THEN exit;

  x := 0;
  px := @x;

  IF ImageEnumerateCertificates(hFile, CERT_SECTION_TYPE_ANY, px, NIL, 0) THEN
    BEGIN
    x:=px^;
   
    ShowMessage(IntToStr(x));
    END;

END;
Der Windows Explorer hat definitiv ein Zertifikat.

Was mache ich falsch ? :?:

TKC 10. Feb 2005 15:05

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
hat denn wirklich keiner ne Idee um mir zu helfen :cry:


Es muss doch irgendwie gehen....

NicoDE 10. Feb 2005 15:11

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
Zitat:

Zitat von ACE-ppc
Delphi-Quellcode:
IF hFile = 0 THEN exit;

RTFM: "If the function fails, the return value is INVALID_HANDLE_VALUE."
BTW: try-finally wäre passender als Resourcenschutz (Handle schließen)

TKC 10. Feb 2005 18:45

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
schon klar ... hilft mir aber nicht viel weiter... :gruebel:

NicoDE 10. Feb 2005 19:33

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
Vielleicht hat deine Explorer.exe keine Zertifikats-Sektion.
(Kartenreiter 'Digitale Signaturen' in den Dateieigenschaften)
Bei mir funktioniert (unter Wine) folgendes problemlos:
Delphi-Quellcode:
function ImageEnumerateCertificates(FileHandle: THandle; TypeFilter: Word;
  out CertificateCount: DWORD; Indices: PDWORD; IndexCount: DWORD): BOOL;
  stdcall; external 'imagehlp.dll' name 'ImageEnumerateCertificates';

procedure TForm1.Button1Click(Sender: TObject);
const
  FILE_READ_DATA       = $01;
  CERT_SECTION_TYPE_ANY = $FF;
var
  FileHandle: THandle;
  CertificateCount: DWORD;
begin
  FileHandle := CreateFile(PChar('D:\borland\delphi3\BIN\delphi32.exe'),
    GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0);
  if FileHandle = INVALID_HANDLE_VALUE then
    ShowMessage('CreateFile: ' + SysErrorMessage(GetLastError))
  else
  try
    CertificateCount := 0;
    if not ImageEnumerateCertificates(FileHandle,
      CERT_SECTION_TYPE_ANY, CertificateCount, nil, 0) then
      ShowMessage('ImageEnumerateCertificates: ' + SysErrorMessage(GetLastError))
    else
      ShowMessage('CertificateCount: ' + IntToStr(CertificateCount));
  finally
    CloseHandle(FileHandle);
  end;
end;
Explorer.exe = 0
delphi32.exe = 1

Wenn ich mich recht erinnere, sind die delphi32.exe der anderen Delphi-Versionen nicht digital signiert...

Gruß Nico

TKC 10. Feb 2005 21:52

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
hmm ... klappt bei mir auch nicht ... auch mit deinem Code und der bds.exe nicht.

Der Windows Explorer hat definitif eins ... !


D:\Daten\Software\Systemtools\Sysinternals>sigchec k.exe c:\winnt\explorer.exe

Delphi-Quellcode:
Sigcheck v1.1
Copyright (C) 2004-2005 Mark Russinovich
Sysinternals - [url]www.sysinternals.com[/url]

c:\winnt\explorer.exe:
        Verified:      Signed
        Signing date:  06:30 20.06.2003
        Publisher:     Microsoft Corporation
        Description:   Windows Explorer
        Product:       Betriebssystem Microsoft(R) Windows (R) 2000
        Version:       5.00.3700.6690
        File version:  5.00.3700.6690
das muss ja irgendwo herkommen ?

Kernel32.DLL 10. Feb 2005 22:02

Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
 
Is' Sigcheck eigentlich für alle Windowsversionen gedacht?

Vielleicht hilft es dir ja auch, wenn du dir mal ansiehst, welche DLL's das Proggi aufruft..


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz