Native Hopper is perfectly adapted to the environment. The macOS version makes full use of the Cocoa framework, and the Linux version makes use of Qt 5.
Procedures Hopper analyzes function's prologues to extract procedural information such as basic blocks and local variables.
Extensible With the Hopper SDK, you'll be able to extend Hopper's features, and even write your own file format and CPU support.
Control Flow Graph Once a procedure has been detected, Hopper displays a graphical representation of the control flow graph. You can even export a PDF.
Hopper displays the code using different representations. Take a look at the assembly, the CFG, and the pseudo-code of a procedure, all at the same time.
Scriptable Most of the Hopper features can be invoked from Python scripts, giving you the ability to transform a binary in any way you want.
Debugger Hopper can use LLDB or GDB, which lets you debug and analyze the binary in a dynamic way (only for Mac and Linux hosts, not for mobile devices).
Objective-C Even if Hopper can disassemble any kind of Intel executable, it does not forget its main platform. Hopper is specialized in retrieving Objective-C information in the files you analyze, like selectors, strings and messages sent.
Decompiler Based on an advanced understanding of the executable Hopper can present a pseudo-code representation of the procedures found in an executable.
Edit, annotate, comment your work directly from the interactive CFG view.
Swift
This new version of Hopper is able to decode the mangled Swift names. No more cryptic names!
Tabs
Use tabs to create workspaces with different representations of the file.
Semantic Coloration
The analysis performed by Hopper separates code from data, memory accesses from stack variables… And to help you understand the various discovered objects, Hopper will use a different color to each of them.
Types
Use the embedded type editor to create your own structures, unions, or enumerated types. It greatly helps the understanding of the code to use symbols, rather than raw numbers.
签名提示如下:
/Applications/Hopper Disassembler.app: bundle format is ambiguous (could be app or framework)
In subcomponent: /Applications/Hopper Disassembler.app/Contents/Frameworks/Sparkle.framework