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


#21

实在是想知道 你们用的node版本是什么?
(我用了v7.10.1和v8.8.0,npm 或者yarn 都各种错误。迷糊了。)


补充:v8.8.0成功了。

遇到的问题:

  1. npm install 到达某个步骤后,一直卡着。搜索也没找到有效的解决方法。(淘宝源,cnpm等都没凑效)
  2. yarn 目前的版本不支持node v7.10.1,但是支持v8.8.0。

换node v8.8.0后。
3. v8.8.0下,虽然开着未批嗯,但frida仍然可能下载失败,多试一次yarn。


我成功的环境是:

nvm / node v8.8.0 / yarn


但仍然看不到手机里App的信息:joy: 列表是空的。


#22

“支持非越狱”指的是需要把 FridaGadget.dylib 打包到 ipa 里

当然还是越狱环境后装 frida 框架比较方便


#23

备注下:配合MonkeyDev


#24

发现打开微信的时候会卡在登录进不去:frowning:


#25

是个已知问题,默认加的一些 hook 让程序启动超时了,然后 iOS 会 kill 掉应用。

临时解决方案可以先启动微信,然后再点开就是 attach 模式了


#26

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


#27

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

#28

我好像找到问题了

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

#29

不够还是安装失败

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

#30

完美解决

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

#31

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 ,还是可以正常分析的


#32

你忘了 yarn install 了吧


#33

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


#34

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


#35

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


#36

32bit 设备?


#37

对,用4S和5实测过


#39

有人询问 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 服务。


#40

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


#41

请问这个报错是什么原因