AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi import / export tables zweier .dlls vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

import / export tables zweier .dlls vergleichen

Ein Thema von Arnulf · begonnen am 15. Jun 2005 · letzter Beitrag vom 21. Jul 2005
 
Arnulf

Registriert seit: 28. Okt 2004
Ort: Wien
271 Beiträge
 
#1

import / export tables zweier .dlls vergleichen

  Alt 15. Jun 2005, 22:16
Hi
Ich kämpf mich gerade durch data directorys und wie ein kleines kind spiel ich damit herum
Ich wollte vor allem fragen, ob ich da völligen unsinn gemacht hab, oder ob das im prinzip richtig ist:

INH1 und INH2 sind bereits die pointer zu den ntheaders.

Delphi-Quellcode:
           ////////////////////////
           /// import tables

           ImpTableSize1 := INH1^.OptionalHeader.DataDirectory[1].Size;
           ImpTableSize2 := INH2^.OptionalHeader.DataDirectory[1].Size;

           ImpTable1 := pointer(pointer(integer(INH1)+integer(sizeof(TIMAGEDATADIRECTORY))*sizeof(IMAGE_DIRECTORY_ENTRY_IMPORT)));
           ImpTable2 := pointer(pointer(integer(INH2)+integer(sizeof(TIMAGEDATADIRECTORY))*sizeof(IMAGE_DIRECTORY_ENTRY_IMPORT)));

           if ImpTableSize1 <> ImpTableSize2 then
              MessageBox(0,'imptable size wrong',nil,0)//result := false;
           else if not comparemem(ImpTable1,ImpTable2,ImpTableSize1) then
                              MessageBox(0,'imptable not same',nil,0);//result := false;;

            ///////////////////////
            ///// export table
           ExpTableSize1 := INH1^.OptionalHeader.DataDirectory[0].Size;
           ExpTableSize2 := INH2^.OptionalHeader.DataDirectory[0].Size;

           pExportDirectory1 := pointer(pointer(integer(INH1)+integer(sizeof(TIMAGEDATADIRECTORY))*sizeof(IMAGE_DIRECTORY_ENTRY_EXPORT)));
           pExportDirectory2 := pointer(pointer(integer(INH2)+integer(sizeof(TIMAGEDATADIRECTORY))*sizeof(IMAGE_DIRECTORY_ENTRY_EXPORT)));

           if ExpTableSize1 <> ExpTableSize2 then
              MessageBox(0,'imptable size wrong',nil,0)//result := false;
           else if not comparemem(pExportDirectory1,pExportDirectory2,ExpTableSize1) then
                              MessageBox(0,'exptable not same',nil,0);//result := false;;
Da ich wirklich kompletter Anfänger bin, hoffe ich es sagt mir jemand ob das kompletter unsinn ist oder es nur reines glück ist, daß mir das nicht abstürtzt .

Danke
Arnulf
Edit: bezugnehmend auf diesen thread: http://www.delphipraxis.net/internal...ll+vergleichen
  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 15:28 Uhr.
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