IOS reverse Reveal to view any app interface

Reference books: iOS applications Reverse Engineering Second Edition,
debug other application interface, a very detailed tutorial
, this article is in debugging other applications interface supplement

The above information is a combination of both. It will be easier to understand if you look at it together


I. preparation

The first few chapters of the study we have been able to see through the Reveal interface program to develop their own information, but Xcode6 from Apple will have access to their Reveal development program interface function of information integrated into the Xcode, only after the program to run Debug View click the hierarch button.

IOS reverse Reveal to view any app interface

In enterprise development, we are actually using Reveal to learn the interface effects of other applications. If you want to use Reveal to see the interface effects of other applications, you must have a condition that you have to have a jailbreak device.
1. jailbreak your iOS device: you can use Pangu, PP assistant, Tai Chi and other three tools, a key jailbreak. (I use the iOS version, that is, iOS8.4, use Taiji jailbreak, non advertising)…… A jailbreak tutorial, Taiji website has posted, very simple, fool tutorial), iOS jailbreak on mobile phone programmers without any influence the development and debugging of
PP

as assistant Pangu Tai Chi

The 2.iOS jailbreak is complete, need to use Cydia
to install two software: OpenSSH and CydiaSubstrate
OpenSSH installed, open the jailbreak devices on the Cydia program, click on the search input OpenSSH, and then click install. (the following diagram is successful already installed display screen after search)

IOS reverse Reveal to view any app interface

SSH is a protocol that enables users to encrypt remote login to the system, and OpenSSH is a SSH connection transmission tool.

Install Cydia Substrate, open the Cydia program on the device after the jailbreak, click search enter Cydia Substrate, and then click install. The MobileSubstrate directory does not exist until the CydiaSubstrate is installed (this directory must exist before you can proceed with the following steps). (the following diagram is successful already installed display screen after search)

IOS reverse Reveal to view any app interface

MobileSubstrate is a public library that can be used to dynamically replace code, data, etc. in memory. Basically jailbreak machine, under the more useful system tools need this library, Cydia is the same author to maintain, you can rest assured that.

3 upload libReveal.dylib to check the work after jailbreak devices /Library/MobileSubstrate/DinamicLibraries
: OpenSSH Cydia Substrate is installed and tested successfully
“upload the libReveal.dylib file to install above must use OpenSSH tools. If you want to use the OpenSSH tool, you must place the MAC device in the Reveal software in the same LAN as the iOS device after the jailbreak. “
” first tests whether OpenSSH is installed successfully. Get the IP address in the LAN of the device after the jailbreak, open the settings “-&gt”, “WLAN”, connect to the LAN, and then click on the LAN on the connection to check the IP address of the iOS device.

IOS reverse Reveal to view any app interface

opens the terminal tool on the MAC (Terminal) and enters the following command: SSH root@iOS device IP address. Enter, return, and wait to connect to the iOS device.

IOS reverse Reveal to view any app interface

IOS refers to the IP address of the device after jailbreak equipment (iPhone, iPad) IP address, also is to get on the steps of the IP address, just appear later in this tutorial is the address of the iOS device on behalf of the author when testing the IP address (192.168.2.2), readers must check their own iOS equipment address and replace.

“Then you will be prompted to enter your root password, the default password root iOS user equipment is alpine, enter the password in the terminal, the terminal will not display the characters you enter, so you only need to input Alpine characters enter can request a connection to a iOS device. (this step, make sure your iOS device screen is unlocked, or you will not be prompted for a password!)

IOS reverse Reveal to view any app interface


” appears if the “root#” character means the connection is successful.

IOS reverse Reveal to view any app interface

The next
test of Cydia Substrate is installed successfully, enter the following command on the iOS terminal equipment connection has been a step in the CD /Library/MobleSubstrate/DinamicLibraries
, enter to view the results returned. If the -sh: cd: /Library/MobileSubstrate/DynamicLibraries: No such file or directory
the Cydia Substrate ~ prompt installation is not successful, not successful please re-enter the iOS device to download and install Cydia Substrate software. No, there may be a successful installation

There are major updates and updates here


Cd: /Library/MobileSubstrate/DynamicLibraries: No such file or directory is not necessarily not installed Cydia Substrate software, use the LS -l /Library command to see whether there is RHRevealLoader

Shujinokinakenkou:~ root# LS -l /Library total 24 drwxrwxr-x 6 root admin 204 Feb Application 262015 Support drwxrwxr-x 5 root admin 170 Feb 262015 Audio drwxrwxrwt 2 root admin 68 Nov 82014 Caches drwxrwxr-x 2 root admin 68 Nov 82014 Filesystems drwxr-xr-x 3 root admin 102 Jul 01:21 2 Frameworks drwxrwxr-x 2 root admin 68 Nov Internet 82014 Plug-Ins lrwxr-xr-x 1 root admin 24 Feb 262015 Keychains ->../private/var/Keychains drwxr-xr-x root 2 wheel 68 Nov 82014 LaunchAgents drwxr-xr-x 2 root wheel 9350 Jul 16:00 2 LaunchDaemons lrwxr-xr-x 1 root admin 19 Feb 262015 Logs ->../private/var/logs drwxrwxr-x root 2; admin 102 Nov 82014 Managed Preferences lrwxr-xr-x 1 root admin 27 Feb 262015 Mo BileDevice ->../private/var/MobileDevice drwxr-xr-x 3 root wheel 136 Jul 18:00 2 MobileSubstrate drwxr-xr-x 4 root admin 170 Sep 172015 MusicUISupport drwxr-xr-x 2 root wheel 68 Oct 162015 PreferenceBundles drwxr-xr-x 3 root wheel 102 Jul 16:00 2 PreferenceLoader lrwxr-xr-x 1 root admin 26 Feb 262015 Preferences ->../private/var/preferences drwxrwxr-x root 2; admin 68 Nov 82014 Printers drwxr-xr-x 2 root admin 102 Jul 2 16:00 RHRevealLoader lrwxr-xr-x 1 root admin 29 Jul 1 21:05 Ringtones - > /var/stash/_.3W5Eov/Ringtones drwxrwxr-x 2 root; admin 68 Nov 82014 Updates

There are RHRevealLoader to illustrate that the installation is correct, and then use the root# LS -l /Library/RHRevealLoader, which has libReveal.dylib

Shujinokinakenkou:~, root#, LS, -l, /Library/RHRevealLoader, total, 4284, -rw-r--r--, 1, root, admin, 4384608, Jul,, 16:00, libReveal.dylib, shujinokinakenkou:~, root#

3.1) next, configure Reveal (three steps, very simple)

IOS reverse Reveal to view any app interface
Snip20160702_14.png

3.2) renderings were Taobao and Appstore (Taobao carousel is UIScrollView, background view is far collectionView)

IOS reverse Reveal to view any app interface
taobao.gif
IOS reverse Reveal to view any app interface
appstore.gif

If the ibReveal.dylib is missing above, continue with the 4. step

4. upload libReveal.dylib. If the check for the previous step is complete: OpenSSH and Cydia Substrate are successfully installed.
re opens the terminal tool on the MAC (Terminal) and uses the following command to enter the directory of the Reveal software’s dynamic library: CD, /Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries,

IOS reverse Reveal to view any app interface

use the following command to upload libReveal.dylib to iOS equipment /Library/MobileSubstrate/DynamicLibraries Directory: SCP libReveal.dylib root@iOS /Library/MobileSubstrate/DynamicLibraries/
equipment IP address: please replace after the “@ iOS equipment IP address for your iOS device real address, enter the command will make you enter iOS root password, the default is alpine, after the success of the%100 will display the words upload.

IOS reverse Reveal to view any app interface

5. write and upload a libReveal.plist
to iOS device in the /Library/MobileSubstrate/DynamicLibraries
directory. The function of this file is to monitor the specified App in Reveal, and it’s OK to not upload this file, then Reveal will monitor all the App, but this will be a little slower. Write the libReveal.plist file, the easiest way is to create a plist file, its content is
{Filter = {Bundles = (“you want to see the app bundle Id1”, “you have to check the app bundle Id2”);};}

When you open the libReveal.plist file under Xcode, you can see an example of its structure (the author has added two Bundle ID):

IOS reverse Reveal to view any app interface

About access to iOS App application Bundle ID: open PP assistant, iTools, iTunes and other tools installed on the mobile phone to the backup program to the computer (or direct download procedures need to view IPA files),.Ipa will revise the.Zip, after decompression according to the following path to the info.plist directory, open info.plist among them we need bundle Id.

IOS reverse Reveal to view any app interface
IOS reverse Reveal to view any app interface

6. upload the libReveal.plist
to the /Library/MobileSubstrate/DynamicLibraries
directory of the iOS device. Open the terminal into the libReveal.plist directory, use the following command: SCP libReveal.plist root@iOS upload equipment IP address: /Library/MobileSubstrate/DynamicLibraries/
, please replace after “iOS @ IP address of the device for your iOS device in the real address, enter the command will make you enter iOS root password, the default is alpine upload, after the success of the%100 will display the words.

IOS reverse Reveal to view any app interface

7. next, restart your iOS device and connect to the LAN where your Mac computer is located. Open the program that you need to see in Reveal, and select the program you want to see on the Reveal on the MAC computer.

IOS reverse Reveal to view any app interface
IOS reverse Reveal to view any app interface

tip: if the above Reveal left on the MAC did not appear that you want to debug procedures, several suggestions are given here: check whether
1 mobile phone WiFi connection in the same LAN and MAC (if you are in step 7 is in the correct execution of steps 5 and 6, then ignore the check here is to restart the mobile phone, the mobile phone network or switch etc.).
2. looks at whether the BundleID written in your libReveal.plist file matches the application you open on the iOS device. Even, check that your pist file structure is correct! The App application that you want to see on the
3.iOS device must be in the foreground and into the background. Even if it is opened, it will not appear in the application box of the “select connection” in the upper left corner of the Reveal.

  • The author’s other articles recommend continuing to update your study notes

Runtime 10 uses (no more than this)

To be a top iOS player, you have to come here (here are the best open source projects and articles)

IOS reverse Reveal to view any app interface

JSPatch (real-time repair App Store Bug) learning (1)

How does advanced iOS engineer advance (supplement 20+)?

Extended button (UIButton) Click range (extended in random directions)

The most simple debugging prototype free certificate (original)

By analyzing WeChat app, learn how to use @2x, @3x pictures

The contrast between MVVM and MVC of TableView

Using MVVM to reduce controller code combat (56% reduction)