Elektrine lite

← Feed

@evmar@inuh.net

Post #2158441

2026-04-29 18:39 UTC

The first step was trying to isolate the problem. I disassembled enough of the code to figure out that the phases were (thankfully) pretty simple sequential code. The cool new thing about the static translation approach of Theseus is that I can modify the translated source code by hand, so it was easy to patch out the call to phase1 and panic in phase3, which reduced the problem to the program immediately entering and then leaving phase2.

Replies (1)

  • @evmar@inuh.net 2026-04-29 18:42

    From there, I could see that phase2 was intended as a loop and that the loop was exiting. Again, because I have translated source code I could use my system debugger to step through it, though the control flow is harder than normal code. From there, I could see that edi was some sort of counter that started at 0, but after a single pass through the loop it had a garbage value. The system debugger's watch points tracked it down further, possibly the first time I've used those.

    Open ##2158442