|
You last visited: Today at 06:56
Advertisement
NtQueryVirtualMemoryHook-Keine Calls möglich
Discussion on NtQueryVirtualMemoryHook-Keine Calls möglich within the General Coding forum part of the Coders Den category.
03/17/2010, 19:13
|
#1
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
NtQueryVirtualMemoryHook-Keine Calls möglich
Hallo liebe Mitcoder,
Falls ihr sehr wenig bis 0 Ahnung vom Hooken und/oder der Native Api habt, könnt ihr den Thread wieder verlassen (gut, ihr könnt natürlich aus reinem Interesse mitlesen, aber ihr werdet dann dabei sicher nicht so viel lernen...).
An die anderen, die Ahnung haben und nun noch weiterlesen, habe ich eine Fragestellung zu einem ziemlich verwirrendem Problem:
Aus mir unbekannten Gründen verspürte ich Lust, meine Hooks, die meist eh nicht detected werden, wirklich fast vollständig (Usermode) undetected zu machen.
Da wohl ziemlich häufig die Funktion NtQueryVirtualMemory zur Hookdetection genutzt wird, habe ich es mal damit probiert (und hier wurde das auch geraten  ).
Wie dem auch sei, ich habe es schonmal geschafft, nicht vorhandene Hooks damit detected zu machen  (Scheinbar werden von XTrap doch OS Funktionen geprüft, allerdings nicht alle und ich hatte bis vor kurzem nur nicht-geprüfte gehookt. Nunja, da ich aber NtQueryVirtualMemory einfach failen ließ, um es mal zu testen, wurden auch gar nicht gehookte Funktionen als Hooks erkannt^^)
Problem ist, um ernsthaft Hookdetection zu vermeiden, muss ich auch die Originalfunktion aufrufen (in meinem wirren Gedankengang...wenn jemand davon Ahnung hat und weiß, wie es ohne sie aufzurufen möglich ist, gültige Werte zu returnen, die zu keinem Crash führen und die auch so sind, als wäre nichts gehookt, kann er mich eines Besseren belehren).
Das funktioniert aber nicht, innerhalb von NtQueryVirtualMemory kann ich weder callen noch jumpen.
Wenn ich sie hooke und eine simple MessageBox ausgeben will -> Crash
Wenn ich einfach die originale Version aufrufen will -> Crash
Wenn ich nichts mache, als 1 zurückzugeben -> Kein Crash, aber XTrap nörgelt rum...
Dieses Problem tritt bei mir nur bei dieser Funktion auf, überall anders geht es.
Habe schon im Debugger durchgesteppt (erstmal mit ner anderen Nt Funktion, die auch defintiv gecalled wird, damit ich mal sehen kann, was genau passiert, aber damit gabs ja keine Probleme...fürs Testen von NtQueryVirtualMemory müsste ich mir erstmal eine Testapp schreiben...) und nichts auffälliges bei anderen Nt Funktionen mit dem Verfahren gefunden.
Der Aufbau in der Ntdll ist eigentlich der gleiche, wie bei den anderen Funktionen!
Also woran kann das liegen, dass ich nichts innerhalb des Hooks callen kann (oder zu ner anderen Funktion jumpen)?
Wäre schön, wenn mir jemand helfen könnte, Danke im Voraus
|
|
|
03/17/2010, 21:40
|
#2
|
elite*gold: 0
Join Date: Apr 2007
Posts: 943
Received Thanks: 132
|
was gibts denn für n fehler?
EDIT:
Probier mal die Register mit pushad & popad zu sichern, vlcht liegts dadran
|
|
|
03/17/2010, 21:55
|
#3
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
es crasht einfach
und ich kann leider nicht runtime debuggen wegen themida
ich probiers mal
edit:
nö geht nicht.
hätt mich auch gewundert...
naja ich denk mal, ich komm um die testapp, ums debuggen zu können nicht rum
|
|
|
03/19/2010, 00:35
|
#4
|
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
|
Womit hookst du? Detours?
|
|
|
03/19/2010, 15:16
|
#5
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
jo
|
|
|
03/20/2010, 08:35
|
#6
|
elite*gold: 20
Join Date: Jan 2006
Posts: 539
Received Thanks: 228
|
Funktioniert der Hook jetzt in deiner "Testapp" oder crasht es? Wenn er da auch crasht liegt es an deinem hook, wenn nein warscheinlich an Themida (bringt auch API Protections mit).
Quote:
Das funktioniert aber nicht, innerhalb von NtQueryVirtualMemory kann ich weder callen noch jumpen.
Wenn ich sie hooke und eine simple MessageBox ausgeben will -> Crash
Wenn ich einfach die originale Version aufrufen will -> Crash
Wenn ich nichts mache, als 1 zurückzugeben -> Kein Crash, aber XTrap nörgelt rum...
|
Deutete aber eher auf einen Fehler in deinem Hook hin.
Quote:
|
Problem ist, um ernsthaft Hookdetection zu vermeiden, muss ich auch die Originalfunktion aufrufen (in meinem wirren Gedankengang...wenn jemand davon Ahnung hat und weiß, wie es ohne sie aufzurufen möglich ist, gültige Werte zu returnen, die zu keinem Crash führen und die auch so sind, als wäre nichts gehookt, kann er mich eines Besseren belehren).
|
Du musst die original Funktion aufrufen (du kannst auch versuchen das Page Directory und die Page Tables selber zu parsen :P), steht aber auch in dem Link den du gepostete hast unter "8. Speicher".
|
|
|
03/20/2010, 09:52
|
#7
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Ok, danke für die Hilfreiche Antwort.
Für die Testapp hatte ich noch keine Zeit, das mache ich heute oder morgen.
Ich glaube aber nicht wirklich, dass es am Hook liegt, denn wenn ich die Funktion einfach nur nichts tun lasse, außer 1 zurückzugeben, kommt kein Crash.
Da könnte man ja meinen, es liegt am Trampolin, aber auch wenn ich was ganz anderes, wie zb. MessageBox calllen will, crashts, genau wie bei eine Jmp.
Wenn ich allerdings in die Hookfunktion ein bisschen sinnloses inline asm schreibe und darin gibts ein paar Jumps, funktionierts wieder, nur nicht, wenn ich zu irgendeiner anderen Api Funktion springen will.
Könnte es evtl. an den Callingconventions liegen?
|
|
|
03/20/2010, 11:00
|
#8
|
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
|
Du musst übrigens fast nen Treiber schreiben, um das sicher zu machen.
Es gibt geschätzt hundert Möglichkeiten, die DLL neu zu laden und zu mappen, da reicht ein LoadLibrary()-Hook nicht aus.
|
|
|
03/25/2010, 14:11
|
#9
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by flo8464
Du musst übrigens fast nen Treiber schreiben, um das sicher zu machen.
Es gibt geschätzt hundert Möglichkeiten, die DLL neu zu laden und zu mappen, da reicht ein LoadLibrary()-Hook nicht aus. 
|
Ne für mich ist ein Treiber dank 64bit eher unnötig.
Ich will gar nicht LoadLibrary hooken, da die Dllinjection nicht detected wird, es werden nur ein paar Funktionen überprüft, wie zb. EnumProcesses
Btw. ich glaube ich habe den Fehler, ich werde es direkt jetzt gleich mal testen.
Ich hatte NtQueryVirtualMemory ja als NTAPI deklariert und auch, wenn das eigentlich richtig ist, als ich das gestern auch so mit NtQueryInformationProcess machte, welche ja auch die Callingconvention NTAPI hat, crashte es ebenfalls.
Mit WINAPI ging es bei NtQueryInformationProcess seltsamerweise...ich werds wohl auch mal mit NtQueryVirtualMemory testen
|
|
|
03/25/2010, 14:24
|
#10
|
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
|
Quote:
Originally Posted by MrSm!th
Ne für mich ist ein Treiber dank 64bit eher unnötig.
Ich will gar nicht LoadLibrary hooken, da die Dllinjection nicht detected wird, es werden nur ein paar Funktionen überprüft, wie zb. EnumProcesses 
|
Naja, ich meinte eher dass man einfach NTQVM neu laden kann und dein Hook ist für die Katz.
|
|
|
03/25/2010, 14:39
|
#11
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
Quote:
Originally Posted by flo8464
Naja, ich meinte eher dass man einfach NTQVM neu laden kann und dein Hook ist für die Katz. 
|
Jo aber hier gehts um XTrap ;D
Meine erste Methode, CE undetected zu machen, war einfach OpenProcess failen zu lassen. Was haben sie geändert? Sie nutzten NtOpenProcess
|
|
|
03/25/2010, 14:52
|
#12
|
elite*gold: 0
Join Date: Nov 2008
Posts: 161
Received Thanks: 38
|
Quote:
Originally Posted by MrSm!th
Jo aber hier gehts um XTrap ;D
Meine erste Methode, CE undetected zu machen, war einfach OpenProcess failen zu lassen. Was haben sie geändert? Sie nutzten NtOpenProcess 
|
Naja, wie gesagt, darauf können sie reagieren. 
WoW-Warden macht das zb.
Gegen manuelles mappen ist es schwer vorzugehen. Da müsste man theoretisch alle File-APIs hooken.
|
|
|
03/25/2010, 17:09
|
#13
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
schon dran gedacht mit ner proxy dll zu arbeiten?
das könnte vllt was bringen....
ich muss mich auch mit xtrap rumschlagen, wobei ich noch nich soweit bin alles undetected zu machen
|
|
|
03/25/2010, 17:55
|
#14
|
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,902
Received Thanks: 25,407
|
ach proxy dlls find ich eigentlich sinnlos.
vor allem weil ich mir sicher bin, dass es an den callingconventions
|
|
|
03/25/2010, 18:03
|
#15
|
elite*gold: 0
Join Date: Oct 2008
Posts: 1,637
Received Thanks: 1,119
|
so viel machen die calling conventions auch nich her (daran lags bei mir bisher noch nie  )
jedenfalls mit ner proxy dll könnte es klappen! (vorrausgesetzt die werden nich geprüft)
|
|
|
 |
|
Similar Threads
|
[Problem] V15 Server über Hamachi - Keine Verbindung bei Freunden möglich.
08/18/2010 - Flyff Private Server - 7 Replies
Hallo,
ich habe mir einen v15 Server nach Sedrikas TuT eingerichtet.
Auch habe ich der Anleitung zum Spielen mit Freunden über Hamachi gefolgt (siehe .ini´s unten), jedoch
können meine Freunde bzw mein Cousin und dessen Freund nicht connecten. Sie haben den SedrikaClient, die
.res Dateien, die Flyff.a, die Neuz.ini und die per ResHacker editierte Neuz.exe mit der Hamachi IP drin.
Wenn sie aber spielen wollen kommt schon bei login die Meldung
"Verbindung zum Server nicht möglich".
|
How to find calls
12/16/2009 - Dekaron - 8 Replies
I know how to find things using CE that have a number value, like skills and hp and shield, etc. But how do you find things that don't have number values, like animations or agro and vac values?
|
Ab level 10 keine Stages mehr möglich?
09/13/2009 - C9 - Continent of the Ninth - 5 Replies
Edit: danke leute geht schon wieder :)
|
Hackshield Calls [halbrelease]
08/31/2009 - S4 League - 9 Replies
0074f3bc HS update (hier ist der genaue call fürs update)
ab 00a23083 beginnen die HS jnz die übers HS laden oder nicht entscheiden
(im alten client führte nopen zu errors)
00a1ff19 ehsvc call allgemein + informs (hier ist der call in dem der
genaue call ist! grund für doppelten eintrag: bei xorheater
waren nur diese allgemeinen calls ersetzt und nicht die
genauen...
|
Account eingefroren / keine Zahlung möglich
12/18/2008 - World of Warcraft - 5 Replies
So bei meinem Accoutn steht unten das er eingefroren ist und wenn ich ihn nun mit einer game card bezahlen will steht da
Andere Zahlungsmöglichkeiten kommt leider das selbe >_<
Könnt ihr mir pls helfen... DANKE :)
|
All times are GMT +1. The time now is 07:03.
|
|