公开/公告号CN103473173A
专利类型发明专利
公开/公告日2013-12-25
原文格式PDF
申请/专利权人 成都品果科技有限公司;
申请/专利号CN201310406837.1
发明设计人 徐滢;
申请日2013-09-10
分类号G06F11/36(20060101);H04L29/08(20060101);
代理机构51214 成都九鼎天元知识产权代理有限公司;
代理人袁春晓
地址 610000 四川省成都市高新区世纪城南路216号
入库时间 2024-02-19 22:05:54
法律状态公告日
法律状态信息
法律状态
2018-04-03
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/36 变更前: 变更后: 申请日:20130910
专利权人的姓名或者名称、地址的变更
2016-03-09
授权
授权
2014-01-22
实质审查的生效 IPC(主分类):G06F11/36 申请日:20130910
实质审查的生效
2013-12-25
公开
公开
技术领域
本发明涉及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软件之间的数据传输也有更加底层的命令实现,为现有技术。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
机译: Ios系统的装配动态调试的方法和装置
机译: 一种对将要通过塑料光纤传输的数字数据进行编码的方法,一种对在两级残码编码器中编码并通过塑料光纤接收的数字信号进行解码的方法,一种塑料光纤对已编码的数字数据进行解码的装置在两级残留编码器中,并通过塑料光纤和集成电路接收
机译: 用于对流体进行生物修饰的装置,用于对生物体内的流体进行生物修饰的装置,为生物提供具有一种或多种肝功能的体外装置,向生物体提供生命的体内装置一种或多种具有肝功能的生物,一种提供具有一种或多种肾功能的生物的体内装置,一种或多种具有肾脏和肝功能的生物的体内装置,为生物提供一种或多种肾功能,对生物进行流体生物学修饰的方法,制备连续平面器官的方法,为生物提供一种或多种肝功能的方法,方法提供具有一种或多种肾脏功能的生物,通过低温技术制备和使用保存的器官微粒的方法和方法提供具有一种或多种肾脏和生命的生物