The term reverse engineering may be very unfamiliar to many people, in the Android field, we often hear "anti-compilation of an APK", then reverse engineering from a certain point of view also includes the anti-compilation technology, such a contrast, it may be easier for us to understand the definition of reverse engineering.
We cite Baidu Encyclopedia to explain this word more accurately:
Reverse engineering (also known as reverse technology), is a product design technology reproduction process, that is, a target product reverse analysis and research, so as to deduce and obtain the product's processing flow, organizational structure, functional characteristics and technical specifications and other design elements to make similar functions, but not exactly the same product. Reverse engineering is a result of hardware analysis in the commercial and military fields. The main purpose of this paper is to deduce the design principle of the product directly from the finished products without easily obtaining the necessary production information.
What is the role of reverse engineering?
Reverse engineering is not for the purpose of cracking down on other people's software, in the Business field, has a more important role, specifically including the following aspects.
Security Review: For iOS developers, it's not just about fulfilling the business functions of the product, but also the importance of security issues, especially for large companies. Through reverse engineering, early detection of problems, modify problems, to avoid post-release to the user's hands caused a variety of public opinion problems, damage the company's reputation.
Analysis of competitors: 1. Refer to the architecture design of the competitor app, 2. Refer to the interface design of the competitor app, 3. The implementation details of the key technologies.
Academic research: through reverse, to achieve academic research, mainly for learning.
Breakthrough app Restrictions: Many apps have access to different users of the restrictions, such as fees, or VIP users can use the function, through the reverse advance access to access, of course, do not recommend this way, it is recommended that we still support the genuine.
Identify infringement: Primarily used to investigate competing or commercial products and to identify violations.
Second, the method of reverse analysis
The methods of reverse analysis of iOS mainly include static and dynamic analysis methods.
Static analysis is, as its name implies, an analytical approach to the application itself in the event that the app is not moving. We all know about the sandbox mechanism of iOS, which stores various information about the app, including the file system structure of the application, such as a database, and, in addition, the use of special tools such as disassembly tools to view the app code is a static analysis category.
Dynamic analysis is in the app running process, through on-line debugging, analysis of the application of file structure, memory changes, interface display, etc., but also can observe the network data requests, through the packet capture analysis of the direction of business, the definition of the agreement.
Two methods of analysis in the actual reverse process, should be used, such as static analysis to obtain the basic information of the app and data storage structure, and then through the dynamic analysis of the method further into the inside of the app, study the specific implementation and principles, and greatly provide analysis efficiency.
Third, reverse analysis tools
工欲善其事 its prerequisite, after mastering the method, but also learn to use a variety of tools to analyze the different functions of the app. These tools mainly include the following:
Tools Categories |
Tool Name |
Jailbreak tool |
Pangu Escape |
UI analysis Tools |
Reveal and Ponydebugger, etc. |
File System Viewing Tools |
Iexplorer, IFunbox, Itool, etc. |
Network analysis tools |
WireShark, Charles, etc. |
Disassembly tool |
Hopper, IDA Pro, etc. |
Debugger |
Cycript, GDB, etc. |
Reverse Program Development Tools |
Theos |
Other |
... |
The above tools are paid tools, can use cracked version, specific features we introduced in subsequent chapters.
Iv. Summary
This article gives an overview of the reverse engineering of iOS, introduces the reverse approach and tools, which are described in detail later in this chapter.
Turn from: 54934683
iOS Reverse engineering Overview (GO)