2019-08-08 | UNLOCK

2019-8-8-通过frida学习hook

hook学习-frida

编写APK

在android studio上编写好程序后,可以用ADB把APK传到在手机上然后调试,首先需要在手机的开发者选项中开启usb调试模式才能连接ADB。
也可以用android studio写好程序后,在菜单栏-build选择build APK,然后在APP\fridatest\app\build\outputs\apk\debug文件下找到APK,放到手机上安装。

安装frida

最简单、最顺利的方法是pip install frida和pip install frida-tools

如果运行失败,麻烦点的就是在 https://pypi.org/project/frida/#files 下载frida-12.6.16-py2.7-linux-x86_64.egg放到home目录,然后下载frida-12.6.16.tar.gz解压,执行

1
python setup.py install

frida-tools就直接pip install frida-tools

之后执行

1
frida-ps --version

查看版本,能看到版本就说明安装成功了

如果安装失败可以直接pip uninstall frida卸载,重安

遇到的坑

在kali上安装好frida和frida-tools后,在https://github.com/frida/frida/releases下载对应机型架构的frida-server,然后adb push到手机/data/local/tmp(这里要注意的是frida版本和frida-server版本要对应)
我尝试了两部手机
第一部是nexus 5X ,安卓8.0.0系统,arm64,尝试运行load.py时遇到了

1
2
3
4
5
6
Traceback (most recent call last):
File "load.py", line 8, in <module>
pid = device.spawn(["com.example.fridatest.fridatest"])
File "/usr/local/lib/python2.7/dist-packages/frida/core.py", line 98, in spawn
return self._impl.spawn(program, argv, envp, env, cwd, stdio, aux_options)
frida.ProcessNotFoundError: unable to find process with name 'system_server'

使用命令

1
frida -U -f com.example.fridatest.fridatest --no-pause

后出现了

1
2
3
4
5
6
7
8
9
10
     ____
/ _ | Frida 12.2.29 - A world-class dynamic instrumentation toolkit
| (_| |
> _ | Commands:
/_/ |_| help -> Displays the help system
. . . . object? -> Display information about 'object'
. . . . exit/quit -> Exit
. . . .
. . . . More info at http://www.frida.re/docs/home/
Failed to spawn: unable to find process with name 'system_server'

网上没有找到相似问题,我只好更换另一部手机,Nexus 6,安卓8.1.0系统
运行load.py又出现了问题

1
2
3
4
5
6
Traceback (most recent call last):
File "load.py", line 11, in <module>
session = device.attach(pid)
File "/usr/local/lib/python2.7/dist-packages/frida/core.py", line 110, in attach
return Session(self._impl.attach(self._pid_of(target)))
frida.ProcessNotFoundError: unable to find process with pid 6286

依旧未能解决

最后在 https://blog.csdn.net/cjx529377/article/details/95802532 找到问题可能的原因,就是我的frida以前安装了12.2.16版本,而我下载的frida-server是12.6.16版本,两者版本不对应导致。

评论加载中