Day 4 Flashcards
Main Memory Organization
- .stack –>memory used for non-static, local variables
- Free space –> reserved for memory for the .stack and .heap to grow in
- .heap –> dynamically allocated memory; uninitialized at first
- .bss –>uninitialized and zero initialized global and static variables
- .data –>holds non-zero initialized global and static variables, exist throughout life of the program.
- .text –> stores the compiled code of the currently running program.
Software vulnerabilities
Weaknesses allowing an attacker to violate the security of the software system.
Buffer
Variable that holds more than one value.
Buffer Overflow
Occurs when too many values are written to the buffer, causes data to be written outside the buffer’s allocated memory space.
Stack Overflow
Goal is to overwrite the function return address or function pointer in an attempt to redirect the program to malicious code.
Multiplexor
Used to select the desired output. Cont selects the bitwise input or the adder input.
X86
example of Cisc processor architecture
Advanced Risk Machine (ARM)
RISC based processor architecture
Big Endian:
most significant byte first
Little Endian:
least significant byte first
Memory-to-Register:
architecture that supports data processing operations on both registers and memory locations. (cisc)
Variable length instructions:
A.
CISC processors use. Each instruction contains an opcode and either one or two operands. More complex to decode and do not perform as well as RISC processors when pipelining instructions. Save storage space.
Fixed length instructions:
RISC processors use this. Each instruction contains an opcode and three operands.
Principle of equivalence:
any task done by the software can be done by hardware, and any operation performed directly by hardware can be done using software. Hardware is faster, but software is more acceptable because it costs less and easier to modify.
Microprogrammed:
software programmed on top of hardware to implement the ISA. CU uses 6-16 registers in a single set.