Title: Theory / Important / CS / Algo / Hacking / Art of exploitation{ / Theory;
Tags: FromInstruction computer_to_instruction hasNotNewEffectReturnsMeaning seen_description

Question: Origin of the word hacking
Answer: MIT model railroad club using phone part to control railroad
Page: 2
Chapter: 0x100

Name: Hacker ethic
Definition: the appreciation of logic as an art form
Page: 2
Chapter: 0x100
Definition2: the promotion of the free flow of information
Definition3: surmounting conventional boundaries and restrictions for the simple goal of better understanding the world

Name: Cracker
Definition: Bad guy hacker
Page: 3
Chapter: 0x100

Name: Intrusion detection system
Page: 4
Chapter: 0x100
Abbreviation: IDS

Name: An elegant program
Definition: A small efficient and neat solution of a problem
Page: 6
Chapter: 0x200

Name: Assembler
Definition: A program that translates assembly language into machine-readable code.
Page: 7
Chapter: 0x2
Section: 10

Name: A compiler
Definition: Converts a high-level language into machine language.
Page: 7
Chapter: 0x2
Section: 10

Name: Pseudo-code
Definition: English arranged with a general structure similar to a high-level language
Page: 7
Chapter: 0x2
Section: 20

Name: Control structure
Definition: An instruction which decide which is the next instruction
Page: 8
Chapter: 0x2
Section: 30

Instruction: objdump -D foo
Page: 21
Effect: examine compiled binary foo
Chapter: 0x2
Section: 51

Name: Memory
Definition: a collection of bytes of temporary storage space that are numbered with addresses.
Page: 21
Chapter: 0x2
Section: 51

Name: 32-bit compatibility mode
Definition: A mode for 64-bit processors which allows them to run 32-bit code efficiently
Page: 22
Chapter: 0x2
Section: 51

Name: An n-bit processor
Definition: A processor using a n-bit possible addresses
Page: 22
Chapter: 0x2
Section: 51

Fla: -M
Effect: Use intel syntax
Page: 22
Prefix: objdump
Chapter: 0x2
Section: 51

Name: A register
Definition: internal variables for the processor
Page: 22
Chapter: 0x2
Section: 52

Definition: The Debugger of the GNU development tools
Page: 22
Chapter: 0x2
Section: 52
Notation: GDB

Instruction: run
Page: 24
Effect: run the program until the next breakpoint or end of execution
Context: gdb
Chapter: 0x2
Section: 52

Instruction: break foo
Page: 24
Effect: State that there is a breakpoint at the beginning of function foo
Context: gdb
Chapter: 0x2
Section: 52

Instruction: info registers
Page: 24
Effect: Show the value of the different registers
Context: gdb
Chapter: 0x2
Section: 52

Instruction: quit
Page: 24
Effect: halt the debugger
Context: gdb
Chapter: 0x2
Section: 52

Name: Accumulator register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EAX

Name: Counter register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: ECX

Name: Data register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EDX

Name: Base register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EBX

Name: General purpose register
Definition: EAX, EBX, ECX and EDX
Page: 24
Chapter: 0x2
Section: 52
Context: gdb

Name: Stack pointer register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: ESP

Name: Base pointer register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EBP

Name: source index register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: ESI

Name: Destination index register
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EDI

Name: A pointer
Definition: Something which points to a location in memory
Page: 24
Chapter: 0x2
Section: 52
Context: gdb

Name: The instruction pointer
Definition: Pointer for the current instruction the processor is reading
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EIP

Definition: several bit flags that are used for comparisons and memory segmentations.
Page: 24
Chapter: 0x2
Section: 52
Context: gdb
Notation: EFLAGS