Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Smashing the Stack: An Introduction to Basic Bi...

Smashing the Stack: An Introduction to Basic Binary Exploitation

Speaker: Alejandro Salinas, Associate Security Consultant at NCC Group

Abstract:
This presentation covers the fundamentals of 32bit binary exploits (focusing on the IA32 architecture) by means of logic abuse, overflows, and code injection. The goal is to arm you with basic knowledge of processor architectures and code review skills that will allow you to spot bugs and craft exploits for vulnerable executable.

Avatar for SecDaemons

SecDaemons

January 16, 2018
Tweet

Other Decks in Programming

Transcript

  1. Buffers and Stacks and Heaps, oh my!  Buffer –

    A temporary storage location  Stack – Abstract structure that stores information about current routine  Heap – Freeform region in memory that used for dynamic alocation
  2. Stack & Heap  Stack is LIFO  Stack grows

    down (low addresses on top high addresses on bottom)  Stack and Heap grow towards each other (heap grows up)  Stack is static and fast  Heap is Dynamic and slower (memory allocated at runtime). Think maloc()
  3. X86 Architecture crash course  Register-based architecture  General registers:

    EAX EBX ECX EDX  Index and pointers: ESI EDI EBP EIP ESP  Segment registers: CS DS ES FS GS SS  Indicator: EFLAGS
  4. Things to know  GDB or debugger/ disassembler (GEF, IDA,

    Binary Ninja, etc.)  Objdump  Scripting language (i.e.Perl/Python)  Basic native code programming (C/C++)  Basic assembly  Understanding of system architecture (e.g. know and understand how the Linux kernel works)  Other stuff, probably…