

However, there is a very interesting online tool that can handle a lot of different architectures. Be prepared to do a lot of detective work in most cases.Įxactly what tool you use will depend on what CPU architecture you want to work with. But it isn’t easy, especially for anything nontrivial. The real value of a disassembler is when you don’t have the source code.

If you use a high-level language and you want to check your compiler output, you can easily have the compiler provide assembly language output (see below). The disassembly can’t recover things like variable names, some function names, and - of course - comments. If you are coding your own program in assembly, a disassembler isn’t usually necessary.
#HOPPER DISASSEMBLER ALTERNATIVE CODE#
The transition points between data and code can also be tricky. The disassembler can’t always figure out the difference between code and data, for example. This is nothing more than a program that converts numeric machine code into symbolic instructions. That was hard to do even when CPUs only had a handful of instructions.Ī more practical approach is to use a tool called a disassembler. If you want to impress everyone, you’ll just read through the hex code (well, the really tough old birds will read it in binary). If you aren’t very organized, it might even be your own - source code does get lost. If you really want to hack software, you are going to face a time when you have to take apart someone’s machine code.
