void usage(void) {
printf(“原创文章,欢迎转载和引用,不过请附上原始链接(http://gikir.com/blog/?p=51)和本申明,否则嘛,哼哼…\n”);
}
本篇文章我们将介绍如何使用gikdbg调试iOS控制台程序,此处的控制台程序分为四类:
1.在PC系统中自己编译的iOS程序;
2.在iOS系统目录(比如/usr/bin)中的程序;
3.在iOS非系统目录中的程序;
4.正在运行的控制台程序。
以下分别介绍如何调试这四类控制台程序,step by step。
1. 调试PC编译的iOS控制台程序
以$(GIKDBG_FOLDER)\ isample\helloworld\helloworld为例。
Step1:开发加载脚本并和helloworld放在同一个目录下面,如下:
$debug exe helloworld
$clear
解释:$debug是gikdbg iShell中的本地自定义命令,参数exe表示调试的是可执行程序,参数helloworld表示本脚本文件所在目录下面的helloworld可执行程序,后面还可以给出控制台的参数,此处不需要;
$clear是gikdbg iShell中的本地自定义命令,表示清空iShell缓存。
Step2:在手机端运行gikir_iserver,在PC端运行gikdbg.exe,并以USB的方式连接手机(参见http://gikir.com/blog/?p=32 进行环境配置);
Step3:登陆成功后按快捷键F3切换至iShell窗口,右键加载step1中的脚本文件,即可打开本次调试会话,剩下的调试过程与ollydbg使用方式相同。
2.调试iOS系统目录中的控制台程序
以/bin/ps为例。
Step1:在手机端运行gikir_iserver,在PC端运行gikdbg.exe,并以USB的方式连接手机(参见http://gikir.com/blog/?p=32 进行环境配置);
Step2:登陆成功后,执行File/Open…主菜单命令,在控制台程序列表中找到/bin/ps,双击或者执行Open按钮;
Step3:在弹出的对话框中输入控制台需要的参数后回车即可进入调试会话,剩下的调试过程与ollydbg使用方式相同:
3.调试iOS非系统目录中的控制台程序
以/Applications/gikir_iserver.app/gdb为例。
Step1:在手机端运行gikir_iserver,在PC端运行gikdbg.exe,并以USB的方式连接手机(参见http://gikir.com/blog/?p=32 进行环境配置);
Step2:登陆成功后,执行File/Open…主菜单命令,在控制台程序列表右键选择OpenEx菜单,然后输入如下参数:
解释:PATH=后面输入该控制台程序的绝对路径,CMDS=后面输入控制台的命令行参数。
Step3:然后一路确定即可进入本次调试会话,剩下的调试过程与ollydbg使用方式相同。
4.调试iOS系统中正在运行的控制台程序
以/Applications/gikir_iserver.app/gdb为例。
Step1.使用PuTTY登陆iOS设备并执行/Applications/gikir_iserver.app/gdb命令:
Step2:在手机端运行gikir_iserver,在PC端运行gikdbg.exe,并以USB的方式连接手机(参见http://gikir.com/blog/?p=32 进行环境配置);
Step3:登陆成功后,执行File/Attach…主菜单命令,在进程列表中找到/Applications/gikir_iserver.app/gdb,双击或者执行Attach按钮即可进入本次调试会话(如果是首次Attach则需要打补丁并且重启程序 ):
其他更多的细节,可以前往http://gikir.com/product.php下载使用。在使用gikdbg的过程中有任何改进意见和Bug,欢迎反馈给我们以帮助我们将他开发得更加完善。
下一篇文章(gikdbg系列教程3.2调试动态库)我们将详细介绍如何使用gikdbg调试动态库程序,敬请关注http://gikir.com/!