![]() |
[DLL Injection] Code in fremden Prozess einschleusen
Hallo, ich beschäftige mich derzeit ein wenig mit DLL Injection und komme nicht weiter :evil:
Ich habe das kostenlose Spiel "Furby Speed" und den "Winject" Injector. Ich nutze Win7 x64. Mein Code sieht derzeit so aus.
Delphi-Quellcode:
Warum stürzt das Programm immer ab wenn ich die DLL Injecte und wie könnte ich das überschreiben von Speicher in Inline Assembler lösen?
library Project1;
uses SysUtils, Windows, Classes; {$R *.res} Procedure HackMe; stdcall; var Data: Array[0..1] of Byte; begin // zu schreibene Offsets Data[0] := $EB; Data[1] := $07; // Speicher Allocen VirtualAlloc(Ptr($0046A4A8), SizeOf(Byte)*2, MEM_RESERVE, PAGE_EXECUTE_READWRITE); VirtualAlloc(Ptr($0046A589), SizeOf(Byte)*2, MEM_RESERVE, PAGE_EXECUTE_READWRITE); // Speicher umschreiben CopyMemory(Ptr($0046A4A8), @Data, SizeOf(Byte)*2); CopyMemory(Ptr($0046A589), @Data, SizeOf(Byte)*2); end; exports HackMe index 1; begin HackMe; end. Vielen Dank für eure Antworten :thumb: |
AW: [DLL Injection] Code in fremden Prozess einschleusen
Meine Frage: Wo ziehlt den deine Adresse erstmal überhaupt hin`? Bist du dir sicher dass deine Adresse richtig ist?(bzw woher weißt du die? o.O)
EDIT: Und Hackme muss eig. nicht exportiert werden. Wenn die DLL per winapi funktion in den Prozess geladen wird, wird automatisch das was zwischen begin...end steht ausgeführt. |
AW: [DLL Injection] Code in fremden Prozess einschleusen
Ich hab das Programm mit OllyDBG analysiert.
Nur manchmal kommt mir der Verdacht, das die DLL im falschen Modul was schreiben will :roll: |
AW: [DLL Injection] Code in fremden Prozess einschleusen
Zitat:
|
AW: [DLL Injection] Code in fremden Prozess einschleusen
Hallo,
Sicher dass das VirtualAlloc nötig/richtig ist? Ich gehe ja mal davon aus, dass du einen vorhandenen (!) Speicherbereich überschreiben willst. VirtualAlloc reserviert aber NEUEN Speicher. Wenn an der Stelle die du bei VirtualAlloc angibst schon Speicher reserviert ist, passiert folgendes: Zitat:
|
AW: [DLL Injection] Code in fremden Prozess einschleusen
Zitat:
Zitat:
|
AW: [DLL Injection] Code in fremden Prozess einschleusen
[QUOTE=Xerogon;1101111]
Zitat:
Zitat:
Edit: Nein, geht nicht. jetzt habe ich eine Zugriffsverletzung in der DLL |
AW: [DLL Injection] Code in fremden Prozess einschleusen
Auf kurz und noch weiter gekürtzt, heißt die Antwort von Neutral General, soviel wie
Delphi-Quellcode:
oder $07EB; :gruebel:
Procedure HackMe; stdcall;
begin // Speicher umschreiben PWord($0046A4A8)^ := $EB07; PWord($0046A589)^ := $EB07; end; Zitat:
Schreibrechte würde man schon für sowas benötigen und diese Rechte ändert man nicht über VirtualAlloc. VirtualAlloc = neuen virtuellen Speicher resservieren, aber wenn man mal bei ![]() ![]() |
AW: [DLL Injection] Code in fremden Prozess einschleusen
@himitsu: Ich glaube es müsste $07EB sein.. Ist aber immer verwirrend :mrgreen:
Wenn das wirklich alles ist, dann würde ich mir den ganzen Mist mit der DLL-Injection sparen und einfach ![]() Edit: Ergänzung zu himitsus Beitrag: Rechte ändert man mit ![]() ![]() |
AW: [DLL Injection] Code in fremden Prozess einschleusen
Ja, Daten aus einer Anwendung mit WriteProcessMemory umschreiben kann ich. Es sollte nur mal als Übung dienen. :roll:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz