Hacker News new | ask | show | jobs
by datpiff 1189 days ago
Using ChatGPT as a disassembler seems like a dumb idea when free disassemblers already exist. What possible advantage does it give?
1 comments

The ability to explain the code, and extract higher level understanding. Disassembling into raw instructions is the most trivial part of reverse engineering an application. Hence "and explain what they appear to be doing" bit.

For the pieces I've tested, it often recognises the source language, and could give ideas about what the code was for and what it did.

> Disassembling into raw instructions is the most trivial part

So why not do it in the proven-correct tools and give ChatGPT the instructions?

I'm all for finding neat use cases but I wouldn't use an AI chatbot as a calculator...

You could do that too, but that is entirely missing the point, which is that ChatGPT is capable of inferring higher level semantics from the instructions and explain what the code is doing. You're getting hung up on a minor, unimportant detail.
Apparently the point is proving it's possible. Not making it useful.
No, that was not the point at all.

The point is that ChatGPT understands the code well enough to explain what it does, and so there's reason to wonder how soon someone leverages that in a disassembler to produce far better output to the point where using releasing "only" the binary as an obfuscation mechanism stops being viable.

E.g. additional value would be comments about purpose, labels for function entry points that makes sense for what the function does, labels for data that makes sense for what is stored there, comments with explanations of why things are structured the way they are.

Having reverse engineered programs from binary in the past, inferring good names and commenting the sources is the vast majority of the effort.

>E.g. additional value would be comments about purpose, labels for function entry points that makes sense for what the function does, labels for data that makes sense for what is stored there, comments with explanations of why things are structured the way they are.

None of this requires giving it a binary. You are asking it to do 2 tasks, both of which it will do with some level of error. You could disassemble the binary near perfectly, for free. You have a hammer and everything looks like a nail.