Hvordan ser et hukommelseskort af en Windows-proces ud?

Indlæg af Hanne Mølgaard Plasc

Problem



Dette kan være et duplikat spørgsmål. Jeg ønsker at vide, hvordan hukommelseskortet til en Windows-proces ser ud? Jeg leder efter detaljer. Giv venligst links til blogs, artikler og anden relevant litteratur.

Bedste reference


Jeg kan altid godt lide at faktisk se ting, snarere end bare at læse teori. Det viser sig ifølge dette blogpost, at hvis du åbner et program ved hjælp af windbg, selvom det ikke kører, bliver det stadig kortlagt til et adresserum som om det var. Således er dit demonteringsvindue billedligt (ikke garanteret at indlæse din kode på disse nøjagtige adresser) viser dig, hvad der er på disse adresser med hensyn til kode: [2]


WinDbg arbejder


Selvfølgelig kan du ikke garantere disse adresser takket være ASLR, men det giver dig en ide/får dig til at tænke: Hukommelsesadresser er også bare kode. Kode og hukommelse lagres i samme (virtuelle) rum, som ifølge Von Neumann-arkitektur, som de fleste moderne computere implementerer. Desværre også da der ikke er stak, bunke osv., Kan du ikke flytte og se på dem. [3]


Dette blogindlæg fra Microsoft giver dig et højt overblik over det virtuelle adresserum. Som du kan se, er halvdelen reserveret til brug af operativsystemet, og den anden halvdel kan du udfylde med hvad du har (kode, malloc opkald, stakallokeringer osv.). [4]


Med hensyn til hvordan adressrummet virker på brugerens side, hjalp dette diagram mig til at forstå det. Det er knyttet til dette spørgsmål, som giver en række anstændige links til de forskellige mulige kort. Husk dog, at layoutet i hukommelsen vil variere i forhold til delene. [5]


Det vigtige punkt at huske er, at alt det, program, data, stack, heap, kernel stuff, er en stor sekventiel serie af hukommelsesadresser, selv om disse måske eller måske ikke faktisk oversættes til egentlige hukommelsesadresser.


Mens du er ved det, kan du også være interesseret i, hvordan den eksekverbare vises på disken. Denne artikel og denne artikel giver især en dybdegående analyse af PE-filformatet. Den sidstnævnte artikel har også et lille diagram, der viser omtrent, hvordan data er mmap 'd. [7] [8]