| ▲ | j2kun 4 hours ago | |
That may be true, but I hate it when people repeat the false idea that functional equivalence requires only a test suite that has full branch/line coverage. Call me triggered :) That said, I would probably follow this same approach if I were to do this, but with extensive randomized testing as well. | ||
| ▲ | hedgehog 4 hours ago | parent [-] | |
You can do the process in stages. Do the first decompilation mechanically (no LLM), use a SMT solver to show it builds to an equivalent binary to the original, and then use LLM to clean up the code into something idiomatic with the benefit of a correct binary built with the new toolchain. This helps when you want to port across languages or toolchains, and helps protect against toolchain bugs. | ||