COURSE OUTLINE

Session 9

Non-Windows Malware - Android

Android architecture overview, Permissions, Activities and Receivers, Operation system Sandbox, APK file format and contents, DEX file reversing techniques, introducing JEB, setting up environment, Android emulator vs phone.

Practice: Determine file functionality.

Session 5

Malware Behaviour

Advanced dynamic analysis. Windows malware techniques. Anti-analysis - obfuscation, anti-debugging, anti-emulation. Packers, crypters and protectors. Practice: Bypassing malware anti-analysis techniques. Static and dynamic unpacking.

Session 6

Non-Windows Malware

Mobile, Unix, Mac OS malware overview session, statistics, risks, attack vectors, loud cases: banking malware, ransomware, IoT attacks.

Session 1

Introduction to the main reverse engineering concepts and terms

Setting up needed software and safe environment. Processor architectures, CISC vs RISC, data types, endianness, main purpose hardware registers, virtual memory and memory addressing, stack and stackframe.

Session 2

Introduction to x86 and x64 Architecture and Assembly

Function epilogue and prologue. Calling conventions. Register set and instruction set. Finding C code constructs in Assembly. Practice: Assembly Hands-on and Exercises.

Session 4

Dynamic Analysis and Debugging

Monitoring Windows APIs. Using system monitoring utilities to capture file system, registry and network activity. Debugging windows applications using x64dbg, windbg. Practice: Dynamic malware analysis and debugging exercises. Determining sample functionality.

Session 3

Windows OS Architecture and Static Analysis

Windows Architecture overview. Kernel mode vs user mode. Portable Executable file format. Compiler, Assembler and Linker. Practice: Working with PE files, Determining compiler, Quick static malware analysis. Reverse Engineering C and C++ code using HIEW and IDA Pro.

Session 7

Non-Windows Malware - Linux

Linux architecture overview, SELinux, executable object types: scripts, binary file types; Static analysis: ELF file format, reversing files with HIEW, IDA. Dynamic analysis: strace, GDB, remote debugging. Setting up analysis environment.

Practice: Determine file functionality.

Session 8

Non-Windows Malware - Linux

Mac OS architecture overview, microkernel, auto start, KEXT modules; Static file analysis: installation package types, package contents, unpacking, Mach-O file format, reversing files with otool, HIEW, IDA; Dynamic file analysis: ptrace, remote debugging with GDB and IDA. Setting up analysis environment.

Practice: Determine file functionality.

Session 10

Non-Windows Malware - Advanced Topics

Android: building own Android, patching sources. Dumping crypted dex files
Linux: unpacking some wide spread packers, making your own honeypot
Mac OS: determining file behavior using dtrace, creating dtrace scripts
Practice: dump dex file using own sandbox, create own honeypot and collect files, trace some simple app using dtrace.

Session 11

Byte-code based and scripting programming languages

Native code vs Byte-code. Virtual Machines, Binary Translation, Code Emulation, JIT. Main analysis techniques and tools. Practice: Reverse Engineering and deobfuscation of C#

Session 12

Software vulnerabilities and exploits

Classification. Types and causes for binary vulnerabilities. Common exploitation techniques. Modern Operating System security features. Bypassing OS exploit preventions and mitigations. Practice: Shellcode analysis.

Session 13

Exploit Analysis

MS Office Exploits. Local Privilege Escalation Exploits. Browser Exploits. Java and Flash exploit analysis. Linux kernel exploit analysis. Practice: Hands-on exploit analysis.

Session 14

Advanced Reverse Engineering

Writing IDA Pro / WinDBG Scripts and Plugins. Automating Reverse Engineering tasks with Python. SAT/SMT Solvers. Dynamic Binary Instrumentation.

Session 15

Final Exam