Systems programming labs covering ELF binaries, reverse engineering, kernel compilation, and kernel modules, and USB gadgets.
Python tool that finds executable ELF files using specific shared libraries (reverse ldd). Recursive directory scanning with ELF header parsing.
Binary reverse engineering and patching. Defeating license checks using GDB, strace, keygen, and binary patching.
Building complete Linux system from scratch: U-Boot bootloader, Linux kernel for ARM (vexpress-a9), minimal initramfs/rootfs, booted in QEMU.
Kernel module implementing thread-safe integer stack as character device. Dynamic memory management, ioctl operations, userspace CLI tool.
USB gadget configuration on Linux. CDC ACM serial device emulation via configfs, gadget driver setup, and device enumeration.
Each lab includes source code, artifacts, detailed report with screenshots.
Diana Yakupova