CYBV471 - Assembly Programming for Security Professionals

CYBV471
Assembly Programming for Security Professionals

Bachelor's Degrees

Cyber Engineering 

Certificates

Cybersecurity 

Course Description

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.

Learning Outcomes

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.