首页
社区
课程
招聘
[原创]iOS版本QBDI编译指南
发表于: 2025-9-22 12:47 4778

[原创]iOS版本QBDI编译指南

2025-9-22 12:47
4778

在iOS上用过frida stalker的都知道,稍稍复杂一点的情况就经常噶,通常只能trace几百行到几万行之间,非常不稳定,如果使用lldb trace可能有反调试问题,那么有没有一款trace工具能像frida一样简单使用呢, 那就是 QBDI

关于QBDI已经有很多帖子详细介绍了,这里就不班门弄斧了。
dd7K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6c8b7V1c8u0i4K6u0r3f1f1u0p5d9b7`.`. 的README中虽然写了支持IOS,但实际上只是在早期的几个版本支持arm版本,aarch64是不支持的,作者似乎也没有添加支持的打算, 网上也没有现成的
既然不会造轮子,那就只能修轮子了 :(

这里用的是m1笔记本,先克隆到本地
图片描述

cmake -DQBDI_PLATFORM=ios -DQBDI_ARCH=AARCH64 ..

第一个错误意思很明显,去对应的CMakelists取消掉注释就行,
图片描述
图片描述
至于ios_AARCH64.s文件,可以将arm版本的修改成aarch64版本的就行,比如这样
图片描述
第二个错误,操作也一样,将arm版本改成对应aarch64版本就行
图片描述
最终cmake成功,然而这只是解决了最简单的问题,这才刚刚开始..
图片描述

几分钟后,下一个错误出现了, 解决这个问题需要在主CMakelists将 set(CMAKE_ASM_FLAGS "-arch ${ARM_ARCH}")修改为 set(CMAKE_ASM_FLAGS "-arch arm64}"),这里就不考虑arm版本了
图片描述

接着make又出现一个错误,这里只需要取其他路径复制一份头文件过来就行
图片描述
下一个LLVM语法错误,这个错误只需要改成llvm::sys::Process::getPageSize().get()就行,并将block.size()改成block.allocatedSize()
图片描述
最后一个链接问题,这里需要修改 src/Utility/CMakeLists.txtelseif(QBDI_PLATFORM_OSX)改为elseif(QBDI_PLATFORM_OSX OR QBDI_PLATFORM_IOS)
图片描述
看到这里似乎编译成功了,实际上没成功,这还是osx版本:(
图片描述

第二次会出现很多看不懂的编译错误,这里简要说明

为什么还会是osx版本,因为没有指定 CMAKE_OSX_SYSROOT 为iPhoneOS.platform, 实际上编译用的仍然是MacOSX.platform, 需要修改CMakelists文件,添加对应路径为xcrun -sdk iphoneos -show-sdk-path指定的路径


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

最后于 2025-9-22 13:34 被just赋予编辑 ,原因:
收藏
免费 108
支持
分享
打赏 + 1.00雪花
打赏次数 1 雪花 + 1.00
 
赞赏  mb_ipadxgzl   +1.00 2025/11/08 感谢分享~
最新回复 (88)
雪    币: 144
活跃值: (2063)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
66666
2025-9-22 13:04
0
雪    币: 8747
活跃值: (6542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2025-9-22 13:20
0
雪    币: 153
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
6666
2025-9-22 14:15
0
雪    币: 23
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
6
2025-9-22 15:09
0
雪    币: 228
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
666
2025-9-22 15:45
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
1
2025-9-22 16:41
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
6666
2025-9-22 16:50
0
雪    币: 7
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
感谢分享
2025-9-22 17:50
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
666666
2025-9-22 20:37
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
6666
2025-9-23 09:41
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
stalker 二改 ,也很稳定得
2025-9-23 09:44
0
雪    币: 105
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
2025-9-23 10:17
0
雪    币: 1298
活跃值: (2272)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
我来看看
2025-9-23 10:23
0
雪    币: 4327
活跃值: (3555)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
15
支持下
2025-9-23 10:25
0
雪    币: 2707
活跃值: (5520)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
16

我当时读了好几天才知道llvm-tblgen 是什么东西,要提前编译, android上面就很奇怪, 我确实看到生成了 android arm64的 tbgen 和 那个叫min-tbgen的东西

最后于 2025-9-23 11:52 被zhuzhu_biu编辑 ,原因:
2025-9-23 11:51
0
雪    币: 1006
活跃值: (908)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
棕熊 支持下
大佬,就等你开源了
2025-9-23 12:13
0
雪    币: 2489
活跃值: (4802)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
666
2025-9-23 12:22
0
雪    币: 9822
活跃值: (8626)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
wx_插曲 stalker 二改 ,也很稳定得
饼哥号
2025-9-23 14:14
0
雪    币: 10
活跃值: (887)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
777- 111
2025-9-23 16:06
0
雪    币: 4327
活跃值: (3555)
能力值: ( LV12,RANK:220 )
在线值:
发帖
回帖
粉丝
21
just赋予 大佬,就等你开源了
嘿嘿 先不开呢 让我自己把玩几天
2025-9-23 17:07
0
雪    币: 230
活跃值: (1536)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
1
2025-9-24 08:42
0
雪    币: 204
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
mb_aoooaosd 饼哥号
树哥好
2025-9-24 09:29
0
雪    币: 268
活跃值: (1328)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
11
2025-9-24 10:03
0
雪    币: 6208
活跃值: (5990)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
66
2025-9-24 10:09
1
游客
登录 | 注册 方可回帖
返回