AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Funktions finden mal etwas anders - an die Experten
Thema durchsuchen
Ansicht
Themen-Optionen

Funktions finden mal etwas anders - an die Experten

Offene Frage von "Tobi482"
Ein Thema von Tobi482 · begonnen am 7. Jul 2006 · letzter Beitrag vom 8. Jul 2006
Antwort Antwort
Tobi482

Registriert seit: 10. Aug 2005
8 Beiträge
 
#1

Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 12:21
Hi Leute,

ich möchte gerne die Speicher-Adresse einer Funktion im einem Prozess finden. Die Funktion ist dabei jedoch nicht eine Funktion aus einer importierten DLL, sondern eine Prozesseigene Funktion.

Hier ein Beispiel an einer Probeprocedure.

Part I
Delphi-Quellcode:
procedure Box(text:string);
begin
     Showmessage(text);
end;
z.B. wird dies in einem Programme verwendet.

Part II
Delphi-Quellcode:
type
     TBox = procedure(text:string);
var
     pBox : TBox;

procedure TForm1.FormCreate(Sender: TObject);
begin
     @pBox = x;
end;
Mein Ziel ist es die Speicheradresse X herauszufinden
Folgende Schwierigkeit stellt sich jedoch bei diesem Unterfangen.

1. Ich habe nicht den Quellcode der EXE in der die Procedure Box deklariert ist.
2. Die EXE selbst ist mit einer Art EXE-Packer überzogen, sodass das man durch
disassamblern auch nicht viel weiter kommt.

Ich injektiere dem Zielprozess eine eigene DLL. In dieser DLL steht ein Code ähnlich dem aus Part II. Ich befinde mich also mit der DLL im Prozessspeicherraum der Anwendung.

Mein Ziel ist es nun, diese eine spezielle Funktion selbst aufzurufen, dafür ist es dringend nötig ihre Position heraus zu finden.

Da ich keine Anhaltspunkt habe wo ich suchen muss, ist das ganze etwas schwierig.

Fragen:

1. Fallen euch irgendwelche Techniken ein?
2. Gibt es eine Debug-Tool welches mir dabei helfen könnte?
3. Wenn es mir gelingen würde den EXE-Packer zu entfernen und die Original EXE zu extrahieren, gäbe es dann eine Art Zentralverzeichnis(Table, etc. ) in der EXE dem alle Funktionen nummeriert mit ihren Adressen stehen?
4. Wenn ja wie finde ich diesen
5. Ich kann den Prozess dazubringen die gesuchte Funktion auszuführen, gibt es ein Tool das die gerade ausgeführten Codeabschnitte lokalisieren kann?

Um vielleicht noch etwas Klarheit in die Sache zu bringen, es handlet sich dabei um eine Art Console. In diese werden Kommandos eingegeben und der Prozess reagiert auf diese. Ich möchte in diese Console gerne Informationen(eigene Ausgabezeilen) hinzufügen, die nichts mit dem eigentlich Prozess zutun haben. Ein Externes Programm lagert Informationen in einer Textdatei aus. Die DLL soll die Funktion "WriteToConsole" aufrufen können und in bestimmten Zeitabständen die Informationen aus der Datei in die besagte Console schreiben.

Dazu ist es halt notwendig die interne SpeicherAdresse dieser Funktion zu wissen.

PS: Bitte schreibt mir, wenn ich an eingigen Stellen mein Problem unverstänbdlch beschrieben habe. Beschreiben war noch nie eine meiner großen Stärken

Bin für jede Hilfe Dankbar

Mit freundlichen Grüßen
Tobi
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#2

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 12:28
Womit ist es gepackt?
Ist es in Delphi geschrieben?
  Mit Zitat antworten Zitat
Tobi482

Registriert seit: 10. Aug 2005
8 Beiträge
 
#3

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 12:49
Hi,

Soweit ich das aus Analysern herauslesen kann, wurde die Anwendung mit

Microsoft Visual C++ ("7.0 Debug", steht als Zusatz in manchen Tools)

geschrieben und kompimiert mit

(laut PEiD v0.93)
PECompact 2.x -> Jeremy Collake

Gruß Tobi
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 13:00
Hallo Tobi,

es ist gewiss nicht mein Spezialgebiet, aber wäre es nicht leichter die i/o handles zu ermitteln, über die der fremde Prozess seine Konsole bedient?

Grüße vom marabu
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#5

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 13:01
Versuchs zu enpacken:
http://programmerstools.org/taxonomy/term/16

Und dann musst du halt schauen, welche Apis sehr wahrscheinlich benutzt werden um halt das scheiben in die COnsole darzustellen. Auf die NEN BP setzen und dann bisl tracen.
  Mit Zitat antworten Zitat
Tobi482

Registriert seit: 10. Aug 2005
8 Beiträge
 
#6

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 13:36
Leider bekomme ich die Datei nicht entpackt

Gibt es eine stelle im Prozesspeicher bei
der alle functions aufgelistet sind?

Was meinst du mit "NEN BP"?

Gruß Tobi
  Mit Zitat antworten Zitat
brechi

Registriert seit: 30. Jan 2004
823 Beiträge
 
#7

Re: Funktions finden mal etwas anders - an die Experten

  Alt 7. Jul 2006, 13:41
Nein es gibt keine Stelle wo alle Funktionen gelistet werden. Solltest du es entpackt bekommen, dann erstellt die IDA so eine Liste.
Sollte "nen BP" heissen - soviel wie 'einen Breakpoint'.
  Mit Zitat antworten Zitat
Tobi482

Registriert seit: 10. Aug 2005
8 Beiträge
 
#8

Re: Funktions finden mal etwas anders - an die Experten

  Alt 8. Jul 2006, 09:04
Hi,

ok ich bins nochmals

ich habe die Datei nun entpackt bekommen !!!

Kannst du mir noch etwas Hilfestellung geben?
Oder den groben Ablauf skizzieren?

Ich habe noch nie mit IDA gearbeitet. Nach dem einladen
gib es mehrere Analyse Felder unteranderem auch eine
Liste mit Sub_nummer (3xxxxx - 8xxxxxx), also eine ganze
Menge von Funktionen.

Ich denke hier bin ich so halb richtig.

Ich wäre dir sehr dankbar wenn du mir noch etwas helfen könntest.

Mit freundlichen Grüßen
Tobi
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:31 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