-
20-10-2006, 14:15 #1
[ALG][Q] Writeprocessmemory equivalent in linux ?
Ik weet niet of het mogelijk is maar in windows kan je via writeprocessmemory het geheugen van een bepaald proces wijzigen. Nu vraag ik me af of dit ook mogelijk is in linux, ik heb reeds van alles liggen opzoeken omtrent fork, ptrace,/proc/pid/mem /proc/id/maps ed. nu wat ik denk dat ik moet doen is een nieuw child proces aanmaken en via ptrace toegang geven om het proces te tracen, nadien /proc/pid/maps inleze om de memory ranges te weten wat het programma gebruikt en te kijken welke ranges writeable zijn en dan via /proc/pid/mem en ptrace en pokedata gegevens schrijven naar het geheugen.
klopt dit ongeveer ? Ik heb al gezien bij een /proc/pid/maps file dat niet al het geheugen schrijfbaar en vraag ik me ook af of het schrijfbaar gedeelte, geheugen bevat van variabelen die het programma in kwestie gebruikt of is dit in linux niet beschikbaar / niet te overschrijven ?
zou dit alles moeten weten voor een eventuele memory searcher te maken en memory patcher (trainers maw) voor te cheaten in spelletjes op de gp2x (handheld)
Nu weet ik ook niet of het geheugen dat een bepaald spel / programma gebruikt altijd hetzelfde is dermee bedoel ik de /proc/pid/maps file eigenlijk zolang je hetzelfde spel bvb meerdere keren na elkaar start. en wat ik ook niet weet of linux iets dergelijks heeft als DMA in windows waarbij eventuele gevonden geheugen locaties van een variabele (indien er zoiets is als DMA) niet altijd op dezelfde plek zullen staan wanneer het programma herstart wordt.
iemand die hier wat meer info over heeft en sommige van men vragen kan beantwoorden ?no votes
-
-
20-10-2006, 18:50 #2Member
- Registered
- 19/10/06
- Location
- Erpe-Mere
- Posts
- 19
- iTrader
- 1 (100%)
- Mentioned
- 0 Post(s)
Met ptrace kan je in elk geval lezen en schrijven naar het geheugen van een bepaald proces.
Waarschijnlijk moet je je ook wat verdiepen in het ELF formaat.
Zie http://www.cs.ucdavis.edu/~haungs/paper/node10.html
In het kort:
ELF is het standaard formaat voor uitvoerbare bestanden op Linux.
Het bevat een aantal secties, waarvan .text, .data en .bss de belangrijkste zijn. .text bevat de eigelijke code .data de geinitialiseerde variabelen (ie 'int i = 0
en .bss niet geinistialiseerde variabelen.
De ELF header bevat ook het entry point van de code.no votes
