Forum: Win32/Win64 API (native code)
by Apollonius,
31. Dez 2007
Du willst nicht die Summe von $E8 und der Adresse schreiben, sondern erst $E8 und dann die Adresse. Das kannst du entweder mit einem Array machen, was meiner Meinung nach allerdings unnötig kompliziert ist. Ich würde einfach zweimal WriteProcessMemory aufrufen. Und vergiss bitte nicht, dass der dritte Parameter ein Zeiger auf die Daten ist.
Irgendwie kommt es mir so vor, als hätte ich dir schon...
Forum: Win32/Win64 API (native code)
by Apollonius,
31. Dez 2007
WOZU BRAUCHST DU DAS? Du kannst den Pointer auch direkt schreiben! Mal im Ernst, schau dir einfach mal die Parameter von WriteProcessMemory an.
Forum: Win32/Win64 API (native code)
by Apollonius,
31. Dez 2007
Ich verstehe weniger als vorher. Du versuchst, in ein Programm eine Call...-Anweisung einzufügen, richtig? Dann suchst du dir erstmal den Opcode von Call raus und schaust, ob die Adresse relativ oder absolut erwartet wird.
Forum: Win32/Win64 API (native code)
by Apollonius,
31. Dez 2007
Ich verstehe dein Problem nicht. Du schreibst den Opcode für Call, dann schreibst du die Adresse. Fertig. Und du solltest dich nicht auf Arrays festlegen. Du brauchst irgendeinen Puffer. Du kannst auch den Inhalt einer Integer-Variablen in den fremden Prozess schreiben.
Forum: Win32/Win64 API (native code)
by Apollonius,
31. Dez 2007
Wenn lulz lokal ist, wie soll das dann funktionieren? Wenn der Haken in der Checkbox entfernt wird, wird das Ereignis aufgerufen, und in lokalen Variablen steht nunmal am Anfang Müll! Also global machen, damit der Pointer erhalten wird.
Die Frage mit den Opcodes wird hier gerade geklärt.
Forum: Win32/Win64 API (native code)
by Apollonius,
30. Dez 2007
Keinen festen was? Du hast doch die Adresse, das ist doch gerade lulz. Sorry, aber ein bisschen solltest du dir auch anschauen, was die Funktionen zurückgeben.
Ist lulz eigentlich global oder lokal?
Forum: Win32/Win64 API (native code)
by Apollonius,
30. Dez 2007
Der erste Punkt lässt sich nicht ändern. Die Virtual-Funktion arbeiten immer mit ganzen Pages, die bei Windows üblicherweise 4 Kilobytes groß sind.
Für den zweiten Punkt solltest du dir noch mal dein Programm anschauen: Du rufst nämlich VirtualFreeEx genau dann auf, wenn du VirtualAllocEx nicht aufgerufen hast. Was soll das?
Und für das dritte solltest du dir nochmal überlegen, was du...