![]() |
wie Signatur/Certific. von EXE auslesen (wie sigcheck.exe)
Hi Leute,
ich würde gern das Zertifikat aus einer EXE auslesen, wie sigcheck von ![]() 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 |
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 |
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 |
Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
hi,
also irgendwie komme ich da nicht weiter ....
Delphi-Quellcode:
Der Windows Explorer hat definitiv ein Zertifikat.
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; Was mache ich falsch ? :?: |
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.... |
Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
Zitat:
BTW: try-finally wäre passender als Resourcenschutz (Handle schließen) |
Re: wie Signatur/Certific. von EXE auslesen (wie sigcheck.ex
schon klar ... hilft mir aber nicht viel weiter... :gruebel:
|
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:
Explorer.exe = 0
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; delphi32.exe = 1 Wenn ich mich recht erinnere, sind die delphi32.exe der anderen Delphi-Versionen nicht digital signiert... Gruß Nico |
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:
das muss ja irgendwo herkommen ?
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 |
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 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz