Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#17

AW: [DLL Injection] Code in fremden Prozess einschleusen

  Alt 17. Mai 2011, 01:09
Ganz generell vielleicht noch zum "Memory Hacking". Hier zwar nicht so wichtig, weil der Code direkt in der EXE liegt, aber wenn du mal eine Anwendung hast, die DLLs nachläd und du in diese DLLs schreiben willst, dann immer relative Adressen der Form:

ImageBase + Offset

verwenden. Achso und wenn du wirklich nur einzelne Opcodes ändern willst, ist anstelle von CopyMemory der direkte Zugriff ganz hilfreich:

Delphi-Quellcode:
if VirtualProtect(Pointer($0046A4A8), 2, PAGE_EXECUTE_READWRITE, @dwOldDestProtect) then
try
  PByte($0046A4A8 + $00)^ := $EB;
  PByte($0046A4A8 + $01)^ := $07;
finally
  VirtualProtect(Pointer($0046A4A8), 2, dwOldDestProtect, nil);
end;
Dann musst du nicht groß mit Arrays rumbasteln und kannst bei eigenen Records sogar ganze Datenstrukturen bequem schreiben. Ich hatte vor einiger Zeit mal ein kleines Tutorial zum Thema verfasst:
http://opcodez.wordpress.com/2010/09...king-teil-1-5/
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat