Frida 开发文档:https://www.frida.re/docs/javascript-api/#objc
Frida是一款基于python + javascript 的hook与调试框架。它允许你将 JavaScript 的部分代码或者你自己的库注入到 windows、macos、linux、iOS、Android,以及 QNX 的原生应用中,同时能完全访问内存和功能。
该工具由OleAndréV.Ravnås(@oleavr)开发,并且还有一个非常活跃的IRC频道,在这里你可以与其他许多同样热衷于Frida的技术人员探讨交流。你可以通过irc.freenode.net上的#frida加入IRC。
Frida的一些实际用例(根据自身使用的目的而定)–
1、hook特定函数并更改返回值
2、分析定制协议,并迅速嗅探/解密流量
3、对自己的应用程序进行调试
4、从iOS应用程序中dump类和方法信息
5、其他应用场景等等。
除以上提到的作用之外,Frida 还提供了一系列的 API 以及方法。你可以使用命令行窗口或者像 frida-trace 的记录 low-level 函数(例如 libc.so 中的’open’调用)的工具来快速运行。你可以使用C,NodeJs或者Python绑定来完成更加复杂的工作。因此,Frida 也是我强烈推荐大家使用的安全或分析工具的首选。目前,已经有好几种工具都建立在了Frida上,包括Needle 和AppMon。
Frida在ios上的设置也非常的简单,只需要在你的iOS设备以及主机上执行以下操作。
要在你的iOS设备上安装Frida服务器,请参照以下步骤。
1.在你的iOS设备上打开Cydia应用程序。
2.添加一个源,URL为:https://build.frida.re
3.打开Source或搜索Frida,单击Modify,然后单击Install。
一. 安装python
mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python。这里有两种方案安装:
1.homebrew
在终端输入:“brew install python”
这个方案比较简单,如果出错的话可以给前面加sudo试试,这个安装的python可能不是最新版.
2、从官网下载安装
大家可以从https://www.python.org/download下载安装最新版的python,安装比较无脑,一路按下去就OK,缺点是以后升级,卸载都得自己维护.
这两个方法安装的python的位置是不一样的,大家可以用:
在终端输入:“which python”
来查看安装位置.安装完成后在终端中键入python来验证安装是否成功.
二. 安装pip
这里好多文章中说要先安装easy_install, 其实是不用的.
1、我们先获取pip安装脚本:
在终端输入:”wget https://bootstrap.pypa.io/get-pip.py“
如果没有安装wget可以去这里将所有内容复制下来,新建get-pip.py文件,将内容拷进去就OK了.
2、安装pip
在终端输入:”sudo python get-pip.py“
我安装的时候出现报错:Running Homebrew as root is extremely dangerous and no longer supported.As Homebrew does not drop privileges on installation you would be giving all.build scripts full access to your system.
很明显是不需要root验证了,直接输入"python get-pip.py"--完美!
安装成功后可以在终端中键入pip来检测,如果不行重启终端后尝试.
3、修改pip源
在天朝,由于功夫网的原因,使用pip安装一些模块会特别慢甚至无法下载,因此我们需要修改pip的源到国内的一些镜像地址,特别感谢国内无私奉献的组织~
a、首先进入HOME路径:
在终端输入:”cd ~“
b、创建.pip目录:
在终端输入:”mkdir .pip“
c、创建pip.conf文件:
在终端输入:”touch pip.conf“
然后可以用自己喜欢的编辑器打开pip.conf文件,我现在使用的时v2ex的源,所以添加:
[global]
index-url = http://pypi.v2ex.com/simple
可以把index-url的值设置为自己实际源的地址.
三、安装Frida
直接在终端输入:”sudo pip install frida“
然而,事情并没有那么简单,又报错了:DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.Uninstalling six-1.4.1:
搜了一下,还是听从网外大神的意见,把安装的命令改成:
”sudo pip install frida –upgrade –ignore-installed six“
原因是Apple预安装的这个six库出于安全原因被设置为sudo也不可以执行操作,所以需要依赖于高版本的库就需要更新six,但是没有six的权限,所以就会报错。
可以了,完美解决~到此,Frida框架的配置就完美解决了,接下来可以开撸啦!