Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

PE-File auslesen?

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 20.01.2012, 18:33    Titel: PE-File auslesen? Antworten mit Zitat

Hi ich wollte mal ein bischen mich ins PE-Format einarbeiten und einen kleinen PE-Viewer schreiben.

Meine Frage ist nun brauche ich ein bestimmtes Typen Konstrukt?
Wegen den einzelnen Aufbauten der PE Datei?

habe jetzt mal so angefangen:

Code:

Dim p_image_section_header As IMAGE_SECTION_HEADER
Dim p_image_nt_header As IMAGE_NT_HEADERS
Dim pimage_dos_header As IMAGE_DOS_HEADER

Dim f As Integer = FreeFile
Dim dbuff As Byte Ptr

Open "test.exe" For Binary As #f
dbuff = Allocate(Lof(f))
Get #f, , *dbuff,Lof(f)
Close #f


Wie komm ich nun an die einzelnen Infos heran?
den dbuff_pointer per header konstrukte ansteuern?
und dann auslesen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sannaj



Anmeldungsdatum: 19.12.2010
Beiträge: 35

BeitragVerfasst am: 22.01.2012, 13:35    Titel: Antworten mit Zitat

Könnte helfen: http://www.lowlevel.eu/wiki/PE
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
0oFreako0



Anmeldungsdatum: 17.12.2011
Beiträge: 114

BeitragVerfasst am: 26.01.2012, 16:03    Titel: Antworten mit Zitat

So ich bin jetzt schon ein bischen weiter und bräuchte erneut einen kurzen denkanstoss wie kann ich aus einer Dll die Anzahl der Funktionen auslesen?

So weit bin ich schonmal:

Code:

#Define WIN_INCLUDEALL
#Include "windows.bi"


Dim dll As String = "User32.dll"
Dim pdll_base As HMODULE

Dim dHead As IMAGE_DOS_HEADER Ptr
Dim ntHead As IMAGE_NT_HEADERS Ptr
Dim eData As IMAGE_EXPORT_DIRECTORY Ptr

Dim lExportOffset AS Long
Dim lExportLen AS Long



   pdll_base = GetModuleHandle(dll)
   If pdll_base = NULL Then pdll_base = LoadLibrary(dll)
      
   dHead = Cast (IMAGE_DOS_HEADER Ptr, pdll_base)
   
   ntHead = Cast (IMAGE_NT_HEADERS Ptr, @dHead + dHead->e_lfanew)
   
    lExportOffset = ntHead->OptionalHeader.DataDirectory(0).VirtualAddress
   
   
   lExportLen = ntHead->OptionalHeader.DataDirectory(0).Size

   
   eData = Cast(IMAGE_EXPORT_DIRECTORY Ptr,pdll_base + lExportOffset)
   
   
   Print hex( @eData->NumberOfFunctions) <-Wie geht es hier weiter?
   


   
Sleep
End
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz