Hey,
Habe vorhin ein Hook zusammengeschraubt womit ich mir bisschen die Pakete von Netzwerk Programmen anschauen wollte. In Counterstrike funktioniert das ganze ohne große Probleme, bei Firefox oder WoW schmiert es aber mit ner Acces Violation ab.. hab ich da irgendwas übersehen im Code?
Versuch schon seit gut ner Stunde rum, bekomms aber nicht gebacken.. mittlerweile schaut der Code auch schon bissel wüsst aus vom rumprobieren..
Hab ich da ne Deklation falsch gesetzt oder sonstige Noob fehler die man normal sehen sollte?
Bin verwirrt :s..
Die Log vom Wow Ordner sagt mir leider auch nicht all zu viel..
Code:
Program: Wow.exe
ProcessID: 1132
Exception: 0xC0000005 (ACCESS_VIOLATION) at 0023:104E2F78
The instruction at "0x104E2F78" referenced memory at "0x104E2F78".
The memory could not be "executed".
musst in der detour funktion dem allokierten buffer mit virtualprotect execute rechte geben, ansonsten kriegste obige access violation wenn der prozess mit DEP läuft und versucht dein trampolin auszuführen.
musst in der detour funktion dem allokierten buffer mit virtualprotect execute rechte geben, ansonsten kriegste obige access violation wenn der prozess mit DEP läuft und versucht dein trampolin auszuführen.
Mit VirtualProtect, oh Gott... Du weißt hoffentlich, das VirtualProtect immer eine ganze memory PAGE ändert.
Wie wärs mal mit nem heap der HEAP_CREATE_ENABLE_EXECUTE gesetzt hat?
Was soll überhaupt diese Rotz Detourfunktion. Weißt du überhaupt was passiert, wenn ein anderer Thread gerade in dem Moment in dem du versuchst einen Detour zu schreiben diese 5+ bytes ausführt?
Mit VirtualProtect, oh Gott... Du weißt hoffentlich, das VirtualProtect immer eine ganze memory PAGE ändert.
Wie wärs mal mit nem heap der HEAP_CREATE_ENABLE_EXECUTE gesetzt hat?
Was soll überhaupt diese Rotz Detourfunktion. Weißt du überhaupt was passiert, wenn ein anderer Thread gerade in dem Moment in dem du versuchst einen Detour zu schreiben diese 5+ bytes ausführt?
Threadsicherheit = NULL
weißte wie wenig das bei einem 0815 hack interessiert, dass es in 0.0000000000000001% der fälle mal nicht so optimal laufen kann?
wenn man direkt alle rechte setzt kann eh ziemlich wenig schiefgehen @ page.
Was ist aber, wenn dieser "0.0000000000000001% der fälle" mal eintritt, das kriegst du niemals richtig debuggt und gefixed.
Ausreden wie "das ist doch hier nicht wichtig" oder "wen interessiert das, das ist nur für mich" sind immer Schwachsinn, man sollte IMMER richtigen Code schreiben und nicht nur wenn's wichtig ist.
Was ist aber, wenn dieser "0.0000000000000001% der fälle" mal eintritt, das kriegst du niemals richtig debuggt und gefixed.
Ausreden wie "das ist doch hier nicht wichtig" oder "wen interessiert das, das ist nur für mich" sind immer Schwachsinn, man sollte IMMER richtigen Code schreiben und nicht nur wenn's wichtig ist.
Padmak
warum nicht gleich alle werte die du jemals benutzt doppelt abspeichern, am besten noch mit nem server synchronisieren, kann ja sein, dass kosmische strahlung mal nen bit im ram dreht, oder die NSA deine daten manipuliert!!!111einself11
Was soll überhaupt diese Rotz Detourfunktion. Weißt du überhaupt was passiert, wenn ein anderer Thread gerade in dem Moment in dem du versuchst einen Detour zu schreiben diese 5+ bytes ausführt?
Threadsicherheit = NULL
Das ist die ganz normale Gamedeception Detour Funktion die du eigendlich überall findest, wenn mal nicht die Ms Detour benutzt wird..
Was erwartest du bitte von mir?..
Es geht mir hier nur darum die Netzwerkpakete die mit Winsock send rausgeschickt werden abzufangen und mir anzuzeigen, nicht darum nen ultra Programm zu machen das 100% sicher ist und sauber läuft bei anderen.
@Topic
Habe jetzt versucht die Execute Rechte (PAGE_EXECUTE_READWRITE) zu setzen, aber komischerweise schmiert das ganze immer noch ab, werde mir das ganze irgendwie später nochmal anschaun müssen.. hm
Das ist die ganz normale Gamedeception Detour Funktion die du eigendlich überall findest, wenn mal nicht die Ms Detour benutzt wird..
Was erwartest du bitte von mir?..
Es geht mir hier nur darum die Netzwerkpakete die mit Winsock send rausgeschickt werden abzufangen und mir anzuzeigen, nicht darum nen ultra Programm zu machen das 100% sicher ist und sauber läuft bei anderen.
@Topic
Habe jetzt versucht die Execute Rechte (PAGE_EXECUTE_READWRITE) zu setzen, aber komischerweise schmiert das ganze immer noch ab, werde mir das ganze irgendwie später nochmal anschaun müssen.. hm
was fürn windoof, zeig mal, was du genau machst und guck mal mitm taskmanager nach ob der prozess data execution prevention aktiviert hat (musste evtl noch die spalte im taskmanager aktivieren).
was fürn windoof, zeig mal, was du genau machst und guck mal mitm taskmanager nach ob der prozess data execution prevention aktiviert hat (musste evtl noch die spalte im taskmanager aktivieren).
Also beim Wow.exe Prozzes is die DEP Aktiviert laut Taskmanager..
Habe das ganze jetzt nochmal bisschen anders gemacht (hatte vorhin nochmal ne eigene detour funktion versucht die ich damals mal schrieb, aber die ist schrott.. ) - jetzt Crasht das ganze nicht mehr.. nur werden jetzt in der Console keine Pakete mehr angezeigt.
Bei Wow.exe könnte es vllt daran liegen das es per WSAsend schickt aber bei Counterstrike hats gestern ja geklappt, aber dort wirds auch nicht mehr angezeigt.. ein teufels kreis
Eigendlich sollte es ja die Anzeige anzeigen, tuts aber leider nicht..hm..
Jetzt erstmal was futtern.. später nochmal drüber schaun^^
p.s: Hab grade bei Filezilla getestet, da funktionierts - in Wow jetzt auch^^ Danke für eure Hilfe
Hätte ich eigendlich selbst drauf kommen können wegen den EXECUTE Rechten.. grml Peinlich^^
sowas kann ja auch mal andere ursachen haben..
Hatte das z.b damals auch bei Detours wo es andere Fehler gab wo es dann zur selben Meldung kam, es aber an völlig anderen Dingen lag.. von daher war das dann etwas verwirrend für mich.. hätte aber eigendlich selbst drauf kommen sollen..
Ausschnitte davon sind teilweise von dort übernommen ja
Aber ich benutze das Progg (btw die Dll) ja nur für mich und release es nicht (mittlerweile hab ich ne eigene Version geschrieben) , weil ich von WoW die gesendeten Pakete abfangen wollte und dann bisschen Pakete reversen - da kam mir die kleine Vorlage recht zum bisschen rumprobieren mit den Paketen. Hatte lange nicht mehr mit Hooks gearbeitet, nur damals bei Counterstrike noch mit Opengl Hooks.. und da brauchte ich bisschen Einstieg wieder - und dafür sind Tutorials ja da
Ausschnitte davon sind teilweise von dort übernommen ja
Aber ich benutze das Progg (btw die Dll) ja nur für mich und release es nicht (mittlerweile hab ich ne eigene Version geschrieben) , weil ich von WoW die gesendeten Pakete abfangen wollte und dann bisschen Pakete reversen - da kam mir die kleine Vorlage recht zum bisschen rumprobieren mit den Paketen. Hatte lange nicht mehr mit Hooks gearbeitet, nur damals bei Counterstrike noch mit Opengl Hooks.. und da brauchte ich bisschen Einstieg wieder - und dafür sind Tutorials ja da
Tu dir einfach selbst den gefallen und nimm MS Detours 2.x+
Außer für kommerzielle Projekte, da darfst du das nicht benutzen.
Winsock send Hook Problem 08/08/2011 - General Coding - 20 Replies Huhu,
Ich würde gerne die send(...) Mehtode hooken, um das Socket abfangen zu können, damit ich danach eigene Pakete verschicken kann.
Das Problem besteht darin, dass sobald ich die dll injecte(z.b in firefox) und ein paket versende, einmal die MessageBox erscheint, das send() aufgerufen wurde und danach das Programm abstürtzt. Zum hooken benutze ich microsoft detours 1.5 und arbeite unter win 7 64bit. Die dll compile ich als 32bit und injecte sie auch in einen 32bit prozess.
Würde mich...
How to send a packet taken from WPE PRO with Winsock control vb2010 06/03/2011 - .NET Languages - 53 Replies Hi all , here's my code
Public Class Form1
Private Sub AxWinsock1_ConnectEvent(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Winsock1.ConnectEvent
Me.Text = "Connected to bot"
MsgBox("Connection Successful")
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Winsock1.RemoteHost = "localhost"
[C++] winsock ws_32.dll hook 06/05/2009 - C/C++ - 5 Replies i am trying to make a hack for a online game.
but i don't know how to hook my program to the process name : khanclient.exe
can someone help me? this is my current code in VB2008
the point in this is i want to click a button and send a packet to server from client. i hope you get what i mean.
here is a screenshot: