Cargando…

Stack frames : a look from inside /

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. Neit...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Di Cataldo, Giuseppe (Autor)
Formato: Electrónico eBook
Idioma:Inglés
Publicado: [California?] : Apress, [2016]
Temas:
Acceso en línea:Texto completo (Requiere registro previo con correo institucional)
Tabla de Contenidos:
  • 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.
  • 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.
  • 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.
  • 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).
  • 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().