Description |
1 online resource (317 p.) |
Series |
Tech Today Series |
|
Tech Today Series
|
Contents |
Cover -- Title Page -- Copyright Page -- About the Authors -- About the Technical Writer -- About the Technical Editor -- Contents at a Glance -- Contents -- Introduction -- Who Should Read This Book -- What to Expect from This Book -- History -- Legal -- Chapter 1 Decompilation and Architecture -- Decompilation -- When Is Decompilation Useful? -- Decompiling JIT Programming Languages -- Defending JIT Languages -- Lab 1: Decompiling -- Skills to Practice -- Takeaways -- Architecture -- Computer Architecture -- The Central Processing Unit -- Bridges and Peripherals -- Memory and Registers |
|
Assembly -- Introduction to Machine Code -- From Machine Code to Assembly -- Instruction Set Architectures and Microarchitectures -- RISC vs. CISC Computer Architectures -- Summary -- Chapter 2 x86 Assembly: Data, Modes, Registers, and Memory Access -- Introduction to x86 -- Assembly Syntax -- Data Representation -- Number System Bases -- Bits, Bytes, and Words -- Working with Binary Values -- Zero-Extension and Readability -- Bit and Byte Significance -- Endianness -- Registers -- Registers in x86 -- x86 General-Purpose Registers -- Special-Purpose Registers -- Working with Registers |
|
64-Bit Registers -- Memory Access -- Specifying Data Lengths -- Addressing Modes -- Absolute Addressing -- Example: Global Variables -- Indirect Addressing -- Example: Pointers -- Base + Displacement Addressing -- Indexed Addressing -- Example: Arrays -- Based-Index Addressing -- Example: Structs -- Summary -- Chapter 3 x86 Assembly: Instructions -- x86 Instruction Format -- x86 Instructions -- mov -- Hands-on Example -- inc, dec -- add, sub -- mul -- div -- Hands-on Example -- and, or, xor -- not -- shr, shl -- sar, sal -- nop -- lea -- Hands-on Example -- Putting It All Together |
|
Common x86 Instruction Mistakes -- When In Doubt, Look It Up -- Summary -- Chapter 4 Building and Running Assembly Programs -- Output -- Controlling Pins -- Tedium -- System Calls -- sys_write -- sys_exit -- Printing a String -- Building and Linking -- Building and Linking in Linux -- Writing an Assembly Program -- Sections and Stat -- Labels -- Constants -- Global Data -- Strings -- times -- objdump -- Lab: Hello World -- Skills -- Takeaways -- ASCII -- Identifying ASCII Strings -- ASCII Manipulation Tip -- Summary -- Chapter 5 Understanding Condition Codes -- Condition Codes -- eflags |
|
Carry Flag -- Zero Flag -- Sign Flag -- Overflow Flag -- Other Status Flags -- Operations Affecting Status Flags -- add -- sub -- cmp -- test -- Summary -- Chapter 6 Analyzing and Debugging Assembly Code -- Binary Analysis -- Static and Dynamic Analysis -- Debugging -- Breakpoints -- Software Breakpoints -- Hardware Breakpoints -- gdb -- Debugging with gdb -- Launching gdb -- Disassembly with gdb -- Starting and Stopping Code in gdb -- gdb Breakpoints -- gdb info Commands -- Stepping Through Instructions -- Examining Memory -- Segmentation Faults -- Lab: Shark Sim 3000 -- Skills -- Takeaways |
Notes |
Description based upon print version of record |
|
Tuning Out the Noise |
Form |
Electronic book
|
Author |
Domas, Christopher
|
ISBN |
9781394199907 |
|
1394199902 |
|