Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
bfinject — 适用于 iOS 11.0 - 11.1.2 的 Dylib 注入,兼容 LiberiOS 和 Electra 越狱 | Kitploit
工具/GitHubGitHub/bishopfox/bfinject
动态分析 (沙盒)iOS安全漏洞利用移动应用渗透测试渗透测试二进制分析iOS安全 分类第 15 名
GitHubbishopfox/bfinject

bfinject

适用于 iOS 11.0 - 11.1.2 的 Dylib 注入,兼容 LiberiOS 和 Electra 越狱

查看仓库
641150218年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

bfinject

适用于已越狱 64 位 iOS 11.0 - 11.1.2 的简易 dylib 注入工具。兼容 Electra 和 LiberiOS 越狱。

bfinject 可将任意 dylib 注入正在运行的 App Store 应用。它内置了解密 App Store 应用的支持,并捆绑了 iSpy 和 Cycript。

bfinject 是一个封装工具,负责在使用 bfinject4realz 注入之前正确地对你的 dylib 进行代码签名。它完全独立运行,不依赖 jailbreakd、QiLin 或任何类似的东西。开箱即用。

注意:如果在 Electra 上启用了 "Tweaks",bfinject 将无法工作。请重启并重新运行不带 tweaks 的 Electra 以使用 bfinject。如果你看到与 "thread_create" 相关的错误,那就是这个问题。

注意:bfdecrypt 可在此处作为独立 dylib 获取:https://github.com/BishopFox/bfdecrypt/

导航

  • Electra 环境搭建
  • LiberiOS 环境搭建
  • 使用 bfinject
  • 测试 bfinject
  • 解密 App Store 应用
  • Cycript
  • 工作原理
  • 已知问题
  • 致谢

Electra 环境搭建

  • 使用 Electra >= b7 越狱你的 iOS 11.0 - 11.1.2 设备
  • 将 bfinject 压缩包 https://github.com/BishopFox/bfinject/raw/master/bfinject.tar 复制到你的越狱设备上。你可能需要先将其复制到你的笔记本电脑上,因为 Github 强制使用 SSL,而 Electra 版本的 wget 不支持 SSL。
ssh root@your-device-ip # (密码是 'alpine')
mkdir bfinject
cd bfinject
wget http://<your_server>/bfinject.tar
tar xvf bfinject.tar

LiberiOS 环境搭建

  • 使用 LiberiOS >= 11.0.3 越狱你的 iOS 11.0 - 11.1.2 设备
  • 将 bfinject 压缩包 https://github.com/BishopFox/bfinject/raw/master/bfinject.tar 复制到你的越狱设备上。你可能需要先将其复制到你的笔记本电脑上,因为 Github 强制使用 SSL,而 LiberiOS 版本的 wget 不支持 SSL。
ssh root@your-device-ip # (密码是 'alpine')
export PATH=$PATH:/jb/usr/bin:/jb/bin:/jb/sbin:/jb/usr/sbin:/jb/usr/local/bin:
cd /jb
mkdir bfinject
cd bfinject
wget http://<your_server>/bfinject.tar
tar xvf bfinject.tar

使用 bfinject

  • 启动你要注入共享库的目标应用
  • 输入 bash bfinject 查看帮助
  • 注意:在命令前加上 bash 前缀很重要,否则无法工作。沙盒等等原因。
-bash-3.2# bash bfinject
Syntax: bfinject [-p PID | -P appname] [-l /path/to/yourdylib | -L feature]

For example:
   bfinject -P Reddit.app -l /path/to/evil.dylib   # Injects evil.dylib into the Reddit app
     or
   bfinject -p 1234 -L cycript                     # Inject Cycript into PID
     or
   bfinject -p 4566 -l /path/to/evil.dylib         # Injects the .dylib of your choice into PID

Instead of specifying the PID with -p, bfinject can search for the correct PID based on the app name.
Just enter "-P identifier" where "identifier" is a string unique to your app, e.g. "fing.app".

Available features:
  cycript    - Inject and run Cycript
  decrypt    - Create a decrypted copy of the target app
  test       - Inject a simple .dylib to make an entry in the console log
  ispy       - Inject iSpy. Browse to http://<DEVICE_IP>:31337/

简单测试

在进行更复杂的操作之前,先测试一下它是否能正常工作。bfinject 内置了自测功能。以下是以 Reddit 应用为目标的示例:

Cs-iPhone:~ root# bash bfinject -P Reddit -L test
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/55C94FAA-A282-4FDC-967D-6A012D01087E/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 486.
[bfinject4realz] Calling thread_create() on PID 486
[bfinject4realz] Looking for ROP gadget... found at 0x1019a2ba0
[bfinject4realz] Fake stack frame at 0x12ac5c000
[bfinject4realz] Calling _pthread_set_self() at 0x182bfb814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1829bb460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c016e1c0
[+] So long and thanks for all the fish.

在设备屏幕上你应该会看到:

如果没有,说明出了问题 ;)

解密 App Store 应用

以下是在 Electra 越狱的 iPhone 上解密 Reddit 应用的示例:

Cs-iPhone:~ root# bash bfinject -P Reddit -L decrypt
[+] Electra detected.
[+] Injecting into '/var/containers/Bundle/Application/BCEBDD64-6738-45CE-9B3C-C6F933EA0793/Reddit.app/Reddit'
[+] Getting Team ID from target application...
[+] Thinning dylib into non-fat arm64 image
[+] Signing injectable .dylib with Team ID 2TDUX39LX8 and platform entitlements...
[bfinject4realz] Calling task_for_pid() for PID 3218.
[bfinject4realz] Calling thread_create() on PID 3218
[bfinject4realz] Looking for ROP gadget... found at 0x1016a5110
[bfinject4realz] Fake stack frame at 0x10a06c000
[bfinject4realz] Calling _pthread_set_self() at 0x181303814...
[bfinject4realz] Returned from '_pthread_set_self'
[bfinject4realz] Calling dlopen() at 0x1810c3460...
[bfinject4realz] Returned from 'dlopen'
[bfinject4realz] Success! Library was loaded at 0x1c03e1100
[+] So long and thanks for all the fish.

你会在设备上看到这个画面:

完成后,系统会弹出一个 UI 提示框,询问你是否要启动一个服务,以便从该服务下载解密后的 IPA:

如果你点击 Yes,将在设备的 31336 端口上启动一个服务。连接到该服务后,你将会收到一份原始的 IPA 副本,可以使用 netcat 下载,如下所示:

carl@calisto-3 /tmp $ nc 192.168.1.33 31336 > decrypted.ipa
carl@calisto-3 /tmp $ ls -l decrypted.ipa
-rw-r--r--  1 carl  wheel  14649063 Jan 25 16:57 decrypted.ipa
carl@calisto-3 /tmp $ file decrypted.ipa
decrypted.ipa: iOS App Zip archive data, at least v2.0 to extract

或者,查看设备的控制台日志,它会告诉你解密后的 IPA 存储在哪里。例如:

[dumpdecrypted] Wrote /var/mobile/Containers/Data/Application/6E6A5887-8B58-4FC5-A2F3-7870EDB5E8D1/Documents/decrypted-app.ipa

你也可以像这样在文件系统中搜索 IPA:

find /var/mobile/Containers/Data/Application/ -name decrypted-app.ipa

可以使用 netcat 将 .ipa 从设备中取出。在你的笔记本电脑上设置一个监听服务:

ncat -l 0.0.0.0 12345 > decrypted.ipa

然后在越狱设备上:

cat /path/to/decrypted.ipa > /dev/tcp/<IP_OF_YOUR_COMPUTER>/12345

这个 .ipa 将是 App Store 原始 .ipa 的克隆,区别在于主二进制文件及其所有附带的框架和共享库都将被解密。在每个之前加密的文件中,CRYPTID 标志将为 0。你可以获取该 .ipa,解压应用,按需修改,使用你自己的开发者证书重新签名,然后根据需要将其部署到非越狱设备上。

Cycript

bfinject 的功能之一是整合常见的渗透测试工具,例如 Cycript。随着时间推移,将加入更多工具。要使用 Cycript,你需要在你的 MacBook 上安装 Cycript 命令行客户端 (http://www.cycript.org/)。然后,一旦 bfinject 安装到你的测试设备上,可以像下面这个示例一样操作,我们将 Cycript 注入 Reddit 应用:

下载工具