AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi WriteProcessMemory wenn dll bereits injected
Thema durchsuchen
Ansicht
Themen-Optionen

WriteProcessMemory wenn dll bereits injected

Ein Thema von flash2008 · begonnen am 20. Nov 2007 · letzter Beitrag vom 21. Dez 2007
Antwort Antwort
flash2008

Registriert seit: 13. Sep 2007
15 Beiträge
 
#1

WriteProcessMemory wenn dll bereits injected

  Alt 20. Nov 2007, 01:44
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:
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]
so sieht das in olly aus

Delphi-Quellcode:
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]
wenn ich jetzt sowas mache
Delphi-Quellcode:
begin
  asm
    mov [005181F1],$90
    mov [005181F2],$90
    mov [005181F3],$90
    mov [005181F4],$90
    mov [005181F5],$90
  end;
end;
Gibts nur ne tolle fehlermeldung von Windows das es ne Speicherzugriffsverletzung gab.
Leider hat auch google keine hilfreichen ergebnisse dazu ausgespuckt.

gruß flash
  Mit Zitat antworten Zitat
Coly

Registriert seit: 22. Nov 2003
7 Beiträge
 
#2

Re: WriteProcessMemory wenn dll bereits injected

  Alt 20. Nov 2007, 02:00
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.
  Mit Zitat antworten Zitat
flash2008

Registriert seit: 13. Sep 2007
15 Beiträge
 
#3

Re: WriteProcessMemory wenn dll bereits injected

  Alt 20. Nov 2007, 02:11
hey cool so schnell ne antwort und dann noch so spät
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?
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#4

Re: WriteProcessMemory wenn dll bereits injected

  Alt 20. Nov 2007, 06:42
Memory-Bereiche, in denen ausführbarer Code liegt, werden von Windows üblicherweise auf ReadOnly+Executable gesetzt... mit MSDN-Library durchsuchenVirtualProtect lässt sich dies aber ändern...
  Mit Zitat antworten Zitat
k4ni

Registriert seit: 17. Jul 2007
Ort: Ulm
258 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: WriteProcessMemory wenn dll bereits injected

  Alt 21. Nov 2007, 11:37
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:
http://download.lima-city.de/crackcheck/olly_del.JPG

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
  Mit Zitat antworten Zitat
flash2008

Registriert seit: 13. Sep 2007
15 Beiträge
 
#6

Re: WriteProcessMemory wenn dll bereits injected

  Alt 21. Dez 2007, 02:32
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 .
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz