Hacking
Subtitle: the art of exploitation
By: Jon Erickson.
Edition: 2nd ed.
Publisher: No Starch Press
Published: 2008
Place of publication: San Francisco, CA
Language: eng
Number of pages: 472
ISBN-13: 9781593271442
Subjects: Computer security; Computer hackers; Computer networks -- Security measures
Notes: Includes bibliographical references and index.
Table of contents: title: Preface
pagenum: xi; title: Acknowledgments
pagenum: xii; label: 0x100
title: Introduction
pagenum: 1; label: 0x200
title: Programming
pagenum: 5; label: 0x210
title: What Is Programming?
pagenum: 6; label: 0x220
title: Pseudo-code
pagenum: 7; label: 0x230
title: Control Structures
pagenum: 8; label: 0x231
title: If-Then-Else
pagenum: 8; label: 0x232
title: While/Until Loops
pagenum: 9; label: 0x233
title: For Loops
pagenum: 10; label: 0x240
title: More Fundamental Programming Concepts
pagenum: 11; label: 0x241
title: Variables
pagenum: 11; label: 0x242
title: Arithmetic Operators
pagenum: 12; label: 0x243
title: Comparison Operators
pagenum: 14; label: 0x244
title: Functions
pagenum: 16; label: 0x250
title: Getting Your Hands Dirty
pagenum: 19; label: 0x251
title: The Bigger Picture
pagenum: 20; label: 0x252
title: The x86 Processor
pagenum: 23; label: 0x253
title: Assembly Language
pagenum: 25; label: 0x260
title: Back to Basics
pagenum: 37; label: 0x261
title: Strings
pagenum: 38; label: 0x262
title: Signed, Unsigned, Long, and Short
pagenum: 41; label: 0x263
title: Pointers
pagenum: 43; label: 0x264
title: Format Strings
pagenum: 48; label: 0x265
title: Typecasting
pagenum: 51; label: 0x266
title: Command-Line Arguments
pagenum: 58; label: 0x267
title: Variable Scoping
pagenum: 62; label: 0x270
title: Memory Segmentation
pagenum: 59; label: 0x271
title: Memory Segments in C
pagenum: 75; label: 0x272
title: Using the Heap
pagenum: 77; label: 0x273
title: Error-Checked malloc()
pagenum: 80; label: 0x280
title: Building on Basics
pagenum: 81; label: 0x281
title: File Access
pagenum: 81; label: 0x282
title: File Permissions
pagenum: 87; label: 0x283
title: User IDs
pagenum: 88; label: 0x284
title: Structs
pagenum: 96; label: 0x285
title: Function Pointers
pagenum: 100; label: 0x286
title: Pseudo-random Numbers
pagenum: 101; label: 0x287
title: A Game of Chance
pagenum: 102; label: 0x300
title: Exploitation
pagenum: 115; label: 0x310
title: Generalized Exploit Techniques
pagenum: 118; label: 0x320
title: Buffer Overflows
pagenum: 119; label: 0x321
title: Stack-Based Buffer Overflow Vulnerabilities
pagenum: 122; label: 0x330
title: Experimenting with BASH
pagenum: 133; label: 0x331
title: Using the Environment
pagenum: 142; label: 0x340
title: Overflows in Other Segments
pagenum: 150; label: 0x341
title: A Basic Heap-Based Overflow
pagenum: 150; label: 0x342
title: Overflowing Function Pointers
pagenum: 156; label: 0x350
title: Format Strings
pagenum: 167; label: 0x351
title: Format Parameters
pagenum: 167; label: 0x352
title: The Format String Vulnerability
pagenum: 170; label: 0x353
title: Reading from Arbitrary Memory Addresses
pagenum: 172; label: 0x354
title: Writing to Arbitrary Memory Addresses
pagenum: 173; label: 0x355
title: Direct Parameter Access
pagenum: 180; label: 0x356
title: Using Short Writes
pagenum: 182; label: 0x357
title: Detours with .dtors.
pagenum: 184; label: 0x358
title: Another notesearch Vulnerability
pagenum: 189; label: 0x359
title: Overwriting the Global Offset Table
pagenum: 190; label: 0x400
title: Networking
pagenum: 195; label: 0x410
title: OSI Model
pagenum: 196; label: 0x420
title: Sockets
pagenum: 198; label: 0x421
title: Socket Functions
pagenum: 199; label: 0x422
title: Socket Addresses
pagenum: 200; label: 0x423
title: Network Byte Order
pagenum: 202; label: 0x424
title: Internet Address Conversion
pagenum: 203; label: 0x425
title: A Simple Server Example
pagenum: 203; label: 0x426
title: A Web Client Example
pagenum: 207; label: 0x427
title: A Tinyweb Server
pagenum: 213; label: 0x430
title: Peeling Back the Lower Layers
pagenum: 217; label: 0x431
title: Data-Link Layer
pagenum: 218; label: 0x432
title: Network Layer
pagenum: 220; label: 0x433
title: Transport Layer
pagenum: 221; label: 0x440
title: Network Sniffing
pagenum: 224; label: 0x441
title: Raw Socket Sniffer
pagenum: 226; label: 0x442
title: libpcap Sniffer
pagenum: 228; label: 0x443
title: Decoding the Layers
pagenum: 230; label: 0x444
title: Active Sniffing
pagenum: 239; label: 0x450
title: Denial of Service
pagenum: 251; label: 0x451
title: SYN Flooding
pagenum: 252; label: 0x452
title: The Ping of Death
pagenum: 256; label: 0x453
title: Teardrop
pagenum: 256; label: 0x454
title: Ping Flooding
pagenum: 257; label: 0x455
title: Amplification Attacks
pagenum: 257; label: 0x456
title: Distributed DoS Flooding
pagenum: 258; label: 0x460
title: TCP/IP Hijacking
pagenum: 258; label: 0x461
title: RST Hijacking
pagenum: 259; label: 0x462
title: Continued Hijacking
pagenum: 263; label: 0x470
title: Port Scanning
pagenum: 264; label: 0x471
title: Stealth SYN Scan
pagenum: 264; label: 0x472
title: FIN, X-mas, and Null Scans
pagenum: 264; label: 0x473
title: Spoofing Decoys
pagenum: 265; label: 0x474
title: Idle Scanning
pagenum: 265; label: 0x475
title: Proactive Defense (shroud)
pagenum: 267; label: 0x480
title: Reach Out and Hack Someone
pagenum: 272; label: 0x481
title: Analysis with GDB
pagenum: 273; label: 0x482
title: Almost Only Counts with Hand Grenades
pagenum: 275; label: 0x483
title: Port-Binding Shellcode
pagenum: 278; label: 0x500
title: Shellcode
pagenum: 281; label: 0x510
title: Assembly vs. C
pagenum: 282; label: 0x511
title: Linux System Calls in Assembly
pagenum: 284; label: 0x520
title: The Path to Shellcode
pagenum: 286; label: 0x521
title: Assembly Instructions Using the Stack
pagenum: 287; label: 0x522
title: Investigating with GDB
pagenum: 289; label: 0x523
title: Removing Null Bytes
pagenum: 290; label: 0x530
title: Shell-Spawning Shellcode
pagenum: 295; label: 0x531
title: A Matter of Privilege
pagenum: 299; label: 0x532
title: And Smaller Still
pagenum: 302; label: 0x540
title: Port-Binding Shellcode
pagenum: 303; label: 0x541
title: Duplicating Standard File Descriptors
pagenum: 307; label: 0x542
title: Branching Control Structures
pagenum: 309; label: 0x550
title: Connect-Back Shellcode
pagenum: 314; label: 0x600
title: Countermeasures
pagenum: 319; label: 0x610
title: Countermeasures That Detect
pagenum: 320; label: 0x620
title: System Daemons
pagenum: 321; label: 0x621
title: Crash Course in Signals
pagenum: 322; label: 0x622
title: Tinyweb Daemon
pagenum: 324; label: 0x630
title: Tools of the Trade
pagenum: 328; label: 0x631
title: tinywebd Exploit Tool
pagenum: 329; label: 0x640
title: Log Files
pagenum: 334; label: 0x641
title: Blend In with the Crowd
pagenum: 334; label: 0x650
title: Overlooking the Obvious
pagenum: 336; label: 0x651
title: One Step at a Time
pagenum: 336; label: 0x652
title: Putting Things Back Together Again
pagenum: 340; label: 0x653
title: Child Laborers
pagenum: 346; label: 0x660
title: Advanced Camouflage
pagenum: 348; label: 0x661
title: Spoofing the Logged IP Address
pagenum: 348; label: 0x662
title: Logless Exploitation
pagenum: 352; label: 0x670
title: The Whole Infrastructure
pagenum: 354; label: 0x671
title: Socket Reuse
pagenum: 355; label: 0x680
title: Payload Smuggling
pagenum: 359; label: 0x681
title: String Encoding
pagenum: 359; label: 0x682
title: How to Hide a Sled
pagenum: 362; label: 0x690
title: Buffer Restrictions
pagenum: 363; label: 0x691
title: Polymorphic Printable ASCII Shellcode
pagenum: 366; label: 0x6a0
title: Hardening Countermeasures
pagenum: 376; label: 0x6b0
title: Nonexecutable Stack
pagenum: 376; label: 0x6b1
title: ret2libc
pagenum: 376; label: 0x6b2
title: Returning into system()
pagenum: 377; label: 0x6c0
title: Randomized Stack Space
pagenum: 379; label: 0x6c1
title: Investigations with BASH and GDB
pagenum: 380; label: 0x6c2
title: Bouncing Off linux-gate
pagenum: 384; label: 0x6c3
title: Applied Knowledge
pagenum: 388; label: 0x6c4
title: A First Attempt
pagenum: 388; label: 0x6c5
title: Playing the Odds
pagenum: 390; label: 0x700
title: Cryptology
pagenum: 393; label: 0x710
title: Information Theory
pagenum: 394; label: 0x711
title: Unconditional Security
pagenum: 394; label: 0x712
title: One-Time Pads
pagenum: 395; label: 0x713
title: Quantum Key Distribution
pagenum: 395; label: 0x714
title: Computational Security
pagenum: 396; label: 0x720
title: Algorithmic Run Time
pagenum: 397; label: 0x721
title: Asymptotic Notation
pagenum: 398; label: 0x730
title: Symmetric Encryption
pagenum: 398; label: 0x731
title: Lov Grover's Quantum Search Algorithm
pagenum: 399; label: 0x740
title: Asymmetric Encryption
pagenum: 400; label: 0x741
title: RSA
pagenum: 400; label: 0x742
title: Peter Shor's Quantum Factoring Algorithm
pagenum: 404; label: 0x750
title: Hybrid Ciphers
pagenum: 406; label: 0x751
title: Man-in-the-Middle Attacks
pagenum: 406; label: 0x752
title: Differing SSH Protocol Host Fingerprints
pagenum: 410; label: 0x753
title: Fuzzy Fingerprints
pagenum: 413; label: 0x760
title: Password Cracking
pagenum: 418; label: 0x761
title: Dictionary Attacks
pagenum: 419; label: 0x762
title: Exhaustive Brute-Force Attacks
pagenum: 422; label: 0x763
title: Hash Lookup Table
pagenum: 423; label: 0x764
title: Password Probability Matrix
pagenum: 424; label: 0x770
title: Wireless 802.11b Encryption
pagenum: 433; label: 0x771
title: Wired Equivalent Privacy
pagenum: 434; label: 0x772
title: RC4 Stream Cipher
pagenum: 435; label: 0x780
title: WEP Attacks
pagenum: 436; label: 0x781
title: Offline Brute-Force Attacks
pagenum: 436; label: 0x782
title: Keystream Reuse
pagenum: 437; label: 0x783
title: IV-Based Decryption Dictionary Tables
pagenum: 438; label: 0x784
title: IP Redirection
pagenum: 438; label: 0x785
title: Fluhrer, Mantin, and Shamir Attack
pagenum: 439; label: 0x800
title: Conclusion
pagenum: 451; label: 0x810
title: References
pagenum: 452; label: 0x820
title: Sources
pagenum: 454; title: Index
pagenum: 455