首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
iOS安全
发新帖
2
0
[推荐]gikdbg系列教程3.2-调试动态库tweak
发表于: 2014-5-21 14:11
7360
[推荐]gikdbg系列教程3.2-调试动态库tweak
GeekNeo
2
2014-5-21 14:11
7360
PS:实在抱歉,插入图片太累了,只复制了文字,看图片的访问
ff1K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3j5X3I4G2k6#2)9J5c8W2)9K6c8Y4m8Q4x3@1b7%4y4b7`.`.
。
void usage(void) {
printf(“原创文章,欢迎转载和引用,不过请附上原始链接(
7e2K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3j5X3I4G2k6#2)9J5c8W2)9K6c8Y4m8Q4x3@1b7%4y4b7`.`.
)和本申明,否则嘛,哼哼…\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菜单。
其他更多的细节,可以前往
598K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3M7s2u0G2k6s2g2U0N6q4)9J5k6i4m8Z5M7l9`.`.
下载使用。在使用gikdbg的过程中有任何改进意见和Bug,欢迎反馈给我们以帮助我们将他开发得更加完善。
下一篇文章(gikdbg系列教程3.3调试App)我们将详细介绍如何使用gikdbg调试App程序,敬请关注
299K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3N6A6K9$3W2J5i4K6u0W2j5$3!0E0i4K6u0r3
!
[培训]科锐逆向工程师培训第53期2025年7月8日开班!
收藏
・
2
免费
・
0
支持
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
3
)
安于此生
雪 币:
2673
活跃值:
(3560)
能力值:
( LV13,RANK:1760 )
在线值:
发帖
103
回帖
2020
粉丝
209
关注
私信
安于此生
34
2
楼
关注...
2014-5-21 14:20
0
babyrobin
雪 币:
211
活跃值:
(15)
能力值:
( LV2,RANK:10 )
在线值:
发帖
10
回帖
94
粉丝
1
关注
私信
babyrobin
3
楼
no pic ,too hard
2014-6-9 12:02
0
冰冻冷咖啡
雪 币:
215
活跃值:
(51)
能力值:
( LV3,RANK:20 )
在线值:
发帖
3
回帖
66
粉丝
0
关注
私信
冰冻冷咖啡
4
楼
very thx Android反编译第一款软件吗? 除了IDA~
2014-8-26 15:54
0
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
GeekNeo
2
45
发帖
179
回帖
100
RANK
关注
私信
他的文章
[原创]一键砸壳开源插件adcpp-ios-dump
16420
[分享]UVMSE-吊打苹果iOS加密代码,依此类推~
16927
[分享]VMPStudio-UraniumVM采样编辑器用户手册
9885
[分享]UltimateVMP-全平台全架构全模式一站式VMP代码虚拟化
14793
[原创]A64Dbg-手把手教你开启虚拟化上帝模式
23696
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部