CN103473173A - 一种对iOS系统进行汇编级动态调试的方法及装置 - Google Patents

一种对iOS系统进行汇编级动态调试的方法及装置 Download PDF

Info

Publication number
CN103473173A
CN103473173A CN2013104068371A CN201310406837A CN103473173A CN 103473173 A CN103473173 A CN 103473173A CN 2013104068371 A CN2013104068371 A CN 2013104068371A CN 201310406837 A CN201310406837 A CN 201310406837A CN 103473173 A CN103473173 A CN 103473173A
Authority
CN
China
Prior art keywords
module
debugging
parameter
server end
document transmission
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN2013104068371A
Other languages
English (en)
Other versions
CN103473173B (zh
Inventor
徐滢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Pinguo Technology Co Ltd
Original Assignee
Chengdu Pinguo Technology Co Ltd
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 Chengdu Pinguo Technology Co Ltd filed Critical Chengdu Pinguo Technology Co Ltd
Priority to CN201310406837.1A priority Critical patent/CN103473173B/zh
Publication of CN103473173A publication Critical patent/CN103473173A/zh
Priority to PCT/CN2014/073627 priority patent/WO2015035761A1/zh
Application granted granted Critical
Publication of CN103473173B publication Critical patent/CN103473173B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种对iOS系统进行汇编级动态调试的方法及装置,涉及iOS系统程序调试技术。本发明旨在提供一种更加便捷的对iOS系统进行汇编级动态调试的方法及对应的装置。技术要点:在客户端安装调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;在服务器端安装调试模块及服务器端参数与文件传输模块;在客户端与服务器端之间建立物理信号连接;所述客户端的操作系统为Windows系统,所述服务器端的操作系统为iOS系统;客户端实现对服务器端的代理分析及远程调试。

Description

一种对iOS系统进行汇编级动态调试的方法及装置
技术领域
本发明涉及iOS系统程序调试技术,尤其是一种对iOS系统进行汇编级动态调试的方法及对应的装置。
背景技术
目前使用比较广泛的汇编级调试器有OllyDbg、GDB、WinDgb、IDAPro、Hopper Disassembler等,其中OllyDbg、WinDdb是Windows平台非常优秀的调试器,但是它们仅限于Windows平台,而GDB虽然支持众多平台(包括iOS),但是其主要用于源码级调试,使用其进行汇编级的调试很不方便。IDAPro,Hopper Disassembler支持非常出色的静态分析,但是不支持iOS的汇编级动态调试。
然而,iOS是目前主流的移动终端操作系统之一,应用程序数量巨大,如果能在比较低层的角度上对系统、对软件进行研究,可极大的促进该平台上软件安全,软件调试等相关活动的开展。
发明内容
本发明所要解决的技术问题是:针对上述存在的问题,提供一种更加便捷的对iOS系统进行汇编级动态调试的方法及对应的装置。
本发明提供了一种对iOS系统进行汇编级动态调试的方法,包括:
步骤1:
在客户端安装调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;
在服务器端安装调试模块及服务器端参数与文件传输模块;
在客户端与服务器端之间建立物理信号连接;
所述客户端的操作系统为Windows系统,所述服务器端的操作系统为iOS系统;
步骤2:
客户端利用调试指令传输模块将iOS系统的调试指令传输给服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块再将所述调试指令传输给调试模块;
所述调试模块根据调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件传输模块,或者所述调试模块根据调试指令将已编译为机器指令的程序文件传输给所述服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块将所述调试参数或/和程序文件传输给客户端参数与文件传输模块;
步骤3:反汇编模块将所述程序文件转换为汇编程序文件,汇编程序注释模块对所述汇编程序文件进行注释;
步骤4:在所述调试界面模块上显示注释后的汇编程序文件以及所述调试参数。
优选地,所述调试指令传输模块为PuTTY软件;所述反汇编模块为Otool软件;所述汇编程序注释模块为Class-Dump-z软件;所述客户端参数与文件传输模块为OpenSSH软件;所述调试界面模块为OllyDbg调试软件的显示界面。
优选地,所述调试模块为GDB调试软件;所述服务器端参数与文件传输模块为OpenSSH软件。
优选地,所述调试参数包括服务器端的内存信息、寄存器信息、堆栈信息或断点信息。
本发明还提供了一种与前述方法对应的对iOS系统进行汇编级动态调试的装置,包括:
客户端及服务器端;客户端与服务器端具有物理信号连接;
所述客户端上安装有调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;
服务器端上安装调试模块及服务器端参数与文件传输模块;
所述客户端的操作系统为Windows系统,所述服务器端的操作系统为iOS系统;
所述调试指令传输模块,用于将iOS系统调试指令传输给服务器端参数与文件传输模块;
所述客户端参数与文件传输模块,用于接收服务器端参数与文件传输模块输出的调试参数和/或程序文件;
所述反汇编模块,用于将客户端参数与文件传输模块接收的所述程序文件转换为汇编程序文件;
所述汇编程序注释模块,用于对所述汇编程序文件进行注释;
所述调试界面模块,用于显示注释后的汇编程序文件以及所述调试参数;
所述调试模块,用于根据所述调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件传输模块,以及用于根据调试指令将已编译为机器指令的程序文件传输给所述服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块,用于将从所述调试指令传输模块接收到的所述调试指令传输给调试模块;以及用于将从所述调试模块接收到的调试参数和/或所述程序文件传输给所述客户端参数与文件传输模块。
综上所述,由于采用了上述技术方案,本发明的有益效果是:
1、本发明利用PuTTY及OpenSSH搭建了一个C/S架构的调试框架,解决了客户端与服务器端在调试过程中的通信问题,使远程调试成为可能。
2、本发明将本地客户端代码分析和远程服务器端调试结合,将服务器端的机器指令程序文件放在本地客户端进行汇编化及注释,并结合调试参数进行同步更新,避免服务器端的GDB进行汇编级调试,有效节省了GDB调试器进行汇编级调试的时间,因而提供了一种便捷、快速iOS系统汇编级调试方法。
3、本发明除了可以实现远程调试,还可以扩展远程设备管理的功能,且部署难度相对较小,充分利用了iOS系统本身强大的应用程序执行能力。
附图说明
本发明将通过例子并参照附图的方式说明,其中:
图1为本发明原理框图。
具体实施方式
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明提供了一种与前述方法对应的对iOS系统进行汇编级动态调试的实现方法。如图1,包括:客户端及服务器端;客户端与服务器端首先需要建立物理信号连接。其中客户端为运行Windows操作系统的计算机,服务器端为运行iOS操作系统的计算机。
所述客户端上安装有调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;服务器端上安装调试模块及服务器端参数与文件传输模块。
调试指令传输模块、客户端参数与文件传输模块及服务器端参数与文件传输模块搭建了C/S(客户端/服务器端)架构,解决了远程调试的通信问题。
其中,调试指令传输模块用于将iOS系统调试指令传输给服务器端参数与文件传输模块;客户端参数与文件传输模块用于接收服务器端参数与文件传输模块输出的调试参数和/或程序文件;而服务器端参数与文件传输模块用于将从所述调试指令传输模块接收到的所述调试指令传输给调试模块以及将从所述调试模块接收到的调试参数和/或所述程序文件传输给所述客户端参数与文件传输模块。
本发明的一个具体实施方式是利用PuTTY软件作为调试指令传输模块,利用OpenSSH作为客户端及服务器端的参数与文件传输模块。本领域技术人员都知晓PuTTY软件为串行接口连接软件,OpenSSH软件用于实现远程控制、传输文件。
本发明的另一个具体实施例中,所述调试模块由GDB调试软件实现,用于对iOS服务器端上的软件进行调试,根据读取调试参数的调试指令提取软件运行的调试参数,例如内存信息、寄存器信息、堆栈信息以及断点信息等参数,并将所述调试参数传输给所述服务器端参数与文件传输模块,以及用于根据返回程序文件的调试指令将已编译为机器指令的程序文件传输给所述服务器端参数与文件传输模块。本发明中,位于iOS服务器端的GDB软件并不进行反汇编等静态分析,因为这部分静态分析由GDB来执行的话将十分耗时,本发明中的GDB只是将程序文件编译为机器指令然后传输给客户端,由客户端进行静态分析。
这里,GDB软件与OpenSSH软件之间的数据传输由更底层的命令完成,这属于本领域现有的技术,在此不赘述其详细的数据传输步骤。
服务器端参数与文件传输模块将所述调试参数和/或所述程序文件传输给所述客户端参数与文件传输模块。
客户端参数与文件传输模块将接收到的调试参数传输给调试界面模块,调试界面模块优选为人机界面良好的OllyDbg调试软件的界面部分来实现。具体做法是,开发OllyDbg插件将调试参数按照一定的格式进行转换,例如转换为OllyDbg界面常用的布局形式,然后在OllyDbg的UI界面中展示。当然本领域技术人员也可不将调试参数进行格式转换直接在UI界面中展示,或者转换为更加直观便捷的格式展示在UI界面中。开发OllyDbg插件将调试参数按照一定的格式进行转换也是本领域技术人员不经创造性劳动即可完成的,在此不对其过程进行赘述。工作人员根据界面显示的动态调试参数,完成程序调试的动态分析。
当客户端接收到已被编译为机器指令的程序文件后,反汇编模块,可以由Otool软件实现,将被编译为机器指令的程序文件转换为汇编程序文件。之后,再由汇编程序注释模块,优选的由Class-Dump-Z软件实现,对汇编程序文件进行注释,最后将注释后的汇编程序文件传输给所述的调试界面模块进行显示,完成程序的静态分析。
同样的,OpenSSH软件、Otool软件、Class-Dump-Z软件以及OllyDbg软件之间的数据传输也有更加底层的命令实现,为现有技术。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。

Claims (8)

1.一种对iOS系统进行汇编级动态调试的方法,其特征在于,包括:
步骤1:
在客户端安装调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;
在服务器端安装调试模块及服务器端参数与文件传输模块;
在客户端与服务器端之间建立物理信号连接;
所述客户端的操作系统为Windows系统,所述服务器端的操作系统为iOS系统;
步骤2:
客户端利用调试指令传输模块将iOS系统的调试指令传输给服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块再将所述调试指令传输给调试模块;
所述调试模块根据调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件传输模块,或者所述调试模块根据调试指令将已编译为机器指令的程序文件传输给所述服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块将所述调试参数或/和程序文件传输给客户端参数与文件传输模块;
步骤3:反汇编模块将所述程序文件转换为汇编程序文件,汇编程序注释模块对所述汇编程序文件进行注释;
步骤4:在所述调试界面模块上显示注释后的汇编程序文件以及所述调试参数。
2.根据权利要求1所述的一种对iOS系统进行汇编级动态调试的方法,其特征在于,所述调试指令传输模块为PuTTY软件;所述反汇编模块为Otool软件;所述汇编程序注释模块为Class-Dump-z软件;所述客户端参数与文件传输模块为OpenSSH软件;所述调试界面模块为OllyDbg调试软件的显示界面。
3.根据权利要求2所述的一种对iOS系统进行汇编级动态调试的方法,其特征在于,所述调试模块为GDB调试软件;所述服务器端参数与文件传输模块为OpenSSH软件。
4.根据权利要求3所述的一种对iOS系统进行汇编级动态调试的方法,其特征在于,所述调试参数包括服务器端的内存信息、寄存器信息、堆栈信息或断点信息。
5.一种对iOS系统进行汇编级动态调试的装置,其特征在于,包括:
客户端及服务器端;客户端与服务器端具有物理信号连接;
所述客户端上安装有调试指令传输模块、反汇编模块、汇编程序注释模块、客户端参数与文件传输模块及调试界面模块;
服务器端上安装调试模块及服务器端参数与文件传输模块;
所述客户端的操作系统为Windows系统,所述服务器端的操作系统为iOS系统;
所述调试指令传输模块,用于将iOS系统调试指令传输给服务器端参数与文件传输模块;
所述客户端参数与文件传输模块,用于接收服务器端参数与文件传输模块输出的调试参数和/或程序文件;
所述反汇编模块,用于将客户端参数与文件传输模块接收的所述程序文件转换为汇编程序文件;
所述汇编程序注释模块,用于对所述汇编程序文件进行注释;
所述调试界面模块,用于显示注释后的汇编程序文件以及所述调试参数;
所述调试模块,用于根据所述调试指令反馈调试参数并将所述调试参数传输给所述服务器端参数与文件传输模块,以及用于根据调试指令将已编译为机器指令的程序文件传输给所述服务器端参数与文件传输模块;
所述服务器端参数与文件传输模块,用于将从所述调试指令传输模块接收到的所述调试指令传输给调试模块;以及用于将从所述调试模块接收到的调试参数和/或所述程序文件传输给所述客户端参数与文件传输模块。
6.根据权利要求5所述的一种对iOS系统进行汇编级动态调试的装置,其特征在于,所述调试指令传输模块为PuTTY软件;所述反汇编模块为Otool软件;所述汇编程序注释模块为Class-Dump-z软件;所述客户端参数与文件传输模块为OpenSSH软件;所述调试界面模块为OllyDbg调试软件的显示界面。
7.根据权利要求6所述的一种对iOS系统进行汇编级动态调试的装置,其特征在于,所述调试模块为GDB调试软件;所述服务器端参数与文件传输模块为OpenSSH软件。
8.根据权利要求7所述的一种对iOS系统进行汇编级动态调试的装置,其特征在于,所述调试参数包括服务器端的内存信息、寄存器信息、堆栈信息或断点信息。
CN201310406837.1A 2013-09-10 2013-09-10 一种对iOS系统进行汇编级动态调试的方法及装置 Active CN103473173B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310406837.1A CN103473173B (zh) 2013-09-10 2013-09-10 一种对iOS系统进行汇编级动态调试的方法及装置
PCT/CN2014/073627 WO2015035761A1 (zh) 2013-09-10 2014-03-18 一种对iOS系统进行汇编级动态调试的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310406837.1A CN103473173B (zh) 2013-09-10 2013-09-10 一种对iOS系统进行汇编级动态调试的方法及装置

Publications (2)

Publication Number Publication Date
CN103473173A true CN103473173A (zh) 2013-12-25
CN103473173B CN103473173B (zh) 2016-03-09

Family

ID=49798037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310406837.1A Active CN103473173B (zh) 2013-09-10 2013-09-10 一种对iOS系统进行汇编级动态调试的方法及装置

Country Status (2)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015035761A1 (zh) * 2013-09-10 2015-03-19 成都品果科技有限公司 一种对iOS系统进行汇编级动态调试的方法及装置
CN107656870A (zh) * 2017-09-27 2018-02-02 四川久远银海软件股份有限公司 应用调试方法及装置
CN108667902A (zh) * 2018-04-04 2018-10-16 阿里巴巴集团控股有限公司 iOS设备的远程控制系统、方法、装置及设备
CN109254923A (zh) * 2018-09-19 2019-01-22 北京酷我科技有限公司 一种应用内ui调试的方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436787B (zh) * 2017-07-31 2018-05-22 腾讯科技(深圳)有限公司 资源处理方法、装置、存储介质和电子装置

Citations (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
CN101414278A (zh) * 2008-12-01 2009-04-22 浙大网新科技股份有限公司 基于动态反编译技术的二进制应用程序调试方法
US8171346B2 (en) * 2010-03-10 2012-05-01 Microsoft Corporation Client session based debugging
CN102495776A (zh) * 2011-12-02 2012-06-13 浪潮集团有限公司 一种应用于云存储的存储控制器的bios调试方法
CN102541727A (zh) * 2010-12-17 2012-07-04 无锡江南计算技术研究所 一种程序调试方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1312588C (zh) * 2004-04-02 2007-04-25 清华大学 基于目标机上的ejtag部件的交叉调试器实现方法
CN100485636C (zh) * 2006-04-24 2009-05-06 华为技术有限公司 一种基于模型驱动进行电信级业务开发的调试方法及装置
CN103164643B (zh) * 2011-12-08 2017-10-24 北京深思数盾科技股份有限公司 一种通过硬件进行反调试的方法和装置
CN103473173B (zh) * 2013-09-10 2016-03-09 成都品果科技有限公司 一种对iOS系统进行汇编级动态调试的方法及装置

Patent Citations (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
CN101414278A (zh) * 2008-12-01 2009-04-22 浙大网新科技股份有限公司 基于动态反编译技术的二进制应用程序调试方法
US8171346B2 (en) * 2010-03-10 2012-05-01 Microsoft Corporation Client session based debugging
CN102541727A (zh) * 2010-12-17 2012-07-04 无锡江南计算技术研究所 一种程序调试方法及系统
CN102495776A (zh) * 2011-12-02 2012-06-13 浪潮集团有限公司 一种应用于云存储的存储控制器的bios调试方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CH_SOFT: "Class Dump z", 《HTTP://BLOG.CSDN.NET/CH_SOFT/ARTICLE/DETAILS/7896604》, 22 August 2012 (2012-08-22) *
ZHULIANG: "ios平台的应用程序调试与分析", 《HTTP://BBS.PEDIY.COM/SHOWTHREAD.PHP?T=167398》, 2 April 2013 (2013-04-02) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015035761A1 (zh) * 2013-09-10 2015-03-19 成都品果科技有限公司 一种对iOS系统进行汇编级动态调试的方法及装置
CN107656870A (zh) * 2017-09-27 2018-02-02 四川久远银海软件股份有限公司 应用调试方法及装置
CN108667902A (zh) * 2018-04-04 2018-10-16 阿里巴巴集团控股有限公司 iOS设备的远程控制系统、方法、装置及设备
CN108667902B (zh) * 2018-04-04 2021-08-10 创新先进技术有限公司 iOS设备的远程控制系统、方法、装置及设备
CN109254923A (zh) * 2018-09-19 2019-01-22 北京酷我科技有限公司 一种应用内ui调试的方法

Also Published As

Publication number Publication date
CN103473173B (zh) 2016-03-09
WO2015035761A1 (zh) 2015-03-19

Similar Documents

Publication Publication Date Title
CN103473173B (zh) 一种对iOS系统进行汇编级动态调试的方法及装置
CN107506451B (zh) 用于数据交互的异常信息监控方法及装置
CN102609281B (zh) 分布式软件补丁更新方法及系统
CN103744761A (zh) 一种控制多台移动终端自动执行任务的方法及系统
CN104407980A (zh) 移动应用自动化测试装置和方法
CN106155652A (zh) 一种多语言数据文件的生成方法和系统
CN104899027A (zh) 一种实现js通用表单验证的方法
CN103902305A (zh) 基于ti dsp的软件远程加载与固化方法
CN104346274A (zh) 程序调试器及一种程序的调试方法
CN104915262A (zh) 一种基于excel数据结构的校验系统及其方法
CN104268226A (zh) 一种基于浏览器的Word图片拷贝上传控件与方法
CN109672722B (zh) 数据部署方法及装置、计算机存储介质和电子设备
CN102662700B (zh) 一种嵌入式软件版本的发布及升级方法
CN104090948A (zh) 核电站海量数据处理方法、装置及系统
CN102737016A (zh) 基于并行处理的信息文件生成系统及方法
CN102609354A (zh) 一种基于gnu开源软件的c++程序远程调试方法
CN109429260B (zh) 一种北向数据的校验方法及装置
CN106383734A (zh) 一种从代码中提取详细设计的方法
CN104378362A (zh) 用于进行报文接口转换的方法及装置
CN103677919A (zh) 一种基于串口的机载软件更新方法
CN104843031B (zh) 一种轨旁以及车载无线单元的配置方法
CN105045624A (zh) PowerPC主机板及烧写方法
CN102880508A (zh) 一种实现PC操控Android终端的方法及系统
CN105243020A (zh) 一种适用于广域分布式实时数据库的自动化测试方法
CN112394920B (zh) 一种应用软件开发方法、平台和电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 610000 China (Sichuan) free trade test zone, Chengdu high tech Zone, middle section of Tianfu Avenue, 13 floor, 1

Patentee after: Chengdu PinGuo Digital Entertainment Ltd.

Address before: 610000 No. 216 South City Road, Chengdu hi tech Zone, Sichuan

Patentee before: Chengdu PinGuo Digital Entertainment Ltd.