Label: reading notes for pwntools-demo.py and owned-hello.c. Do not install pwntools for this page. Neither file was run. No pipe bytes were captured. What the documentation supports, from the pages read: - The stable introduction identifies itself as pwntools 4.15.0 documentation. - It shows `from pwn import *` and says the library is a large toolkit. - It says interacting with processes uses pwnlib.tubes.process. - The process page says process() spawns a new process and wraps it for communication. - The introduction's examples call sendline and recvline. Those examples are not this course's files. What this course's files do, as source: - owned-hello.c reads with fgets into an 8-byte array, then prints hello-from-owned if the read succeeds. - The Linux fgets(3) page says fgets reads at most one less than the size it is given and stores a terminating null. - pwntools-demo.py would start ./owned-hello and send the line desk. This note does not include captured pipe bytes. The script closes without receiving a line, so its source does not establish an observed greeting. - A source trace, not a captured run: if fgets succeeds, the C file prints hello-from-owned. What the primer does not do: - It does not grant permission to start a program. - It does not find a bug, change a mitigation, or finish a challenge. - It does not include a setting that turns randomization off. The process page documents such a setting. This file does not use it, and this course does not ask you to. Stop conditions if a later install is allowed on a machine you control: - Stop if the program is not the owned hello you just built. - Stop if you are about to change a host mitigation or a kernel policy. - Stop if the platform forbids publishing what you did, and you were about to post it.