Overview

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.

Requisites

Prerequisites
CYB80003 Advanced Cyber Security Programming

Rule

CYB80001 System Security Project
OR
COS60011 Technology Design Project

Teaching Periods
Location
Start and end dates
Last self-enrolment date
Census date
Last withdraw without fail date
Results released date
Semester 1
Location
Hawthorn
Start and end dates
26-February-2024
26-May-2024
Last self-enrolment date
10-March-2024
Census date
31-March-2024
Last withdraw without fail date
12-April-2024
Results released date
02-July-2024

Learning outcomes

Students who successfully complete this unit will be able to:

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

Teaching methods

Hawthorn

Type Hours per week Number of weeks Total (number of hours)
Face to Face Contact (Phasing out)
Lecture
2.00 12 weeks 24
Face to Face Contact (Phasing out)
Tutorial Labs
2.00 12 weeks 24
Unspecified Learning Activities (Phasing out)
Independent Learning
8.50 12 weeks 102
TOTAL150

Assessment

Type Task Weighting ULO's
AssignmentIndividual 50 - 0% 1,2,3,4,5,6,7 
ExaminationIndividual 50% 1,2,3,4,5,6,7 

Content

  • Architecture, Data representation, Program Format
  • Tool Chain, Debuggers, Volatility, Ada Pro
  • Instruction set, Addressing modes, Stac,
  • Program development
  • Macros, Functions
  • Source files, includes
  • Stack smashing
  • CLI, I/O buffering
  • Floating point instructions
  • Parallelisation, Interrupts
  • Return Oriented Programming
  • ASM and C socket programming

Study resources

Reading materials

A list of reading materials and/or required textbooks will be available in the Unit Outline on Canvas.