Assembly Programming for Security Professionals
CYBV471 will provide students with an introduction to assembly language programming. Students will use hands-on labs and exercises to practice and implement applications developed in the x86-64 Assembly programming language. CYBV471 meets the National Security Agency (NSA) Center of Academic Excellence in Cyber Operations (CAE-CO) academic requirements for low-level programming.
The student will:
- Be able to develop programs that can be embedded into an OS kernel, with the required complexity and sophistication to implement exploits or patches for discovered vulnerabilities.
- Define and explain binary, hexadecimal, integers and floating point numbers o Define and explain memory, memory mapping and the functions and uses of registers.
- Identify and describe assembly programming math and bit operations.
- Recognize the fundamentals behind branching & looping as well as functions.
- Identify and evaluate arrays.
- Characterize and differentiate 32 bit and 64 bit system calls in Linux and OS X.
- Define and explain C stream I/O.
- Identify and describe data structures.
- Exercise critical thinking strategies including reasoning, problem solving, analysis and evaluation by:
- Applying the fundamentals of assembly programing to create a functional, stand-alone assembly language program implementing a basic telnet client with no help from external libraries.