Revisited my #OverTheWire solutions because they apparently adjusted the flags and machines and figured out two things in the process:
- When using #pwnlib, it's very tempting to use their gdb helpers to programmatically interact with gdb and extract program state from it. This turns out not to be intended, it's merely assistance so that you can have gdb running alongside with your exploit for easy debugging of a process. I ended up launching a regular process querying gdb for information about register/memory state.
- The #Emacs markdown-mode has a useful `TAB` command that either cycles visibility of headlines or toggles between indenting the current line (which can be used to quickly indent/unindent code)
How many of the CRC algorithms in pwnlib have people actually needed to use? Many of these seem very fringe, compared to what's provided by pycrc.
http://docs.pwntools.com/en/stable/util/crc.html
#pwnlib
I've picked up #microcorruption, again. Last time I touched it was when the servers went offline and that inspired me to look into ways to play it outside the browser. The necessary parts of the equation:
- An emulator implementing the "syscalls"/callgate
- A debugger/disassembler/assembler toolchain
- All level files
There's several emulators available, along with a matching toolchain. The level files can be copy-pasted from the browser and the hex dump translated to a binary for the emulator. I've been given the remaining level files on #milliways and started translating my solutions so far to Python scripts that automatically solve each level with #pwnlib.
In case you wonder why to bother, this might be the gentlest introduction into binary exploitation, which I consider the black magic discipline in #infosec.
https://github.com/cemeyer/msp430-emu-uctf
https://aur.archlinux.org/packages/msp430-gdb
https://depp.brause.cc/uctf/
#microcorruption #milliways #pwnlib #infosec