
- #Hopper disassembler windows how to#
- #Hopper disassembler windows install#
- #Hopper disassembler windows simulator#
It lists every instance variable and method of UIWebView. You will notice that it has a lot more detail than the public UIWebView.h file. Now search in the Finder in ~/Desktop/headers folder for file names matching “ UIWeb“.įirst open the generated UIWebView.h file. The output should be the same on x86 as you would see with the arm variant. I have found it least painful to point class-dump to frameworks compiled for the x86 simulator, especially on iOS 9 betas where Apple no longer provides the compiled framework binaries.

You may need to modify the iPhoneSimulator8.3.sdk part of the path to match the version of the SDK you have installed.
#Hopper disassembler windows simulator#
Note: As of this writing, the path to the UIKit framework for the iPhone Simulator is accurate for the latest non-beta version of Xcode (6.3.2). $ cd /Applications/Xcode.app/Contents/Developer/Platforms/atform/Developer/SDKs/iPhoneSimulator8.3.sdk/System/Library/Frameworks/amework/ This will generate headers for UIKit and place them into a headers directory on your desktop. Once you have installed class-dump, open Terminal.app and type in the following commands.
#Hopper disassembler windows install#
Otherwise, you can install class-dump by downloading the installer from the web site or by downloading and building its source. If you already have homebrew installed, you can type brew install class-dump into the terminal. You can install class-dump through the Homebrew package manager. In this section, you will use class-dump to generate headers for the UIKit framework to see if you can find some additional support for the working hypothesis. It will also generate headers for classes Apple does not expose in the framework’s headers containing private implementation details. You can use class-dump to generate header files for libraries for which you do not have source. Here is an object diagram including you saw in the previous tutorial of what you’ve discovered so far and this working hypothesis.Ĭlass-dump is a “command-line utility for examining the Objective-C runtime information stored in Mach-O files”.

This hidden delegate object implements all of the UIScrollViewDelegate methods and forwards those methods both to the web view and to your delegate, favoring the return values from your delegate in methods like viewForZoomingInScrollView: that return values. Hypothesis: _UIWebViewScrollViewDelegateForwarder is somehow a sort of hidden delegate of the scroll view.

Some third party tools can help you to dig deeper into their implementation. UIWebView and its constituent objects are closed-source. You can find out by using reverse engineering tools to inspect the UIKit library itself. How does the delegate forwarder work? By what specific mechanism does both the web view and the scroll view’s delegate receive these callbacks and how does the delegate forwarder insinuate itself between the scroll view and these objects?

#Hopper disassembler windows how to#
In the previous tutorial you used LLBD to gain insight as to whether and how you might become the delegate of UIWebView‘s scrollView while learning some tips and tricks for using LLDB to discover how to insert code into the UIScrollViewDelegate methods of the UIWebView without getting in the way of Apple’s implementation of the UIWebView‘s handling of the UIScrollViewDelegate methods.
