Hopper banner
Hopper

Hopper Overview

A reverse engineering tool for OS X, that lets you disassemble, decompile and debug your 32/64bits Intel Mac, Windows and iOS executables. A lot of what Hopper does goes straight over my head, but the feature list seems pretty powerful. It lets you extract procedural information such as basic blocks and local variables, view a graphical representation of the control flow graph, and it's fully scriptable and extensible.

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.

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.

Stay on top of new tools for iOS developers

Subscribe to get a convenient weekly roundup of iOS Dev Tools' newest addition
of helpful and time-saving developer tools, services, and SDKs to get your job done faster.