Bringing back the dead... programs

· Igor Plotnikov ·

3 min read Original article ↗

I’d heard stories about how well modern coding assistants handle disassembling binaries, and decided to educate myself.

But what to try it on? I started writing code in the early ‘80s, for science. I vividly remember punching the cards myself and feeding them in from the BESM-6 console. At the turn of the ‘90s I tried my hand at commercial software. A 3D modeler. An image editor. A better image editor.

The last one was my resume when I immigrated to the US. Finding a job with it as a 30-year-old PhD was as easy then as it is hard for me now.

So I thought, hey, can I find it and try? A few Google searches later, I find the .zip file. Manuscripts don’t burn!

I unpack it and start a Claude Code session in the directory. Claude, analyze the binaries and rewrite the code in Rust, make it portable across OSes.

Why Rust? It took the mantle from the ML family, whose lore says that if it compiles, it runs correctly. Rust eliminated many classes of errors, both programming and logical. It is rapidly becoming the assembler of the AI age, with English as the high-level language, obviously. So, Rust it is.

An hour and $60 in API calls later (I use a subscription, but my Claude is configured to show the real cost), it starts the program. It looks familiar. The menu opens, the dialogs pop up.

Claude runs the original program in DOSBox and keeps comparing. The result slowly converges. It adds the image processing filters. The program becomes more and more real.

That’s my wife-to-be in the picture. It was my way of expressing love: putting her into a software distribution, and eventually on the front cover of a book.

Now I want to modify it. The original was very idiosyncratic. Fresh out of science, I wanted selections and operations to be completely orthogonal. A pen is just a selection, so why not allow every operation with a pen? A very original concept, and completely counterintuitive to anyone used to modern imaging tools.

Again, easy enough.

Can we convert it to WASM and run it in a webpage? Absolutely: https://yovico-ai.github.io/pictureman/. The code is on GitHub: https://github.com/yovico-ai/pictureman

So, welcome to the Brave New World. I post this story on Facebook, and a panicked friend calls within 30 minutes. So what, now all my hard work can just be stolen? Well, yes. Even if a thief has no access to your binaries, your product can still be distilled: the superficial behavior becomes a spec, and an AI assistant turns the spec into a working program. Of course, if there is deep science behind it, the job is hard, and maybe still out of reach for the current crop of frontier models.

But generally speaking, software technology is getting trivialized in multiple ways. I believe companies won’t be selling software. They will be selling convenience, ease of access, history of relationship.

Not technology.

P.S. This was an evening side project. My main job is https://www.yovico.ai where I am working on agentic virtual management teams.

Discussion about this post

Ready for more?