notes
Dev logs, mostly. Short, written for future me, published when they're done rather than when they're polished.
the only honest test of an obfuscator is writing the deobfuscator
I built a Java obfuscator and the tool that undoes it, both on ASM. Writing the second one is what told me which parts of the first were protection and which were just mess.
in an encrypted app, the wire schema is the threat model
I'm rewriting my chat app instead of resuming it. The reason isn't the encryption — it's that there was never a written-down shape for a message, and in an end-to-end encrypted system that's not untidiness, it's an unauditable security boundary.
string encryption ships you the key
My Java deobfuscator targeted ProGuard and Allatori jars. This is old enough — 2021/2022 — that I'm writing it from memory, not from the code, and I've had to correct details I got backwards the first time I wrote this up.
keroton.in - temporary placeholder that lasted 2 years
To love is to let go (of temporary) websites
this site exists now
Why I stopped putting it off and built naft.pink, and what I'm going to use it for.
writing a scripting VM in rust
Learning Rust by porting my game's scripting VM out of C++: a stack-based bytecode interpreter and a small compiler for gameplay scripts.