Reading files the hard way - Part 1 (node.js, C, rust, strace)
Reading files the hard way: Part 1
Everybody knows how to use files. You just open up File Explorer, the Finder, or a File Manager, and bam - it’s chock-full of files. There’s folders and files as far...
Reading files the hard way - Part 2 (x86 asm, linux kernel)
Reading files the hard way: Part 2
Looking at that latest mental model, it’s.. a bit suspicious that every program ends up calling the same set of functions. It’s almost like something different...
Reading files the hard way - Part 3 (ftrace, disk layouts, ext4)
Reading files the hard way: Part 3
So far, we’ve seen many ways to read a file from different programming languages, we’ve learned about syscalls, how to make those from assembly, then we’ve...
What's in a Linux executable?
Making our own executable packer: Part 1
Executables have been fascinating to me ever since I discovered, as a kid, that they were just files. If you renamed a
.exeto something else, you could open it in notepad! And...
Running an executable without exec
Making our own executable packer: Part 2
In part 1, we’ve looked at three executables:
sample, an assembly program that prints “hi there” using the
entry_point, a C program that...
Making our own executable packer: Part 3
In the last article, we found where code was hiding in our
samples/helloexecutable, by disassembling the whole file and then looking for syscalls.
Later on, we learned how to...