吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3777|回复: 63
上一主题 下一主题
收起左侧

[Android 原创] Frida 安装

  [复制链接]
跳转到指定楼层
楼主
沉默AND遗忘 发表于 2024-7-19 20:36 回帖奖励

逆向过程中,借助Frida 可以更快的实现软件的逆向破解,Frida不仅可以实现Android应用的逆向,对于IOS应用,Windows应用同样可以实现不错的效果

本文可能由于frida 代码的不断更新,可能出现某些错误或者过时,大家尽量以官方文档为主:

本次安装涉及Frida 的两个组件,一个是安装到手机或模拟器中的: frida-server​,另外就是装在电脑上用于逆向分析的:frida-tools​。

frida-server​ 安装

frida-server 本质上是一个二进制文件,将其拷贝到需要进行hook的系统中运行即可,下面以Android系统为例:

首先需要从 github 的仓库中下载编译好的 frida-server 文件。仓库地址:https://github.com/frida/frida

从Release中下载对应版本的文件即可。frida-server的命名规则为:frida-server-{版本号}-{支持的系统}-{CPU架构}.{压缩文件扩展名}

认准自己手机或模拟器的架构下载即可。例如我是 arm64 的 Android 手机,那么我就下载 frida-server-16.4.5-android-arm64.xz​ 即可

注意:

frida​ 的版本号需要注意一下,例如低版本的Android(如Android 6),可能出现 frida-server 运行时宿主系统出现 黑屏,死机的问题。如果遇到此问题,手机未自动重启,手动强制重启后系统即可恢复正常。下面附上一张来自网络的 frida​ 版本与 Android 版本的对照表(官方并未说明是否有强制性要求Android版本与frida版本的对应关系,数据来源:https://blog.51cto.com/u_16213445/9231363):

Frida版本 Android版本
Frida 12.6.13 Android 4.1 - 4.3
Frida 12.7.0 Android 4.4
Frida 12.8.1 Android 5.0 - 5.1
Frida 12.9.7 Android 6.0 - 6.0.1
Frida 12.9.8 Android 7.0 - 7.1
Frida 12.10.4 Android 8.0 - 8.1
Frida 12.11.7 Android 9
Frida 12.12.0 Android 10
Frida 12.12.2 Android 11

如果需要下载历史版本,请从github的frida仓库Release中寻找历史版本。

下载到合适的frida-server后,使用adb push​命令将二进制文件推送到目标设备中:

adb push frida-server /data/local/tmp/

如果推送不成功,也可以先推送到 /sdcard/​ 目录后,再使用 adb shell​将 frida-server 复制到 /data/local/tmp/​ 目录下

adb push frida-server /sdcard/
adb shell
# 进入shell后,使用 su 命令切换到 root 用户
su
# 如果手机/模拟器提示需要授权,请在手机上点击授权即可,请留意手机
mv /sdcard/frida-server /data/local/tmp/

推送完成后,使用:adb shell​命令进入shell,并赋予 frida-server​ 可执行权限

adb shell
# 进入shell后,使用 su 命令切换到 root 用户
su
# 如果手机/模拟器提示需要授权,请在手机上点击授权即可,请留意手机
cd /data/local/tmp/
# 赋予 frida-server 可执行权限
chmod 777 frida-server

上述工作都做完后,可以启动 frida-server​了

adb shell
# 进入shell后,使用 su 命令切换到 root 用户
su
# 如果手机/模拟器提示需要授权,请在手机上点击授权即可,请留意手机
cd /data/local/tmp/
# 赋予 frida-server 可执行权限
./frida-server

frida-server​启动后不会有任何屏幕的提示信息。请注意这个命令行窗口不要关闭,如果命令窗口关闭后,frida-server​ 也会关闭

frida-tools​ 安装

需要注意的是,上文提到的 frida-server 需与 frida 版本保持一致,安装 frida-tools​ 时又会自动安装 frida​ 。那么如何得知 frida-tools​ 版本呢?

首先打开 frida 仓库:https://github.com/frida/frida, 在 Release 中寻找 frida 版本并查找到 frida 的发布日期

获取到 frida 发布日期后,打开 frida-tools 仓库:https://github.com/frida/frida-tools 寻找上述 frida 发布日期的相同或之后的一个 frida-tools 版本,请记住这个版本号!

以 Windows 系统为例,电脑中需要存在Python环境:

注意:

官方对于Python版本未进行说明,理论上python3 都是可以的,但经过测试,frida-tools​ 版本与 Python版本有关联,如果版本不对应,可能出现安装失败或安装后运行时报错等问题!

如何寻找 frida-tools​ 版本支持的 Python版本?

打开 pip 包搜索网站:https://pypi.org/project/frida-tools/ , 点击左侧的 Release history,在右侧寻找对应的 frida-tools​ 版本并点击进入。下滑并注意左侧的 Classifiers下的 Programming Language。下面写的最新的Python版本就是一定可以支持此版本 frida-tools​ 的Python版本。

如果有需求进行Python版本切换的读者,可以使用 conda 进行 Python 环境的管理。此处就不再赘述 conda 的相关安装和使用了

使用以下命令安装 frida-tools:

pip3 install frida-tools=={frida-tools版本号}

注意:

安装 frida-tools​ 时会自动安装 frida​ 所以不要像网上某些教程教的一样分别安装, 不然有可能会出现安装失败或安装后运行时报错等问题!

如果安装时出现网络连接问题,或者一些与网络相关的错误,请多试几遍,也可使用以下方法:

  • 使用 -i​ 参数指定软件源:pip3 install frida-tools=={frida-tools版本号} -i https://pypi.tuna.tsinghua.edu.cn/simple
  • 使用 --proxy​ 参数: pip3 install frida-tools=={frida-tools版本号} --proxy='socks5://127.0.0.1:7890'

安装完成后,使用命令frida-ps​ 命令验证是否安装成功:

C:\Users\LemonGo97> frida-ps
  PID  Name
-----  ----------------------------
  832  chrome.exe
27076  chrome.exe
30132  chrome.exe
22788  chrome.exe
21040  cmd.exe
30480  cmd.exe
 1872  cmd.exe
13060  conhost.exe
 1880  dllhost.exe
 8544  explorer.exe
13700  frida-ps.exe
15032  nvcontainer.exe
26740  rundll32.exe
27464  rundll32.exe
26948  rundll32.exe
 2076  rundll32.exe
 9824  sihost.exe
 9860  svchost.exe
 9868  svchost.exe
 9928  svchost.exe
11208  svchost.exe
20020  svchost.exe
10020  taskhostw.exe
10084  taskhostw.exe
...

执行命令后出现的就是当前机器的进程列表,证明 frida-tools​ 单独运行是没问题的。那么如何测试是否能正确的与运行在手机或模拟器中的frida-server​通信呢?

将手机与电脑连接后,按照上文说的启动 frida-server​ ,在命令行中使用 frida-ps -U​命令查看手机进程:

C:\Users\LemonGo97> frida-ps -U
  PID  Name
-----  --------------------------------------------
  683  ATFWD-daemon
24558  adbd
  672  adsprpcd
  686  alipayservice
11860  android.process.acore
22740  android.process.contacts
11653  android.process.media
  690  audiod
  664  bspCriticalLog
  662  cnd
  680  cnss-daemon
12137  com.amap.android.location
12262  com.android.incallui
24490  com.android.keyguard
22711  com.android.mms
12125  com.android.phone
14538  com.android.providers.downloads

如果执行结果如上所示,那么基本上你的 frida 安装已经成功了,如果出现错误,请仔细检查以上的所有步骤是否正确。

免费评分

参与人数 17吾爱币 +11 热心值 +16 收起 理由
mjai5 + 1 + 1 很好的分享,我已经安装并使用了,开心!
blackblock + 1 + 1 谢谢@Thanks!
lgc81034 + 1 谢谢@Thanks!
nonefree + 1 + 1 我很赞同!
withe + 1 挺详细的
0120 + 1 + 1 我很赞同!
181318458 + 1 鼓励转贴优秀软件安全工具和文档!
lyzrzjh + 1 我很赞同!
wcywcy + 1 + 1 谢谢@Thanks!
piginwind + 1 + 1 热心回复!
weyou + 1 我很赞同!
fama + 1 用心讨论,共获提升!
xierfend + 1 + 1 谢谢@Thanks!
killjd + 1 谢谢@Thanks!
局外人K + 1 + 1 我很赞同!
dtsuifeng + 1 + 1 谢谢@Thanks!
zhczf + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
Gordon_c 发表于 2024-7-21 08:41
正在找这个工具,学习了。
推荐
 楼主| 沉默AND遗忘 发表于 2024-7-25 21:28 |楼主

说白了 frida 就是一个运行在底层操作系统上的一个程序,需要的权限比普通的应用程序要高一些,如果你的华为或者其他任何类型设备可以启动frida,那么都是可以运行的

另外听说华为在很早前就锁bootloader,并且不提供解锁方案。那么你可以尝试电脑安装模拟器来进行在手机上的操作
3#
Omoshiroi 发表于 2024-7-21 00:45
4#
hc7616 发表于 2024-7-21 07:58
楼主讲得好详细,辛苦了
5#
局外人K 发表于 2024-7-21 08:56
感谢分享
6#
cbh 发表于 2024-7-21 10:25
请问在IOS上怎么安装呀?
7#
Liebesfreud 发表于 2024-7-21 10:44
正在学习如何使用
8#
xin1you1di1 发表于 2024-7-21 12:15
很实用,收藏一个
9#
tingshuo86009 发表于 2024-7-21 12:26
感谢分享
10#
piginwind 发表于 2024-7-21 12:27
非常专业的贴!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 10:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表