WO2015035761A1 - Method and apparatus for performing assembly-level dynamic debugging of ios system - Google Patents

Method and apparatus for performing assembly-level dynamic debugging of ios system Download PDF

Info

Publication number
WO2015035761A1
WO2015035761A1 PCT/CN2014/073627 CN2014073627W WO2015035761A1 WO 2015035761 A1 WO2015035761 A1 WO 2015035761A1 CN 2014073627 W CN2014073627 W CN 2014073627W WO 2015035761 A1 WO2015035761 A1 WO 2015035761A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
debugging
server
file
parameter
Prior art date
Application number
PCT/CN2014/073627
Other languages
French (fr)
Chinese (zh)
Inventor
徐滢
Original Assignee
成都品果科技有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 成都品果科技有限公司 filed Critical 成都品果科技有限公司
Publication of WO2015035761A1 publication Critical patent/WO2015035761A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Definitions

  • the present invention relates to an iOS system program debugging technology, and more particularly to a method and corresponding device for performing assembly level dynamic debugging of an iOS system.
  • 011yDbg the most widely used assembly-level debuggers are 011yDbg, GDB, WinDgb, IDAPro, Hopper Disassembler, etc.
  • 011yDbg and WinDd say that b is a very good debugger for the Windows platform, but they are limited to the Windows platform, while GDB is Support for many platforms (including iOS), but it is mainly used for source-level debugging, it is inconvenient to use it for assembly-level debugging.
  • the IDAPro book, Hopper Disassembler supports very good static analysis, but does not support assembly-level dynamic debugging for iOS.
  • iOS is one of the mainstream mobile terminal operating systems, and the number of applications is huge. If the system and software can be studied from a relatively low-level perspective, software security on the platform can be greatly promoted. The development of related activities such as commissioning.
  • the technical problem to be solved by the present invention is: To solve the above problems, a more convenient method and corresponding device for performing assembly level dynamic debugging on an iOS system is provided.
  • the present invention provides a method for assembly level dynamic debugging of an iOS system, including:
  • step 1
  • the operating system of the client is a Windows system
  • the operating system of the server is an iOS system
  • the client transmits the debugging instruction of the iOS system to the server end parameter and the file transmission module by using the debugging instruction transmission module; the server end parameter and the file transmission module further transmit the debugging instruction to the debugging module;
  • the debugging module feeds back debugging parameters according to the debugging instruction and transmits the debugging parameters to the server end parameter and the file transmission module, or the debugging module transmits the program file compiled into the machine instruction to the server according to the debugging instruction.
  • End parameter and file transfer module Transmitting, by the server-side parameter and the file transfer module, the debug parameter or/and the program file to the client parameter and the file transfer module;
  • Step 3 The disassembly module converts the program file into an assembler file, and an assembler comment module annotates the assembly program file;
  • Step 4 Display the annotated assembler file and the debugging parameters on the debug interface module.
  • the debug instruction transmission module is PuTTY software
  • the disassembly module is Otool software
  • the assembler annotation module is Class-Dump-z software
  • the client parameter and file transfer module is OpenSSH.
  • Software the debugging interface module is a display interface of the OllyDbg debugging software.
  • the debugging module is GDB debugging software
  • the server-side parameter and file transmission module is OpenSSH software.
  • the debugging parameter includes memory information, register information, stack information or breakpoint information of the server.
  • the present invention also provides an apparatus for performing assembly level dynamic debugging on an iOS system corresponding to the foregoing method, including:
  • Client and server; client and server have physical signal connections
  • the client has a debug instruction transfer module, a disassembly module, an assembler comment module, a client parameter and a file transfer module, and a debug interface module;
  • the operating system of the client is a Windows system
  • the operating system of the server is an iOS system
  • the debugging instruction transmission module is configured to transmit an iOS system debugging instruction to a server end parameter and a file transmission module
  • a file transfer module configured to receive debug parameters and/or program files output by the server end parameter and the file transfer module
  • the disassembly module is configured to convert the client parameter and the program file received by the file transfer module into an assembler file
  • the assembler comment module is configured to annotate the assembler file
  • the debugging interface module is configured to display the annotated assembler file and the debugging parameter
  • the debugging module is configured to feed back a debugging parameter according to the debugging instruction, and transmit the debugging parameter to the server end parameter and the file transmission module, and transmit the program file that has been compiled into a machine instruction according to the debugging instruction.
  • the server end parameter and file transfer module configured to receive the debug instruction from the debug instruction transmission module And being transmitted to the debug module; and for transmitting the debug parameters and/or the program file received from the debug module to the client parameter and the file transfer module.
  • the invention uses PuTTY and OpenSSH to build a debugging framework of C/S architecture, which solves the communication problem between the client and the server during the debugging process, and makes remote debugging possible.
  • the invention combines local client code analysis and remote server-side debugging, and puts the server-side machine instruction program file on the local client for assembly and annotation, and synchronizes the update with the debugging parameters to avoid the GDB on the server side.
  • Assembly-level debugging effectively saves time for GDB debuggers to perform assembly-level debugging, thus providing a convenient and fast iOS system assembly-level debugging method.
  • the present invention can also extend the functions of remote device management, and the deployment difficulty is relatively small, and fully utilizes the powerful application execution capability of the iOS system itself.
  • Figure 1 is a schematic block diagram of the present invention.
  • the present invention provides an implementation method for assembly-level dynamic debugging of an iOS system corresponding to the foregoing method.
  • Figure 1 including: client and server; client and server need to establish a physical signal connection.
  • the client is a computer running the Windows operating system
  • the server is a computer running the iOS operating system.
  • the client is installed with a debug instruction transmission module, a disassembly module, an assembler annotation module, a client parameter and a file transfer module, and a debug interface module; a debug module and a server-side parameter and a file transfer module are installed on the server; .
  • the debug instruction transmission module, the client parameter and the file transfer module, and the server-side parameters and the file transfer module establish a C/S (client/server) architecture, which solves the communication problem of remote debugging.
  • the debug instruction transmission module is configured to transmit the iOS system debugging instruction to the server end parameter and the file transfer module;
  • the client parameter and the file transfer module are configured to receive the server side parameter and the debug parameter output by the file transfer module and And a program file;
  • the server-side parameter and file transfer module is configured to transmit the debug instruction received from the debug instruction transfer module to the debug module and debug parameters and/or instructions received from the debug module
  • the program file is transmitted to the client parameter and the file transfer module.
  • One embodiment of the present invention utilizes PuTTY software as a debug instruction transmission module, and uses OpenSSH as a parameter and file transfer module for the client and the server.
  • PuTTY software is a serial interface connection software
  • OpenSSH software is used to implement remote control and transfer files.
  • the debugging module is implemented by GDB debugging software, and is used for debugging software on the iOS server side, and extracting debugging parameters of the software running according to the debugging instruction of reading the debugging parameters. For example, parameters such as memory information, register information, stack information, and breakpoint information, and transmitting the debug parameters to the server-side parameters and file transfer module, and for compiling the machine instructions according to debug instructions of the return program file
  • the program file is transferred to the server-side parameter and the file transfer module.
  • the GDB software located on the iOS server side does not perform static analysis such as disassembly, because this part of the static analysis is executed by GDB, which is very time consuming, and the GDB in the present invention simply compiles the program file into machine instructions and transmits them to Client, static analysis by the client.
  • the server-side parameter and file transfer module transmits the debug parameter and/or the program file to the client parameter and file transfer module.
  • the client parameter and the file transfer module transmit the received debug parameters to the debug interface module, and the debug interface module is preferably implemented by an interface portion of the OllyDbg debug software with good human interface.
  • the OllyDbg plugin is developed to convert the debug parameters into a format that is converted to the usual layout form of the OllyDbg interface and then displayed in the OllyDbg UI interface.
  • those skilled in the art can also display the debugging parameters directly in the UI interface, or convert them into a more intuitive and convenient format to display in the UI interface.
  • the disassembly module can be implemented by Otool software, and the program file compiled into the machine instruction is converted into an assembler file. Then, the assembler annotation module, preferably implemented by the Class-Dump-Z software, annotates the assembler file, and finally transfers the annotated assembler file to the debug interface module for display, completing the static of the program. analysis.

Abstract

The present invention relates to a program debugging technology for an iOS system. Disclosed are a method and an apparatus for performing assembly-level dynamic debugging of the iOS system. The present invention aims at providing a method for conveniently and quickly performing the assembly-level dynamic debugging of the iOS system and also providing a corresponding apparatus. Technical key points are as follows: installing a debugging instruction transmission module, a disassembly module, an assembly program annotation module, a client-side parameter and file transmission module, and a debugging interface module on a client side; installing a debugging module and a server-side parameter and file transmission module on a server side; establishing a physical signal connection between the client side and the server side; an operating system of the client side being a Windows system, and an operating system of the server side being the iOS system; and the client side implementing proxy analysis and remote debugging of the server side.

Description

一种对 iOS系统进行汇编级动态调试的方法及装置 技术领域  Method and device for assembling level dynamic debugging of iOS system
[0001] 本发明涉及 iOS 系统程序调试技术, 尤其是一种对 iOS 系统进行汇编级动态调试的 方法及对应的装置。  [0001] The present invention relates to an iOS system program debugging technology, and more particularly to a method and corresponding device for performing assembly level dynamic debugging of an iOS system.
背景技术 Background technique
[0002] 目前使用比较广泛的汇编级调试器有 011yDbg、 GDB、 WinDgb , IDAPro、 Hopper Disassembler等, 其中 011yDbg、 WinDd说b是 Windows平台非常优秀的调试器, 但是它们仅 限于 Windows 平台, 而 GDB 虽然支持众多平台 (包括 iOS ), 但是其主要用于源码级调 试, 使用其进行汇编级的调试很不方便。 IDAPro书, Hopper Disassembler支持非常出色的静态 分析, 但是不支持 iOS的汇编级动态调试。  [0002] At present, the most widely used assembly-level debuggers are 011yDbg, GDB, WinDgb, IDAPro, Hopper Disassembler, etc. Among them, 011yDbg and WinDd say that b is a very good debugger for the Windows platform, but they are limited to the Windows platform, while GDB is Support for many platforms (including iOS), but it is mainly used for source-level debugging, it is inconvenient to use it for assembly-level debugging. The IDAPro book, Hopper Disassembler supports very good static analysis, but does not support assembly-level dynamic debugging for iOS.
[0003] 然而, iOS是目前主流的移动终端操作系统之一, 应用程序数量巨大, 如果能在比较 低层的角度上对系统、 对软件进行研究, 可极大的促进该平台上软件安全, 软件调试等相关 活动的开展。  [0003] However, iOS is one of the mainstream mobile terminal operating systems, and the number of applications is huge. If the system and software can be studied from a relatively low-level perspective, software security on the platform can be greatly promoted. The development of related activities such as commissioning.
发明内容 Summary of the invention
[0004] 本发明所要解决的技术问题是: 针对上述存在的问题, 提供一种更加便捷的对 iOS 系统进行汇编级动态调试的方法及对应的装置。  [0004] The technical problem to be solved by the present invention is: To solve the above problems, a more convenient method and corresponding device for performing assembly level dynamic debugging on an iOS system is provided.
[0005] 本发明提供了一种对 iOS系统进行汇编级动态调试的方法, 包括:  [0005] The present invention provides a method for assembly level dynamic debugging of an iOS system, including:
步骤 1 : step 1 :
在客户端安装调试指令传输模块、 反汇编模块、 汇编程序注释模块、 客户端参数与文件传输 模块及调试界面模块; Installing a debug instruction transfer module, a disassembly module, an assembler comment module, a client parameter and a file transfer module, and a debug interface module on the client;
在服务器端安装调试模块及服务器端参数与文件传输模块; Install the debug module and server-side parameters and file transfer module on the server side;
在客户端与服务器端之间建立物理信号连接; Establish a physical signal connection between the client and the server;
所述客户端的操作系统为 Windows系统, 所述服务器端的操作系统为 iOS系统; The operating system of the client is a Windows system, and the operating system of the server is an iOS system;
步骤 2: Step 2:
客户端利用调试指令传输模块将 iOS系统的调试指令传输给服务器端参数与文件传输模块; 所述服务器端参数与文件传输模块再将所述调试指令传输给调试模块; The client transmits the debugging instruction of the iOS system to the server end parameter and the file transmission module by using the debugging instruction transmission module; the server end parameter and the file transmission module further transmit the debugging instruction to the debugging module;
所述调试模块根据调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件 传输模块, 或者所述调试模块根据调试指令将已编译为机器指令的程序文件传输给所述服务 器端参数与文件传输模块; 所述服务器端参数与文件传输模块将所述调试参数或 /和程序文件传输给客户端参数与文件 传输模块; The debugging module feeds back debugging parameters according to the debugging instruction and transmits the debugging parameters to the server end parameter and the file transmission module, or the debugging module transmits the program file compiled into the machine instruction to the server according to the debugging instruction. End parameter and file transfer module; Transmitting, by the server-side parameter and the file transfer module, the debug parameter or/and the program file to the client parameter and the file transfer module;
步骤 3: 反汇编模块将所述程序文件转换为汇编程序文件, 汇编程序注释模块对所述汇编程 序文件进行注释; Step 3: The disassembly module converts the program file into an assembler file, and an assembler comment module annotates the assembly program file;
步骤 4: 在所述调试界面模块上显示注释后的汇编程序文件以及所述调试参数。 Step 4: Display the annotated assembler file and the debugging parameters on the debug interface module.
[0006] 优选地, 所述调试指令传输模块为 PuTTY软件; 所述反汇编模块为 Otool软件; 所 述汇编程序注释模块为 Class-Dump-z软件; 所述客户端参数与文件传输模块为 OpenSSH软 件; 所述调试界面模块为 OllyDbg调试软件的显示界面。 [0006] Preferably, the debug instruction transmission module is PuTTY software; the disassembly module is Otool software; the assembler annotation module is Class-Dump-z software; and the client parameter and file transfer module is OpenSSH. Software; the debugging interface module is a display interface of the OllyDbg debugging software.
[0007] 优选地, 所述调试模块为 GDB 调试软件; 所述服务器端参数与文件传输模块为 OpenSSH软件。  [0007] Preferably, the debugging module is GDB debugging software; the server-side parameter and file transmission module is OpenSSH software.
[0008] 优选地, 所述调试参数包括服务器端的内存信息、 寄存器信息、 堆栈信息或断点信 息。  [0008] Preferably, the debugging parameter includes memory information, register information, stack information or breakpoint information of the server.
[0009] 本发明还提供了一种与前述方法对应的对 iOS 系统进行汇编级动态调试的装置, 包 括:  The present invention also provides an apparatus for performing assembly level dynamic debugging on an iOS system corresponding to the foregoing method, including:
客户端及服务器端; 客户端与服务器端具有物理信号连接; Client and server; client and server have physical signal connections;
所述客户端上安装有调试指令传输模块、 反汇编模块、 汇编程序注释模块、 客户端参数与文 件传输模块及调试界面模块; The client has a debug instruction transfer module, a disassembly module, an assembler comment module, a client parameter and a file transfer module, and a debug interface module;
服务器端上安装调试模块及服务器端参数与文件传输模块; Install the debug module and server-side parameters and file transfer module on the server;
所述客户端的操作系统为 Windows系统, 所述服务器端的操作系统为 iOS系统; 所述调试指令传输模块, 用于将 iOS系统调试指令传输给服务器端参数与文件传输模块; 所述客户端参数与文件传输模块, 用于接收服务器端参数与文件传输模块输出的调试参数和 /或程序文件; The operating system of the client is a Windows system, and the operating system of the server is an iOS system; the debugging instruction transmission module is configured to transmit an iOS system debugging instruction to a server end parameter and a file transmission module; a file transfer module, configured to receive debug parameters and/or program files output by the server end parameter and the file transfer module;
所述反汇编模块, 用于将客户端参数与文件传输模块接收的所述程序文件转换为汇编程序文 件; The disassembly module is configured to convert the client parameter and the program file received by the file transfer module into an assembler file;
所述汇编程序注释模块, 用于对所述汇编程序文件进行注释; The assembler comment module is configured to annotate the assembler file;
所述调试界面模块, 用于显示注释后的汇编程序文件以及所述调试参数; The debugging interface module is configured to display the annotated assembler file and the debugging parameter;
所述调试模块, 用于根据所述调试指令反馈调试参数并将所述调试参数传输给所述服务器端 参数与文件传输模块, 以及用于根据调试指令将已编译为机器指令的程序文件传输给所述服 务器端参数与文件传输模块; The debugging module is configured to feed back a debugging parameter according to the debugging instruction, and transmit the debugging parameter to the server end parameter and the file transmission module, and transmit the program file that has been compiled into a machine instruction according to the debugging instruction. The server side parameter and file transfer module;
所述服务器端参数与文件传输模块, 用于将从所述调试指令传输模块接收到的所述调试指令 传输给调试模块; 以及用于将从所述调试模块接收到的调试参数和 /或所述程序文件传输给 所述客户端参数与文件传输模块。 The server end parameter and file transfer module, configured to receive the debug instruction from the debug instruction transmission module And being transmitted to the debug module; and for transmitting the debug parameters and/or the program file received from the debug module to the client parameter and the file transfer module.
[0010] 综上所述, 由于采用了上述技术方案, 本发明的有益效果是:  [0010] In summary, due to the adoption of the above technical solutions, the beneficial effects of the present invention are:
1、 本发明利用 PuTTY及 OpenSSH搭建了一个 C/S架构的调试框架, 解决了客户端与服务 器端在调试过程中的通信问题, 使远程调试成为可能。  1. The invention uses PuTTY and OpenSSH to build a debugging framework of C/S architecture, which solves the communication problem between the client and the server during the debugging process, and makes remote debugging possible.
[0011] 2、 本发明将本地客户端代码分析和远程服务器端调试结合, 将服务器端的机器指令 程序文件放在本地客户端进行汇编化及注释, 并结合调试参数进行同步更新, 避免服务器端 的 GDB进行汇编级调试, 有效节省了 GDB调试器进行汇编级调试的时间, 因而提供了一 种便捷、 快速 iOS系统汇编级调试方法。  [0011] 2. The invention combines local client code analysis and remote server-side debugging, and puts the server-side machine instruction program file on the local client for assembly and annotation, and synchronizes the update with the debugging parameters to avoid the GDB on the server side. Assembly-level debugging effectively saves time for GDB debuggers to perform assembly-level debugging, thus providing a convenient and fast iOS system assembly-level debugging method.
[0012] 3、 本发明除了可以实现远程调试,还可以扩展远程设备管理的功能,且部署难度相对较 小,充分利用了 iOS系统本身强大的应用程序执行能力。  [0012] 3. In addition to remote debugging, the present invention can also extend the functions of remote device management, and the deployment difficulty is relatively small, and fully utilizes the powerful application execution capability of the iOS system itself.
附图说明 DRAWINGS
[0013] 本发明将通过例子并参照附图的方式说明, 其中:  [0013] The invention will be illustrated by way of example and with reference to the accompanying drawings in which:
图 1为本发明原理框图。 Figure 1 is a schematic block diagram of the present invention.
具体实施方式 detailed description
[0014] 本说明书中公开的所有特征, 或公开的所有方法或过程中的步骤, 除了互相排斥的 特征和 /或步骤以外, 均可以以任何方式组合。  [0014] All of the features disclosed in this specification, or steps in all methods or processes disclosed, in addition to mutually exclusive features and/or steps, may be combined in any manner.
[0015] 本说明书中公开的任一特征, 除非特别叙述, 均可被其他等效或具有类似目的的替 代特征加以替换。 即, 除非特别叙述, 每个特征只是一系列等效或类似特征中的一个例子而 已。  [0015] Any feature disclosed in this specification, unless otherwise stated, may be replaced by other equivalent features or equivalent features. That is, unless specifically stated, each feature is only one example of a series of equivalent or similar features.
[0016] 本发明提供了一种与前述方法对应的对 iOS 系统进行汇编级动态调试的实现方法。 如图 1, 包括: 客户端及服务器端; 客户端与服务器端首先需要建立物理信号连接。 其中客 户端为运行 Windows操作系统的计算机, 服务器端为运行 iOS操作系统的计算机。  [0016] The present invention provides an implementation method for assembly-level dynamic debugging of an iOS system corresponding to the foregoing method. Figure 1, including: client and server; client and server need to establish a physical signal connection. The client is a computer running the Windows operating system, and the server is a computer running the iOS operating system.
[0017] 所述客户端上安装有调试指令传输模块、 反汇编模块、 汇编程序注释模块、 客户端 参数与文件传输模块及调试界面模块; 服务器端上安装调试模块及服务器端参数与文件传输 模块。 [0017] the client is installed with a debug instruction transmission module, a disassembly module, an assembler annotation module, a client parameter and a file transfer module, and a debug interface module; a debug module and a server-side parameter and a file transfer module are installed on the server; .
[0018] 调试指令传输模块、 客户端参数与文件传输模块及服务器端参数与文件传输模块搭 建了 C/S (客户端 /服务器端)架构, 解决了远程调试的通信问题。  [0018] The debug instruction transmission module, the client parameter and the file transfer module, and the server-side parameters and the file transfer module establish a C/S (client/server) architecture, which solves the communication problem of remote debugging.
[0019] 其中, 调试指令传输模块用于将 iOS 系统调试指令传输给服务器端参数与文件传输 模块; 客户端参数与文件传输模块用于接收服务器端参数与文件传输模块输出的调试参数和 /或程序文件; 而服务器端参数与文件传输模块用于将从所述调试指令传输模块接收到的所 述调试指令传输给调试模块以及将从所述调试模块接收到的调试参数和 /或所述程序文件传 输给所述客户端参数与文件传输模块。 [0019] wherein, the debug instruction transmission module is configured to transmit the iOS system debugging instruction to the server end parameter and the file transfer module; the client parameter and the file transfer module are configured to receive the server side parameter and the debug parameter output by the file transfer module and And a program file; and the server-side parameter and file transfer module is configured to transmit the debug instruction received from the debug instruction transfer module to the debug module and debug parameters and/or instructions received from the debug module The program file is transmitted to the client parameter and the file transfer module.
[0020] 本发明的一个具体实施方式是利用 PuTTY 软件作为调试指令传输模块, 利用 OpenSSH作为客户端及服务器端的参数与文件传输模块。 本领域技术人员都知晓 PuTTY软 件为串行接口连接软件, OpenSSH软件用于实现远程控制、 传输文件。  [0020] One embodiment of the present invention utilizes PuTTY software as a debug instruction transmission module, and uses OpenSSH as a parameter and file transfer module for the client and the server. Those skilled in the art are aware that the PuTTY software is a serial interface connection software, and the OpenSSH software is used to implement remote control and transfer files.
[0021] 本发明的另一个具体实施例中, 所述调试模块由 GDB调试软件实现, 用于对 iOS服 务器端上的软件进行调试, 根据读取调试参数的调试指令提取软件运行的调试参数, 例如内 存信息、 寄存器信息、 堆栈信息以及断点信息等参数, 并将所述调试参数传输给所述服务器 端参数与文件传输模块, 以及用于根据返回程序文件的调试指令将已编译为机器指令的程序 文件传输给所述服务器端参数与文件传输模块。 本发明中, 位于 iOS服务器端的 GDB软件 并不进行反汇编等静态分析, 因为这部分静态分析由 GDB 来执行的话将十分耗时, 本发明 中的 GDB只是将程序文件编译为机器指令然后传输给客户端, 由客户端进行静态分析。  [0021] In another embodiment of the present invention, the debugging module is implemented by GDB debugging software, and is used for debugging software on the iOS server side, and extracting debugging parameters of the software running according to the debugging instruction of reading the debugging parameters. For example, parameters such as memory information, register information, stack information, and breakpoint information, and transmitting the debug parameters to the server-side parameters and file transfer module, and for compiling the machine instructions according to debug instructions of the return program file The program file is transferred to the server-side parameter and the file transfer module. In the present invention, the GDB software located on the iOS server side does not perform static analysis such as disassembly, because this part of the static analysis is executed by GDB, which is very time consuming, and the GDB in the present invention simply compiles the program file into machine instructions and transmits them to Client, static analysis by the client.
[0022] 这里, GDB软件与 OpenSSH软件之间的数据传输由更底层的命令完成, 这属于本领 域现有的技术, 在此不赘述其详细的数据传输步骤。 [0022] Here, the data transmission between the GDB software and the OpenSSH software is completed by a lower layer command, which belongs to the prior art in the prior art, and detailed data transmission steps thereof are not described herein.
[0023] 服务器端参数与文件传输模块将所述调试参数和 /或所述程序文件传输给所述客户端 参数与文件传输模块。  [0023] The server-side parameter and file transfer module transmits the debug parameter and/or the program file to the client parameter and file transfer module.
[0024] 客户端参数与文件传输模块将接收到的调试参数传输给调试界面模块, 调试界面模 块优选为人机界面良好的 OllyDbg调试软件的界面部分来实现。 具体做法是, 开发 OllyDbg 插件将调试参数按照一定的格式进行转换, 例如转换为 OllyDbg界面常用的布局形式, 然后 在 OllyDbg的 UI界面中展示。 当然本领域技术人员也可不将调试参数进行格式转换直接在 UI界面中展示, 或者转换为更加直观便捷的格式展示在 UI界面中。 开发 OllyDbg插件将调 试参数按照一定的格式进行转换也是本领域技术人员不经创造性劳动即可完成的, 在此不对 其过程进行赘述。 工作人员根据界面显示的动态调试参数, 完成程序调试的动态分析。  [0024] The client parameter and the file transfer module transmit the received debug parameters to the debug interface module, and the debug interface module is preferably implemented by an interface portion of the OllyDbg debug software with good human interface. To do this, the OllyDbg plugin is developed to convert the debug parameters into a format that is converted to the usual layout form of the OllyDbg interface and then displayed in the OllyDbg UI interface. Of course, those skilled in the art can also display the debugging parameters directly in the UI interface, or convert them into a more intuitive and convenient format to display in the UI interface. The development of the OllyDbg plug-in to convert the debug parameters according to a certain format is also accomplished by those skilled in the art without any creative effort, and the process will not be described here. The staff completes the dynamic analysis of the program debugging according to the dynamic debugging parameters displayed on the interface.
[0025] 当客户端接收到已被编译为机器指令的程序文件后, 反汇编模块, 可以由 Otool软件 实现, 将被编译为机器指令的程序文件转换为汇编程序文件。 之后, 再由汇编程序注释模 块, 优选的由 Class-Dump-Z 软件实现, 对汇编程序文件进行注释, 最后将注释后的汇编程 序文件传输给所述的调试界面模块进行显示, 完成程序的静态分析。 [0025] When the client receives the program file that has been compiled into the machine instruction, the disassembly module can be implemented by Otool software, and the program file compiled into the machine instruction is converted into an assembler file. Then, the assembler annotation module, preferably implemented by the Class-Dump-Z software, annotates the assembler file, and finally transfers the annotated assembler file to the debug interface module for display, completing the static of the program. analysis.
[0026] 同样的, OpenSSH软件、 Otool软件、 Class-Dump-Z软件以及 OllyDbg软件之间的数 据传输也有更加底层的命令实现, 为现有技术。 [0027] 本发明并不局限于前述的具体实施方式。 本发明扩展到任何在本说明书中披露的新 特征或任何新的组合, 以及披露的任一新的方法或过程的步骤或任何新的组合。 [0026] Similarly, data transfer between OpenSSH software, Otool software, Class-Dump-Z software, and OllyDbg software has a lower level of command implementation, which is prior art. [0027] The invention is not limited to the specific embodiments described above. The invention extends to any new feature or any new combination disclosed in this specification, as well as any novel method or process steps or any new combination disclosed.

Claims

权 利 要 求 书 Claim
1. 一种对 iOS系统进行汇编级动态调试的方法, 其特征在于, 包括:  1. A method for assembly level dynamic debugging of an iOS system, comprising:
步骤 1 : step 1 :
在客户端安装调试指令传输模块、 反汇编模块、 汇编程序注释模块、 客户端参数与文件传输 模块及调试界面模块; Installing a debug instruction transfer module, a disassembly module, an assembler comment module, a client parameter and a file transfer module, and a debug interface module on the client;
在服务器端安装调试模块及服务器端参数与文件传输模块; Install the debug module and server-side parameters and file transfer module on the server side;
在客户端与服务器端之间建立物理信号连接; Establish a physical signal connection between the client and the server;
所述客户端的操作系统为 Windows系统, 所述服务器端的操作系统为 iOS系统; 步骤 2: The operating system of the client is a Windows system, and the operating system of the server is an iOS system; Step 2:
客户端利用调试指令传输模块将 iOS系统的调试指令传输给服务器端参数与文件传输模块; 所述服务器端参数与文件传输模块再将所述调试指令传输给调试模块; The client transmits the debugging instruction of the iOS system to the server end parameter and the file transmission module by using the debugging instruction transmission module; the server end parameter and the file transmission module further transmit the debugging instruction to the debugging module;
所述调试模块根据调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件 传输模块, 或者所述调试模块根据调试指令将已编译为机器指令的程序文件传输给所述服务 器端参数与文件传输模块; The debugging module feeds back debugging parameters according to the debugging instruction and transmits the debugging parameters to the server end parameter and the file transmission module, or the debugging module transmits the program file compiled into the machine instruction to the server according to the debugging instruction. End parameter and file transfer module;
所述服务器端参数与文件传输模块将所述调试参数或 /和程序文件传输给客户端参数与文件 传输模块; Transmitting, by the server-side parameter and the file transfer module, the debug parameter or/and the program file to the client parameter and the file transfer module;
步骤 3: 反汇编模块将所述程序文件转换为汇编程序文件, 汇编程序注释模块对所述汇编程 序文件进行注释; Step 3: The disassembly module converts the program file into an assembler file, and an assembler comment module annotates the assembly program file;
步骤 4: 在所述调试界面模块上显示注释后的汇编程序文件以及所述调试参数。 Step 4: Display the annotated assembler file and the debugging parameters on the debug interface module.
2. 根据权利要求 1 所述的一种对 iOS 系统进行汇编级动态调试的方法, 其特征在于, 所述 调试指令传输模块为 PuTTY软件; 所述反汇编模块为 Otool软件; 所述汇编程序注释模块 为 Class-Dump-z软件; 所述客户端参数与文件传输模块为 OpenSSH软件; 所述调试界面模 块为 OllyDbg调试软件的显示界面。  2. The method for performing assembly level dynamic debugging on an iOS system according to claim 1, wherein the debug instruction transmission module is PuTTY software; the disassembly module is Otool software; The module is a Class-Dump-z software; the client parameter and the file transfer module are OpenSSH software; and the debug interface module is a display interface of the OllyDbg debug software.
3. 根据权利要求 2所述的一种对 iOS 系统进行汇编级动态调试的方法, 其特征在于, 所述 调试模块为 GDB调试软件; 所述服务器端参数与文件传输模块为 OpenSSH软件。  The method for performing assembly-level dynamic debugging on an iOS system according to claim 2, wherein the debugging module is GDB debugging software; and the server-side parameter and file transmission module is OpenSSH software.
4. 根据权利要求 3 所述的一种对 iOS 系统进行汇编级动态调试的方法, 其特征在于, 所述 调试参数包括服务器端的内存信息、 寄存器信息、 堆栈信息或断点信息。  4. The method of claim level dynamic debugging of an iOS system according to claim 3, wherein the debugging parameters include memory information, register information, stack information or breakpoint information of the server.
5. —种对 iOS系统进行汇编级动态调试的装置, 其特征在于, 包括:  5. An apparatus for assembly level dynamic debugging of an iOS system, comprising:
客户端及服务器端; 客户端与服务器端具有物理信号连接; Client and server; client and server have physical signal connections;
所述客户端上安装有调试指令传输模块、 反汇编模块、 汇编程序注释模块、 客户端参数与文 件传输模块及调试界面模块; 服务器端上安装调试模块及服务器端参数与文件传输模块; The client is provided with a debug instruction transfer module, a disassembly module, an assembler comment module, a client parameter and a file transfer module, and a debug interface module; Install the debug module and server-side parameters and file transfer module on the server;
所述客户端的操作系统为 Windows系统, 所述服务器端的操作系统为 iOS系统; 所述调试指令传输模块, 用于将 iOS系统调试指令传输给服务器端参数与文件传输模块; 所述客户端参数与文件传输模块, 用于接收服务器端参数与文件传输模块输出的调试参数和 /或程序文件; The operating system of the client is a Windows system, and the operating system of the server is an iOS system; the debugging instruction transmission module is configured to transmit an iOS system debugging instruction to a server end parameter and a file transmission module; a file transfer module, configured to receive debug parameters and/or program files output by the server end parameter and the file transfer module;
所述反汇编模块, 用于将客户端参数与文件传输模块接收的所述程序文件转换为汇编程序文 件; The disassembly module is configured to convert the client parameter and the program file received by the file transfer module into an assembler file;
所述汇编程序注释模块, 用于对所述汇编程序文件进行注释; The assembler comment module is configured to annotate the assembler file;
所述调试界面模块, 用于显示注释后的汇编程序文件以及所述调试参数; The debugging interface module is configured to display the annotated assembler file and the debugging parameter;
所述调试模块, 用于根据所述调试指令反馈调试参数并将所述调试参数传输给所述服务器端 参数与文件传输模块, 以及用于根据调试指令将已编译为机器指令的程序文件传输给所述服 务器端参数与文件传输模块; The debugging module is configured to feed back a debugging parameter according to the debugging instruction, and transmit the debugging parameter to the server end parameter and the file transmission module, and transmit the program file that has been compiled into a machine instruction according to the debugging instruction. The server side parameter and file transfer module;
所述服务器端参数与文件传输模块, 用于将从所述调试指令传输模块接收到的所述调试指令 传输给调试模块; 以及用于将从所述调试模块接收到的调试参数和 /或所述程序文件传输给 所述客户端参数与文件传输模块。 The server-side parameter and file transfer module, configured to transmit the debug instruction received from the debug instruction transfer module to a debug module; and for debugging parameters and/or instructions received from the debug module The program file is transmitted to the client parameter and the file transfer module.
6. 根据权利要求 5 所述的一种对 iOS 系统进行汇编级动态调试的装置, 其特征在于, 所述 调试指令传输模块为 PuTTY软件; 所述反汇编模块为 Otool软件; 所述汇编程序注释模块 为 Class-Dump-z软件; 所述客户端参数与文件传输模块为 OpenSSH软件; 所述调试界面模 块为 OllyDbg调试软件的显示界面。  6. The apparatus for performing assembly level dynamic debugging on an iOS system according to claim 5, wherein the debug instruction transmission module is PuTTY software; the disassembly module is Otool software; The module is a Class-Dump-z software; the client parameter and the file transfer module are OpenSSH software; and the debug interface module is a display interface of the OllyDbg debug software.
7. 根据权利要求 6所述的一种对 iOS 系统进行汇编级动态调试的装置, 其特征在于, 所述 调试模块为 GDB调试软件; 所述服务器端参数与文件传输模块为 OpenSSH软件。  7. The apparatus for performing assembly level dynamic debugging on an iOS system according to claim 6, wherein the debugging module is GDB debugging software; and the server end parameter and file transmission module is OpenSSH software.
8. 根据权利要求 7所述的一种对 iOS 系统进行汇编级动态调试的装置, 其特征在于, 所述 调试参数包括服务器端的内存信息、 寄存器信息、 堆栈信息或断点信息。  8. The apparatus for performing assembly level dynamic debugging on an iOS system according to claim 7, wherein the debugging parameters include memory information, register information, stack information or breakpoint information of the server.
PCT/CN2014/073627 2013-09-10 2014-03-18 Method and apparatus for performing assembly-level dynamic debugging of ios system WO2015035761A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310406837.1A CN103473173B (en) 2013-09-10 2013-09-10 A kind of method and device iOS system being carried out to assembly level dynamic debugging
CN201310406837.1 2013-09-10

Publications (1)

Publication Number Publication Date
WO2015035761A1 true WO2015035761A1 (en) 2015-03-19

Family

ID=49798037

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2014/073627 WO2015035761A1 (en) 2013-09-10 2014-03-18 Method and apparatus for performing assembly-level dynamic debugging of ios system

Country Status (2)

Country Link
CN (1) CN103473173B (en)
WO (1) WO2015035761A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436787A (en) * 2017-07-31 2017-12-05 腾讯科技(深圳)有限公司 Method for processing resource, device, storage medium and electronic installation

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103473173B (en) * 2013-09-10 2016-03-09 成都品果科技有限公司 A kind of method and device iOS system being carried out to assembly level dynamic debugging
CN107656870A (en) * 2017-09-27 2018-02-02 四川久远银海软件股份有限公司 Using adjustment method and device
CN108667902B (en) * 2018-04-04 2021-08-10 创新先进技术有限公司 Remote control system, method, device and equipment of iOS equipment
CN109254923A (en) * 2018-09-19 2019-01-22 北京酷我科技有限公司 A method of it is debugged using interior UI

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564136A (en) * 2004-04-02 2005-01-12 清华大学 Realizing method of cross regulator based on EJTAG components of targeting machine
CN101046766A (en) * 2006-04-24 2007-10-03 华为技术有限公司 Debugging method and device for telecommunication service development based on model drive
CN103164643A (en) * 2011-12-08 2013-06-19 北京深思洛克软件技术股份有限公司 Method and device using hardware to debug
CN103473173A (en) * 2013-09-10 2013-12-25 成都品果科技有限公司 Method and device for performing assembly-level dynamic debugging of iOS system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155330A1 (en) * 2006-11-27 2008-06-26 Sourcecode Technology Holding, Inc. Methods and apparatus for debugging a workflow process
CN101414278B (en) * 2008-12-01 2010-09-15 浙大网新科技股份有限公司 Method for debugging binary application program based on dynamic inverse compiling technique
US8171346B2 (en) * 2010-03-10 2012-05-01 Microsoft Corporation Client session based debugging
CN102541727B (en) * 2010-12-17 2015-07-08 无锡江南计算技术研究所 Program debugging method and system
CN102495776B (en) * 2011-12-02 2013-07-24 浪潮集团有限公司 Method for debugging basic input output system (BIOS) of storage controller applicable to cloud storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1564136A (en) * 2004-04-02 2005-01-12 清华大学 Realizing method of cross regulator based on EJTAG components of targeting machine
CN101046766A (en) * 2006-04-24 2007-10-03 华为技术有限公司 Debugging method and device for telecommunication service development based on model drive
CN103164643A (en) * 2011-12-08 2013-06-19 北京深思洛克软件技术股份有限公司 Method and device using hardware to debug
CN103473173A (en) * 2013-09-10 2013-12-25 成都品果科技有限公司 Method and device for performing assembly-level dynamic debugging of iOS system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436787A (en) * 2017-07-31 2017-12-05 腾讯科技(深圳)有限公司 Method for processing resource, device, storage medium and electronic installation

Also Published As

Publication number Publication date
CN103473173A (en) 2013-12-25
CN103473173B (en) 2016-03-09

Similar Documents

Publication Publication Date Title
WO2015035761A1 (en) Method and apparatus for performing assembly-level dynamic debugging of ios system
CN101957793B (en) Android and android derivative system-oriented method for playing back software operation record
WO2014015573A1 (en) Wireless automation test apparatus and method for mobile device
WO2019072110A1 (en) Method for generating application program, apparatus, system, device, and medium
CN106325876B (en) Method, the system of a kind of programming of inline graphicsization and control embedded device
CN104978194A (en) Web page front-end development method and apparatus
CN204759403U (en) System based on data pass realization equipment internal module thoroughly and upgrade
CN105446933B (en) The debugging system and adjustment method of multi-core processor
WO2014101736A1 (en) Programming auxiliary system of programmable controller and method thereof
CN103019941B (en) program debugging method and device
CN103268289B (en) Record the method and system of application testing script on mobile terminals
CN104468260A (en) Recognition method, device and system for mobile terminal device
Huang et al. Remote mobile test system: a mobile phone cloud for application testing
KR100988597B1 (en) Robot content authoring system having user Friendly form in web environments
CN105607998A (en) System and method for performing embedded software debug online
CN103729221A (en) Method and device for writing BIOS debugging information into hard disk
CN104636251A (en) Testing method and system for compatibility of multiple browsers
CN105141484A (en) Android equipment remote debugging method based on cloud server
CN113709243B (en) Equipment remote control method and device, electronic equipment and storage medium
TW201715398A (en) Method and system for filtering system information in an operating system for enhancing the efficiency in searching for a system log in the operation system
CN104391703A (en) Quick page layout completing device and method
TW200805161A (en) Intelligent platform management interface firmware architecture and method of building the same
CN103595742A (en) A method and an apparatus for debugging webpage CSS
CN106878333B (en) A kind of third party authentication method, device and application system server
WO2018010385A1 (en) Method and system for processing multi-system screenshot files

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14844788

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC , EPO FORM 1205A DATED 14-07-16

122 Ep: pct application non-entry in european phase

Ref document number: 14844788

Country of ref document: EP

Kind code of ref document: A1