Einzelnen Beitrag anzeigen

NicoDE
(Gast)

n/a Beiträge
 
#8

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

  Alt 10. Feb 2005, 19:33
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.dllname '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
  Mit Zitat antworten Zitat