Autor Beitrag
Aya
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1964
Erhaltene Danke: 15

MacOSX 10.6.7
Xcode / C++
BeitragVerfasst: Do 10.01.08 20:46 
Hi,

ich habe mir einen Hook gebastelt um abzufangen wenn ein Programm eine gewisse funktion aufruft. Das klappt soweit auch wunderbar, allerdings nur solange, wie die funktion von einer EXE aufgerufen werden... wenn eine DLL sie aufruft versagt mein Hook :(

Weiß jemand woran das liegen kann??

Aya~

_________________
Aya
I aim for my endless dreams and I know they will come true!
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Do 10.01.08 21:42 
Ich selber kenn mich mit Hooks nicht aus.
Und ich vermute mal, dass man dir ohne Quellcode nur wenig helfen kann?
uall@ogc
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1826
Erhaltene Danke: 11

Win 2000 & VMware
Delphi 3 Prof, Delphi 7 Prof
BeitragVerfasst: Sa 12.01.08 21:01 
kommt auf den Hook an (Import/Export/Code etc.) und bist sicher dass die selbe Funktion von der Dll aufgerufen wird?

_________________
wer andern eine grube gräbt hat ein grubengrabgerät
- oder einfach zu viel zeit
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 19.01.08 00:27 
Zusatzfrage: Globaler oder Prozess-Lokaler Hook?
IAT, ETH, BCO oder anderer Hook?

Wie sieht dein Hook aus???

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
AHT
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 207



BeitragVerfasst: Di 29.01.08 14:41 
Ohne zu wissen, wie du da genau hookst, lässt sich das wirklich nicht sagen.
Manche Programme und DLLs ermitteln die Einsprungsadressen ihrer Importfunktionen einmalig beim Starten und sprechen diese Funktionen dann später über ein Call an (unter Umständen mehr Geschwindigkeit). Hookst du über IAT, hat die DLL sich evtl. schon vor dem Ändern der Pointer die Adressen für ihre Funktionen geholt.

Mit TNT könntest du ja mal schauen, ob deine Pointer oder OP-Codes richtig ausgetauscht wurden.

Desweiteren gibt es auch ein paar sehr wirkungsvolle Methoden, Usermode Hooks einfach zu umgehen und damit auszuschalten.

Gruß

AHT