AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Datei in ein Bytearray einlesen

Ein Thema von Linguini · begonnen am 20. Mai 2009 · letzter Beitrag vom 21. Mai 2009
 
mr_emre_d
(Gast)

n/a Beiträge
 
#16

Re: Datei in ein Bytearray einlesen

  Alt 21. Mai 2009, 12:50
Die Funktion GetEntryPoint verlangt ein ByteArr. welches das ganze Image enthält.

Dh. du musst zuerst einmal eine Variable vom Typ TByteArr definieren;
dann lädst du die Image-Datei rein. Anschließend übergibts du der Funktion die
verlangten zwei Parameter und bekommst ein EntryPoint zurückgeliefert.

Der zweite Parameter ist eine Struktur, deren Aufbau du dir in der Unit anschauen kannst.

Wie du schon siehst, wird in der eigentlich GetEntryPoint Routine das PE_Offset Element benötigt - Dazu musst du vorher noch GetPEOffset() aufrufen.

Bevor du jedoch irgendetwas mit dem ByteArr-Image anstellst, prüf nach ob es eine Valide (Exe)Image Datei ist (->ValidateEXEFile und ValidatePEFile müssen beide True zurückliefern).

Viel Glück

EDIT:
Delphi-Quellcode:
function easyGetEntryPoint(Filename: String): Cardinal; // für dich vereinfachte form
var
  F: File of Byte;
  RawFileData: TByteArr;
  PEParams: TParameters;
begin
  Result := INVALID_HANDLE_VALUE;
  if not FileExists( Filename ) then
    Exit;
  // -Einlesen
  AssignFIle( F, Filename );
  Reset( F );
  SetLength( RawFileData, FileSize( F ) );
  BlockRead( F, RawFileData[0], Length(RawFileData) );
  CloseFile( F );
  // -Validieren
  if not ValidateExeFile( RawFileData ) then
    Exit;
  FillChar( PEParams, SizeOf(PEParams), 0 );
  GetPEOffset( RawFileData, PEParams );
  if not ValidatePEFile( RawFileData, PEParams.PE_Offset ) then
    Exit;
  // EntryPoint ermitteln
  GetEntryPoint( RawFileData, PEParams );
  SetLength( RawFileData, 0 );
  Result := PEParams.EntryPoint;
end;
MfG
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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