Address Space Layout Flashcards

1
Q

Dynamic Linked Libraries (DLLs)

A

This area represents shared libraries (DLLs) that were loaded into address space, either intentionally by the process or forcefully through library injection.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Environmental Variables

A

This range of memory stores the process’ environment variables, such as its exectuable paths, temporary directories, home folders, and so on.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Process Environment Block (PEB)

A

An extremely useful structure that tells you where to find several of the other items in this list, including DLLs, heaps, and environment variables. It also contains process’ command line arguments, its current working directory, and its standard handles.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Process heaps

A

Where you can find a majority of dynamic input that the process receives. For example, variable-length text that you type into e-mail or documents is often placed on the heap, as is data sent or received over network sockets.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Thread Stacks

A

Each thread has a dedicated range of process memory set aside for its runtime stack. This is where you can find function arguments, return addresses (allowing you to reconstruct call history), and local variables.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mapped Files and Application Data

A

This item is left intentionally vague because the content really depends on the process. Mapped files represent content from files on disk, which could be configuration data, documents, and so on. Application data is anything the process needs to perform its intended duties.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Executable

A

The process executable contains the primary body of code and read/write variables for the application. This data may be compressed or encrypted on disk, but once loaded into memory, it unpacks, enabling you to dump plain-text code back to disk.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly