Course


IERG5360 – Program Representation, Modeling and Understanding for Software Security

IERG Elective MIEG Elective Postgraduate
Co-requisite(s):
Unit(s):
3
Pre-requisite(s):
IERG4130 or CSCI4130 or ESTR4306 or IEMS5710, or written waiver with endorsement from instructor.
Exclusion:
Term Offered:
Teacher:
Remarks:
(new course)

This course targets PhD students in the cyber security area. The contents are organized around the representation, modeling and understanding of programs, which will enable the students to be familiar and confident in dealing with research problems related to program analysis and software security, such as reverse engineering, vulnerability analysis, malware detection, and so on. Topics will include:

  1. Low level program representation at binary and assembly code levels, PE and ELF file format, x86 and ARM assembly instructions, etc.
  2. Intermediate level program representation,  like Abstract Syntax Tree (AST), various intermediate language tarting for different program analysis tasks (such as VEX, BIL, LLVM IR and so on.), etc.
  3. Transformation between different representations, including compile, assembly, decompile, disassemble, code lifting, etc.
  4. Common program abstraction models, like Control Flow Graph, Data Flow Graph, Call Graph, etc.
  5. Program representations for machine learning, like feature extraction, code embedding, etc.
  6. Typical program understanding tasks, like taint analysis, code obfuscation and de-obfuscation, code similarity detection, information recovery, vulnerability discovery, malware detection, etc.