win_internals Flashcards
(87 cards)
What is the Windows NT code base?
The code base used by Windows NT beginning with version 3.1.
What is the Windows API?
The system programming interface to the Windows operating system family.
Where is the Windows API described?
In the Windows Software Development Kit (SDK) documentation. (www.msdn.microsoft.com)
What does the Windows API consist of?
Thousands of callable functions
What 7 major categories is the Windows API divided into?
- Base services
What are some of the key base services in the Windows API? (4)
- Processes and threads
What does the .NET framework consist of?
- A library of classes called the Framework Class Library (FCL) and
What are Windows API functions?
Documented, callable subroutines in the Windows API
What are native (or executive) system services?
The undocumented, underlying services in the operating system that are callable from user mode.
What are Windows services?
Processes started by the Windows service control manager
What are DLLs?
A set of callable subroutines linked together as a binary file that can be dynamically loaded by applications that use the subroutines
What is the difference between a program and a process?
A program is a static sequence of instructions, whereas a process is a container for a set of resources used when executing the instance of the program.
At the highest level of abstraction, what is a Windows process comprised of? (6)
- A private virtual address space
What do all threads within a process share?
The process’s virtual address space (in addition to the rest of the resources belonging to the process) meaning that all the threads in a process can write to and read from each other’s memory
When can threads in one process reference the address space of another process? (2)
- When the other process makes available part of its private address space as a shared memory section (called a file mapping object in the Windows API) or
In addition to a private address space and one or more threads, what does each process have?
A security identification (contained in the access token) and a list of open handles to objects (such as files, shared memory sections), or one of the synchronization objects (such as mutexes, events, or semaphores)
Where is a process’s security context stored?
In an object called an access token
What does a process’s access token contain?
The process’s security identification and credentials
Do threads have their own access tokens?
By default, threads don't have their own access token, but they can obtain one.
If a thread obtains its own access token, what becomes possible?
Individual threads can impersonate the security context of another process—including processes running on a remote Windows system—without affecting other threads in the process.
What are virtual address descriptors?
Virtual address descriptors (VADs) are data structures that the memory manager uses to keep track of the virtual addresses the process is using.
What is a job?
An extension to the process model.
What is a job object’s main function?
To allow groups of processes to be managed and manipulated as a unit.
When using virtual memory, how does the operating system ensure that individual processes don't bump into one another or overwrite operating system data?
At run time, the memory manager, with assistance from hardware, translates, or maps, the virtual addresses into physical addresses, where the data is actually stored. By controlling the protection and mapping, the operating system can ensure that individual processes don't bump into one another or overwrite operating system data