![]() |
WriteProcessMemory wenn dll bereits injected
Hi Leute ,
ich spiel momentan noch immer mit dll injecten rum und hab überlegt in dem Programm in das ich injected habe, Programmcode zu verändern (vergleichbar mit dem was man in olly machen kann (NOP setzen usw..) normalerweise könnte ich sowas ja extern machen über openProcess.. WriteProcessMemory Da die dll nun im Programm schon drinsteckt und ausgeführt wird, dachte ich mir ich müsste doch auch so was verändern können z.B.: mit mov dadurch könnte man zb extern nicht mitlesen (API hook auf WriteProcessMemory) hab mal als Beispiel ne Reihe aus TS genommen
Delphi-Quellcode:
so sieht das in olly aus
005181EC C1E1 02 SHL ECX,2
005181EF 8BC6 MOV EAX,ESI 005181F1 E8 02ABEEFF CALL TeamSpea.00402CF8 << hier würd ich um den call zu verhindern zb NOPs setzen 005181F6 8B85 F0FBFFFF MOV EAX,DWORD PTR SS:[EBP-410]
Delphi-Quellcode:
wenn ich jetzt sowas mache
005181EC C1E1 02 SHL ECX,2
005181EF 8BC6 MOV EAX,ESI 005181F1 90 NOP 005181F2 90 NOP 005181F3 90 NOP 005181F4 90 NOP 005181F5 90 NOP 005181F6 8B85 F0FBFFFF MOV EAX,DWORD PTR SS:[EBP-410]
Delphi-Quellcode:
Gibts nur ne tolle fehlermeldung von Windows das es ne Speicherzugriffsverletzung gab.
begin
asm mov [005181F1],$90 mov [005181F2],$90 mov [005181F3],$90 mov [005181F4],$90 mov [005181F5],$90 end; end; Leider hat auch google keine hilfreichen ergebnisse dazu ausgespuckt. gruß flash |
Re: WriteProcessMemory wenn dll bereits injected
005181EF 8BC6 MOV EAX,ESI ^^ das könnteste dann auch mit nem NOP versehen da es die zu übergebenden Variable ist die du ja net mehr brauchst, ich könnte wetten Aufrufe danach verweisen auf den Call inhalt bzw. den rückgabewert und auch
da machts Bums ^^.. Die meisten nutzen halt den weg über austauschen von Functionen (Sprung Adressen) Biegen sie halt auf ihre eigene Funktion und Safen die alte und rufen sie auf nach änderung der dinge. Ansich ist nen Directer Code change in Programmen möglich , halt bei geschützten bereichen knallt es. Must schauen ob der Bereich den du da Manipulierst auch Schreibrechte hat und nicht nur Leserechte. |
Re: WriteProcessMemory wenn dll bereits injected
hey cool so schnell ne antwort und dann noch so spät :thumb:
Wo und was ich reinschreibe war jetzt nicht so wichtig war jetzt nurn Beispiel für den Vorgang. Was ich mir Bastel ist ne Art CodeCave allerdings will ich da daten abfangen,verändern und dann zurückspringen. Leider bringen mich so sachen wie uallhook/madhook nur bedingt weiter,obwohl das ja super gemacht ist. Aber wie find ich raus ob ich reinschreiben darf ? und wie schreib ich dann rein ? geht das per mov befehl? |
Re: WriteProcessMemory wenn dll bereits injected
Memory-Bereiche, in denen ausführbarer Code liegt, werden von Windows üblicherweise auf ReadOnly+Executable gesetzt... mit
![]() |
Re: WriteProcessMemory wenn dll bereits injected
Hey,
Ich hab auch ein problem in diesem bereich und will keinen neuen thread öffnen. Ich will irgendwie, ob mit WPM oder dll-inject. Auf diese adresse schreiben: "00488C02" Auf dieser adresse steht das hier: "jne 00488b74" Ollydbg ss: ![]() Und will ganz einfach das N zu einem b ändern, also ""jbe 00488b74" Wie sollt ich das am besten machen? Hab schon ein TUT gemacht, aber das hat nicht funktioniert. Was würdet ihr mir empfehlen ? THX |
Re: WriteProcessMemory wenn dll bereits injected
Ist zwar schon ne Weile her aber ich schreib mal wie ichs machen würde,
und zwar erst mit olly gucken wie sich die Adresse verändert wenn du den jne auf jbe änders, mir das merken und dann per write process memory an der stelle den veränderten wert reinschreiben ;) . |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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