Introduction
- Who should read the book
- Disclaimer and Caution
- Sample Code
- Feedback and Error Reporting
- What’s Next?
Chapter 1: Introduction to Native API Development
- Windows System Architecture
- What is the Native API?
- Getting Started
- Dynamic Linking to NtDll.Dll
- Accessing the Native API
- Summary
Chapter 2: Native API Fundamentals
- Function Prefixes
- Errors
- Strings
- Linked Lists
- Object Attributes
- Client ID
- Time and Time Span
- Bitmaps
- Sample: Terminating a Process
- Summary
Chapter 3: Native Applications
- Native vs. Standard Applications
- Building Native Applications
- The Main Function
- Simple Native Application
- Launching Native Applications
- Debugging Native Applications
- Summary
Chapter 4: System Information
- Querying and Setting Information
- Process and Thread Information
- Objects and Handles
- The
KUSER_SHARED_DATAStructure - Summary
Chapter 5: Processes
- Creating Processes
- Process Information
- The Process Environment Block (PEB)
- Suspending and Resuming Processes
- Enumerating Processes (Take 2)
- Summary
Chapter 6: Threads
- Creating Threads
- Thread Information
- Synchronization
- The Thread Environment Block (TEB)
- Asynchronous Procedure Calls (APC)
- Thread Pools
- More Thread APIs
- Summary
Chapter 7: Objects and Handles
- Objects
- Enumerating Objects
- Object Manager Namespace
- Handles
- Enumerating Handles
- Specific Object Types
- Other Object Types
- Summary
Chapter 8: Memory (Part 1)
- Introduction
- The Virtual Functions
- Querying Memory
- Reading and Writing
- Other Virtual APIs
- Heaps
- Heap Information
- Summary
Chapter 9: I/O
- Files and Devices
- File and Device API
- File Information
- Directory-Only Information
- NTFS Streams
- Extended Attributes
- Accessing Devices
- I/O Completion Ports
- Miscellaneous Functions
- Summary
Chapter 10: ALPC
- ALPC Concepts
- Simple Client/Server
- Creating Server Ports
- Connecting to Ports
- Message Attributes
- Sending and Receiving Messages
- Summary
Chapter 11: Security
- Overview
- SIDs
- Tokens
- Security Descriptors
- Summary
Chapter 12: Memory (Part 2)
- Sections
- Memory Zones
- Lookaside Lists
- Summary
Chapter 13: The Registry
- Registry Structure
- Creating and Opening Keys
- Working with Keys and Values
- Key Information
- Other Registry Functions
- Key Persistence
- Registry Notifications
- Registry Transactions
- Miscellaneous Functions
- Higher Level Registry Helpers
- Summary