At a Glance; Contents; About the Author; About the Technical Reviewer; Introduction; Chapter 1: Hardware and Software; Hardware; Software, Binary Programs, and Source Code; Binary and Text Files, Character Encodings; Character Encodings; The ASCII Character Set; Encoding Examples; Multibyte Encodings; Text Files; Binary Files; Executable Files; System and Application Software; Software Types: Free, Semifree, Proprietary; Free Software Definition and the Free Software Foundation Licenses; Debian Free Software Guidelines; BSD Licenses; Open Source Software; Public Domain Software
Text of Note
Bitwise vs Logical Operators in CShift Operators; Summary; Chapter 4: Executables and Libraries; Assemblers, Compilers, Linkers; The Assembler; The Compiler; The Linker; Object Files; The GNU Linker; Using the Linker with No Options; What If We Force main() to Be the Entry Point?; What If We Provide the Missing _start() Function?; Adding Code to Terminate the Program Execution; Why Terminating the Program Works; System and Wrapper Functions; Back to the Linker: Searching for Command-Line Arguments; Static and Dynamic Linking; Shared Libraries: GOT; A Simple Test Program
Text of Note
Test on Debian (64-bit): Stack Frame of f2()Test on Debian (64-bit): Stack Frame of f1(); Test on Debian (64-bit): Stack Frame of main(); Test on Debian (64-bit): Assembly Code; The Prologue of a Function; The Epilogue of a Function; Variations in Prologues and Epilogues; Optimization Issues; Speeding Up Execution; Stack Pointer Alignment-an Exception; Test on Debian (64-bit): Calling and Naming Conventions; Test on Debian (64-bit): Stack Frame Charts; Test on Slackware (32-bit); Test on Slackware (32-bit): Stack Frame of f2(); Test on Slackware (32-bit): Stack Frame of f1()
Text of Note
The Shared Source InitiativeOperating Systems and Kernels; Summary; Chapter 2: GNU/Linux Distributions; The GNU Project; What Is Linux?; The Birth of Linux; GNU/Linux Distributions and Packages; Classification; Installation Hints; Packages; A Brief History of Distributions; Testing Distributions; GNU/Linux Distribution Timeline; DistroWatch; LinuxCounter; Lwn.net; Virtualization; Summary; Chapter 3: Base 2, 8, and 16 Notations; Notations for Integer Numbers; Binary Numbers; Hexadecimal Numbers; Octal Numbers; Bytes; Words and Paragraphs; Bitwise Operators; Operators AND, XOR, OR, NOT
Text of Note
Where Are the Global Symbols?How Global Variables Are Addressed; The Global Offset Table; The Relocation Constant; Section Attributes: Sharing Library Code; Searching for a Ghost; Shared Libraries: PLT; Summary; Chapter 5: Stack Frames; Call Stacks; Stack Frames; Calling Conventions; Naming Conventions; Example: Calling a Fortran Function with a C Function; Example: Calling an Assembly Function with a C Function; Function Calls; The Test Program; Function getSP; Function getBP; Function Dump; Function f 2; Function f1; Function main; Test on Debian (64-bit)
0
8
8
8
8
SUMMARY OR ABSTRACT
Text of Note
This book teaches you exactly how program memory content and organization is vital for computer security, especially Unix-like operating systems. You will learn how it is manipulated to take control of a computer system, as well as the countermeasures that system designers set up to avoid this. Neither a guide for hackers nor an all-out theory book, this book is ideal for anyone studying computer security who wants to learn by doing. Using a practical approach, you will understand how stack frames relate to hardware and software theory and the various GNU/Linux distributions, before moving on to Base 2, 8 and 16 notations, executables and libraries. Lastly you will go in-depth to understand the intricacies of stack frames. A vital resource for all computer security students and enthusiasts, add Stack Frames: A Look Inside to your library today