首页
社区
课程
招聘
[推荐]gikdbg系列教程3.2-调试动态库tweak
发表于: 2014-5-21 14:11 7144

[推荐]gikdbg系列教程3.2-调试动态库tweak

2014-5-21 14:11
7144
PS:实在抱歉,插入图片太累了,只复制了文字,看图片的访问 http://gikir.com/blog/?p=75

void usage(void) {

printf(“原创文章,欢迎转载和引用,不过请附上原始链接( http://gikir.com/blog/?p=75 )和本申明,否则嘛,哼哼…\n”);

}

本篇文章我们将介绍如何使用gikdbg调试动态库(tweak), 此处我们以注入到每一个调试进程的辅助动态库gikir_iserver_injecter.dylib为例进行Step by step的操作与解释以及一些注意事项的说明。

Step 0.前置说明

手机端:iPhone 5,iOS 7.0.4,gikir_iserver v1.1.build140520.1;

PC端:ParallelDesktop虚拟机,Windows 8.0,gikdbg v1.1.build140520.1;

Step 1.连接设备

手机端点击gikir_iserver的图标运行服务程序,PC端执行iDebug/Device/Login (USB)菜单,得到如下输出说明连接成功:

app-connect

如果在这一步出现无法连接的情况请逐一检查:

1) 是否有之前遗留的lldb.exe进程,手工杀掉然后重启gikdbg并连接;

2) 是否gikir_iserver使用的6080端口被之前遗留的gikir_iserver_root或者/bin/sh进程占用,手工杀掉或者重启设备然后重启gikir_iserver;

3) 是否有使用Apple USB驱动服务的其他程序与gikdbg冲突,手工杀掉这类程序然后重启gikdbg并连接。

连接成功后,我们通过iDebug/Option/Debugger选择GDB模式,调试动态库只能使用该模式。因为LLDB模式下在调用指定函数时会禁止所有断点,导致断点无法击中我们指定的函数,也就无法调试了。

Step 2.选择宿主

为了调试动态库,我们需要先运行一个宿主,此处我们以如下图所示的可执行程序为例,实际调试tweak过程中我们以目标App为宿主:

dylib-proglist

双击或者点击Open之后一路点击确定,进入CPU主窗口。

Step 3.上传动态库

在PC端有我们开发好的动态库gikir_iserver_injecter.dylib,我们在iShell中通过$upload /var/tmp/gikdbg_tweak.dylib命令将选择本地动态库上传至/var/tmp目录下,名称按照实际需求定,本例为gikdbg_tweak.dylib。

dylib-upload

Step 4.注入动态库

执行iDebug/View/Module得到模块列表窗口,右键选择Inject dylib:

dylib-inject

点击Ok之后如果注入成功得到如下的模块列表:

dylib-newmodlist

如果注入失败在iShell执行如下命令:call (char *)dlerror()查看具体的信息然后解决之后继续尝试。

Step 5.调试动态库

注入成功后,在模块列表双击到CPU主窗口,查找到我们需要调试的函数,此处为:

dylib-debugee

确保当前选中行在需要调试的函数区间内,执行鼠标右键Invoke菜单或者CTRL+I快捷键如下:

dylib-invoke

这个时候我们可以输入该函数的前四个参数,可以是数值(地址),也可以是字符串,比如:

dylib-invokeparam

点击Ok之后就可以调试该函数了:

dylib-debugging

可以看到参数r0-r3正好是我们输入的参数,剩下的调试过程与调试控制台一样。如果需要输入更多参数只需要将(0,0,0,0)改成(0,0,0,…,0)即可!

实际调试tweak的过程与之类似:

1. 开发tweak并通过$upload命令上传到设备;

2. Attach目标App;

3. 在模块列表执行Inject dylib;

4. 在注入的模块中找到需要调试的函数执行右键Invoke菜单。

其他更多的细节,可以前往 http://gikir.com/product.php 下载使用。在使用gikdbg的过程中有任何改进意见和Bug,欢迎反馈给我们以帮助我们将他开发得更加完善。

下一篇文章(gikdbg系列教程3.3调试App)我们将详细介绍如何使用gikdbg调试App程序,敬请关注 http://gikir.com/

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
2
关注...
2014-5-21 14:20
0
雪    币: 211
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
no pic ,too hard
2014-6-9 12:02
0
雪    币: 215
活跃值: (51)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
very thx Android反编译第一款软件吗? 除了IDA~
2014-8-26 15:54
0
游客
登录 | 注册 方可回帖
返回
//