AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Hook-Dll funktioniert nicht global.
Thema durchsuchen
Ansicht
Themen-Optionen

Hook-Dll funktioniert nicht global.

Ein Thema von Hamburch · begonnen am 23. Mär 2007 · letzter Beitrag vom 27. Mär 2007
Antwort Antwort
Hamburch
(Gast)

n/a Beiträge
 
#1

Hook-Dll funktioniert nicht global.

  Alt 23. Mär 2007, 12:51
Hi.
Nach 3 Tagen Arbeit ist es mir nun gelungen einen Api-Hook zu schreiben.
Es gibt aber noch ein Problem.
Wenn ich den Code aus dem Anhang kompiliere, dann geht der Hook auch wunderbar in der testtool.exe aber in anderen .exen leider nicht. Dabei verwende ich SetWindowsHookEx um die Hook-Dll auch in die anderen Processe zu bekommen. Könnte mir jdm sagen, warum es nur in dem einen Prozess geht und in den anderen nicht? So langsam werde ich irre, denn ich sehe den Fehler leider nicht.
Ciao
Angehängte Dateien
Dateityp: rar hook_aus_dll_126.rar (179,0 KB, 31x aufgerufen)
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Hook-Dll funktioniert nicht global.

  Alt 24. Mär 2007, 18:05
Ich weiß nicht, ob's der einzige Fehler ist, aber der ist ziemlich offensichtlich:

Delphi-Quellcode:
          VirtualProtect(base,Size,PAGE_EXECUTE_READWRITE,oldprotec);
          WriteProcessMemory(GetCurrentProcess, base, @NewAddress, Size, geschrieben);
          // NIMN. so nun sollte die Adresse überschrieben sein
          VirtualProtect(base,Size,oldprotec,sinnfrei);
Vielleicht liest du dir vorher nochmal sorgfältig die Doku (sprich das PSDK) durch und entscheidest dich dann für MSDN-Library durchsuchenVirtualProtectEx und die Übergabe des Zielprozeßhandles anstatt MSDN-Library durchsuchenGetCurrentProcess. Ich habe den Code nichtmal ausgepackt, sondern nur in WinRAR schnell angeschaut, also nicht meckern, falls ich noch andere Fehler übersehen habe.
  Mit Zitat antworten Zitat
Hamburch
(Gast)

n/a Beiträge
 
#3

Re: Hook-Dll funktioniert nicht global.

  Alt 25. Mär 2007, 13:51
Ich hatte mir das Ganze eigentlich so vorgestellt, dass die DLL in jeden Process geladen wir und dann dort die entsprechenden Änderungen vornimmt. Deshalb dachte ich mir, dass VirtualProtect reicht.
WriteProcessMemory mit GetCurrentProcess als Parameter habe ich geschrieben, da ich ja nur in dem Process schreiben möchte, in den die DLL geladen wurden.
Mfg,
Hamburch
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#4

Re: Hook-Dll funktioniert nicht global.

  Alt 25. Mär 2007, 15:33
Verstehe. Hast du mit ListDLLs von Sysinternals mal überprüft, ob du das erste Ziel bereits erreichst.
  Mit Zitat antworten Zitat
Hamburch
(Gast)

n/a Beiträge
 
#5

Re: Hook-Dll funktioniert nicht global.

  Alt 25. Mär 2007, 19:41
Autsch!
Die Dll ist nur in meinem testtool.exe geladen und leider nicht global.
AHHHH ich hatte vergessen SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, HInstance, 0); auf zu rufen!
Sorry, dass ich deine Zeit verschwendet habe.
Aber das der Fehler so simpel ist, hätte ich nie gedacht.
Ich habe so ziemlich alles andere für möglich gehalten.
Ciao
  Mit Zitat antworten Zitat
Benutzerbild von Remko
Remko

Registriert seit: 10. Okt 2006
Ort: 's-Hertogenbosch, Die Niederlande
222 Beiträge
 
RAD-Studio 2010 Arc
 
#6

Re: Hook-Dll funktioniert nicht global.

  Alt 27. Mär 2007, 21:18
Can you post your complete, working sample?
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.664 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Hook-Dll funktioniert nicht global.

  Alt 27. Mär 2007, 21:25
Ich glaub, der posted hier nix mehr - ehemaliger Benutzer
Sven Harazim
--
  Mit Zitat antworten Zitat
Benutzerbild von Remko
Remko

Registriert seit: 10. Okt 2006
Ort: 's-Hertogenbosch, Die Niederlande
222 Beiträge
 
RAD-Studio 2010 Arc
 
#8

Re: Hook-Dll funktioniert nicht global.

  Alt 27. Mär 2007, 21:27
Oops das hatte ich nicht gesehen.
  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 10:30 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