Binary formats and linkers
CIS4930
Syllabus, lectures, and other materials — Spring 2023

Syllabus and schedule

Syllabus

Class structure

The Canvas class modules are organized by week; new modules are usually published on Monday (Tuesday if Monday is a holiday), and most activities for most modules occur in that week.

Class materials

Understanding x86_64 assembly language in the Linux ELF64 environmentment

Reference version of fork-exec

Reference version of newmodule

Reference version of code-no-ld-elf

Other material

An amusing test of your preconceptions about C's integer typing: Quiz on C's integer typing (x86_64)

Older and for 32bit, but very much in the spirit of this class: A Whirlwind Tutorial on Creating Really Teensy ELF Executables for Linux (x86_32)

Rust versus GCC/Clang: Bootstrapping Rust in 2023

Prolog for binary formats? tar.pl

Punycode for IDNs: Where does https://meẞagefactory.ca go?

Shuffling binary bits on Gentoo: ROP shuffle

Binary to text and back: Binary to text encoding -- state of the art and missed opportunities

Au revoir, libc? Why I don't miss libc

AVX-512 for sorting also: AVX-512 Quicksort

Unicode character reference: https://en.wikibooks.org/wiki/Unicode/Character_reference

Binary analysis in the wild: Hotel questions

GMP manual : GMP 6 manual

Another example of binary-format programming: SWAR technique

Collection of x86* information: https://www.cs.uaf.edu/2017/fall/cs301/reference/x86_64.html

Binary formats, automated: Binary Protocol Parsing Made Safe