AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP)
Thema durchsuchen
Ansicht
Themen-Optionen

Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP)

Ein Thema von Zacherl · begonnen am 13. Dez 2007 · letzter Beitrag vom 17. Dez 2007
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#11

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 14. Dez 2007, 22:30
Hat das irgendwas mit diesem Thread zu tun? Dein letzter Beitrag hört sich nämlich nach dem selben Problem an, auch wenn du Vista nicht erwähnst.

Hast du in deiner Exe eigentlich funktionierende globale Variablen? Dann könnte man die Image-Base nämlich ausschließen, da globale Variablen ja wie Funktionszeiger absolut adressiert werden.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#12

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 14. Dez 2007, 23:25
@Apollonius: Ja da hatte ich mich schonmal mit der Sache beschäftigt. Globale Variablen funktionieren ..
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#13

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 14. Dez 2007, 23:27
Ob es an der geänderten Image Base liegt, kannst Du doch ganz simpel ausprobieren, indem Du die eingebettete Exe standalone startest. Wenn das auch nur Fehler 193 liefert, dann verweigert Vista wohl einfach Exen die nicht bei $00400000 im Speicher anfangen. Warum muss es denn überhaupt eine komplette Exe sein? Kannst Du nicht einfach etwas relevanten Code in eine frei relozierbare Form bringen und einfach irgendwo im Speicher ausführen? Ich kann Dir da gerne helfen, dazu muss ich dann mir aber natürlich den ganzen Kram anschauen.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#14

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 13:56
Also es scheint nicht an der ImageBase zu liegen, da das Programm normal ausgeführt keinerlei Fehler verursacht. Aber auch wenn meine eigene ImageBase 0x004000000 ist und ich das Programm aus der Resource ausführe bekomme ich 193 wenn ich versuche CreateThread aufzurufen .. es muss irgendeinen Grund geben, den ich bisher übersehen habe.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 14:09
Wir können ja leider nicht testen (mir fehlt schonmal das BS dazu). Aber gib doch mal aktuelle Adressen des Codes aus, oder sende es per Message. Kannst du mit dem@-Operator die Adresse einer anderen Funktionsvariablen (var x:function(...)) zuweisen und diese dann starten?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#16

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 14:13
Du meinst so:

Delphi-Quellcode:
function ThreadProc(P: Pointer): Cardinal; stdcall;
begin
  MessageBox(0, 'Thread', 'Info', MB_SYSTEMMODAL);
  Result := 0;
end;

var
  X: function(P: Pointer): Cardinal; stdcall;

...

  @X := @ThreadProc;
  X(nil);
Ja das funktioniert
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 14:18
hmmm
Jetzt könnte man noch schauen, wie sieht der Stack aus vor dem Aufruf con CreateThread, und wie die Sprungadresse. Und dass dann vergleichen... Wird ja immer umständlicher.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#18

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 15:01
Wie kann ich das nachgucken? Mit OllyDbg? Weil ich starte ja praktisch den Prozess neu und injiziere dann den Code der EXE aus der Resource.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 15. Dez 2007, 20:03
Erhlich gesagt: keine Ahnung Aber irgendetwas muss ja anders sein.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von OldGrumpy
OldGrumpy

Registriert seit: 28. Sep 2006
Ort: Sandhausen
941 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Adresse einer Funktion ohne @ ermitteln (evtl über CS:IP

  Alt 16. Dez 2007, 10:58
Ich muss mir noch den grundlegenden Artikel mit dem inmemexe durchlesen, bin gerade bei meinen Eltern zu Besuch Aber hast Du auch dafür gesorgt, dass die injizierte Exe mit allen notwendigen Imports und Relocs versehen wird? Allerdings würd das nicht direkt erklären warum das auf XP geht und auf Vista nicht. Handelt es sich eigentlich um ein 32-Bit oder 64-Bit Vista?
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet. " (Henning Richter)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


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 19:20 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