给 frida 做了个图形界面,动态分析 iOS 应用

电脑上就插了手机,没其他了

frida-compile: command not found

devzkndeMacBook-Pro:passionfruit devzkn$ yarn run build
yarn run v1.3.2
$ frida-compile agent -o _agent.js && cd gui && (yarn run build || npm run build)
/bin/sh: frida-compile: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
devzkndeMacBook-Pro:passionfruit devzkn$ yarn start
yarn run v1.3.2
$ cross-env NODE_ENV=production node .
/bin/sh: cross-env: command not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
  • 我已经安装了Frida10.6.27
devzkndeMacBook-Pro:agent devzkn$ frida --version
10.6.27
  • 发现/usr/local/bin 只有这些command
devzkndeMacBook-Pro:bin devzkn$ ls -l frida*
-rwxr-xr-x  1 root  wheel  297 Dec 14 10:58 frida
-rwxr-xr-x  1 root  wheel  315 Dec 14 10:58 frida-discover
-rwxr-xr-x  1 root  wheel  307 Dec 14 10:58 frida-kill
-rwxr-xr-x  1 root  wheel  319 Dec 14 10:58 frida-ls-devices
-rwxr-xr-x  1 root  wheel  303 Dec 14 10:58 frida-ps
-rwxr-xr-x  1 root  wheel  309 Dec 14 10:58 frida-trace

我好像找到问题了

devzkndeMacBook-Pro:passionfruit devzkn$ yarn add cross-env

不够还是安装失败

prebuild-install http 404 https://github.com/frida/frida/releases/download/10.6.13/frida-v10.6.13-node-v59-darwin-x64.tar.gz

完美解决

devzkndeMacBook-Pro:passionfruit devzkn$ npm install --save frida@latest

> frida@10.6.28 install /Users/devzkn/code/demo/passionfruit/node_modules/frida
> prebuild-install || node-gyp rebuild

prebuild-install info begin Prebuild-install version 2.3.0
prebuild-install info looking for local prebuild @ prebuilds/frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install info looking for cached prebuild @ /Users/devzkn/.npm/_prebuilds/https-github.com-frida-frida-releases-download-10.6.28-frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install http request GET https://github.com/frida/frida/releases/download/10.6.28/frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install http 200 https://github.com/frida/frida/releases/download/10.6.28/frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install info downloading to @ /Users/devzkn/.npm/_prebuilds/https-github.com-frida-frida-releases-download-10.6.28-frida-v10.6.28-node-v59-darwin-x64.tar.gz.47369-6d6afc3ef5581.tmp
prebuild-install info renaming to @ /Users/devzkn/.npm/_prebuilds/https-github.com-frida-frida-releases-download-10.6.28-frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install info unpacking @ /Users/devzkn/.npm/_prebuilds/https-github.com-frida-frida-releases-download-10.6.28-frida-v10.6.28-node-v59-darwin-x64.tar.gz
prebuild-install info unpack resolved to /Users/devzkn/code/demo/passionfruit/node_modules/frida/build/Release/frida_binding.node
prebuild-install info unpack required /Users/devzkn/code/demo/passionfruit/node_modules/frida/build/Release/frida_binding.node successfully
prebuild-install info install Successfully installed prebuilt binary!
+ frida@10.6.28
added 32 packages in 18.574s

Unable to launch iOS app: timeout

An unhandledRejection occurred: 
Rejection: Error: Unable to launch iOS app: timeout
Error: Unable to launch iOS app: timeout

启动应用程序失败之后,装置就重启了。这个问题 有点类似Failed to spawn: unable to launch iOS app: timeout

ps: 手动启动app ,还是可以正常分析的

你忘了 yarn install 了吧

直接 spawn 失败的话目标是哪个应用?有没有试过其他的

v0.1.1 增加了 dumpdecrypted 功能,可直接在网页中对单个模块进行砸壳

1 Like

最新版frida 10.6.54确定可正常spawn(iOS 8 ~ iOS 10)

32bit 设备?

对,用4S和5实测过

有人询问 Windows 下是否可以安装和使用,答案是可以的。

通过 USB 访问 iOS 设备需要 iTunes 的驱动,请到苹果官网下载:https://www.apple.com/cn/itunes/download/

连接设备到 iTunes,并在设备上选择“信任”。

安装 Node.js 环境,进入官网 https://nodejs.org,选择下载。强烈建议选择 LTS 版本。如果选择 Latest 可能会遇到部分 npm 模块没有预编译包而导致安装失败的情况。

Passionfruit 使用 Node.js 实现,并不依赖 Python,不需要安装。

node.js 安装完成之后,打开命令提示符运行 npm install -g passionfruit

在大陆的网络可能会遇到软件源访问困难,导致无法完成安装的问题。请使用淘宝的 npm 镜像服务:https://npm.taobao.org/

npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g passionfruit 

接下来使用 passionfruit 命令即可运行 Web 服务。

3 Likes

最新版node.js是不是不行啊

请问这个报错是什么原因

已知 bug,刷新页面即可

好的 很不错的工具

frida更新到11.0.0 ,cydia源里的版本也是11.npm下载的好像低版本,最后网页那显示网络错误,版本不符合,为npm指定frida最新版本,但是编译不过去,提示少头文件。。。。

sudo pip install --upgrade frida

frida 11 和 frida 10 不兼容,只在开发分支里升级了。

npm 少头文件的问题,你可以把整个 frida 项目 clone 下来自己编译,但其实有编译好的二进制包,需要挂代理。