Advanced Cybersecurity Programming

CYB80003 12.5 Credit Points Hawthorn


  • One Semester or equivalent

Contact hours

  • Equivalent to 48 hours



Aims and objectives


This unit covers assembly language programming for Intel 80x86/64 CPU architectures and introductory assembly programming for ARM CPU architectures. Students will use their knowledge to write and inject shell code into vulnerable process, identify ROP gadgets and bypass ASLR and DEP OS protection and to write custom "malware" to exfiltrate data or provide unauthorised access. Student will make extensive use of debuggers and memory forensics tools to understand the operation of their code.

Unit Learning Outcomes (ULO)

Students who successfully complete this Unit will be able to:

1. Demonstrate an understanding of assembly language programming in a modern CPU architecture.
2. Analyse and explain small assembly language programs.
3. Analyse and reverse-engineer medium-sized binaries using semi-automated tools.
4. Alter the behaviour of computer programs by changing machine code instructions.
5. Locate and use ROP gadgets to subvert normal program execution.
6. Design, write and inject shell code into vulnerable processes.
7. Design, write and implement forward and reverse shell programs as services or applications.