当前位置: 首页 > news >正文

爬虫利器Frida RPC入门——夜神模拟器环境篇

Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。

  • frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。
  • frida上层接口支持js、python、c等。
  • Frida官方github地址为:frida官方github地址

1. 环境构成

1.1. 基础环境

  • Java环境
  • Python环境
    python3.x,推荐3.7以上。
  • 手机开发调试环境
    ADB(Android Debug Bridge)是Android开发和测试过程中不可或缺的工具,它允许开发者和用户通过电脑与Android设备进行通信。

1.2. 模拟器

在安卓手机应用开发和游戏测试领域,模拟器扮演着不可或缺的角色。它们不仅为开发者提供了一个便捷的平台来测试应用,还允许游戏玩家在电脑上享受手机游戏,而不受电池或移动设备性能的限制。以下是市场上几款常用的安卓模拟器,以及它们的一些主要特点:

  1. MuMu模拟器:MuMu模拟器由网易推出,支持Windows和Mac平台。它基于Android 6.0.1内核,提供相对稳定的环境,适配市面上99%的主流手游和应用。MuMu模拟器的另一款产品MuMu手游助手,使用网易自研的星云引擎和Android 7.1内核,提供更强的拓展性和更好的游戏体验。
  2. BlueStacks蓝叠:蓝叠是一款在全球范围内广受欢迎的安卓模拟器,以其良好的兼容性和稳定性著称。支持直到Android 7.1.2的版本,适合游戏应用的开发和测试。同时,蓝叠也因其优秀的游戏体验而受到许多玩家的喜爱。
  3. 夜神Nox模拟器:夜神模拟器支持Windows和Mac平台,提供了全面的优化,确保游戏和应用运行稳定流畅。它支持Android 5.1/7.1/9.0等多个版本,且默认会自动连接ADB,方便开发者进行应用调试。
  4. Genymotion:这是一款面向开发者的高性能安卓模拟器,支持Mac、Windows及Linux操作系统。Genymotion基于x86和VirtualBox,支持OpenGL加速,可以模拟多种Android系统版本和设备类型,非常适合开发者进行应用测试。
  5. 逍遥安卓模拟器:MEmu是一个免费的安卓模拟器,专注于Windows平台。它使用了全新的引擎,性能更强,支持多开挂机,节省资源。支持直到Android 7.1的版本,适合游戏和应用的开发测试。

1.3. Frida

2. 安装部署夜神模拟器

2.1. 安装

首先下载夜神模拟器,然后双击打开.exe安装包。

下载地址:https://www.yeshen.com/

在这里插入图片描述
在“多开管理”中,选中自己需要的安卓版本,例如本列中所用的Android 9.0。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 模拟手机GPS定位

在这里插入图片描述

注:好像不好使!例如接下来使用高德地图,没有定位。

2.3. 设置开发者模式

在这里插入图片描述

打开:工具->设置->系统->关于平板电脑,如下图所示。

注:工具是主界面中的工具,如上图所示。
在这里插入图片描述

连续点击“版本号“位置(如图所示),进入开发者状态。

退回上一步,则可以看到”开发者选项“。
在这里插入图片描述
打开USB调试模式。
在这里插入图片描述

2.4. ADB

夜神模拟器自带的ADB工具,即nox_adb.exe,是用于与模拟器进行通信和操作的一个实用程序。以下是具体如何使用夜神模拟器的自带ADB的步骤:

  1. 找到ADB工具:安装夜神模拟器后,可以通过鼠标右键点击电脑桌面的“夜神模拟器”启动图标,选择“打开文件所在的位置”,进入对应的Nox\bin目录,在这里可以找到nox_adb.exe
  2. 配置环境:确保你的系统环境变量中包含了夜神模拟器的bin目录,这样你就可以在任何命令行窗口中使用nox_adb命令。
  3. 开启开发者模式:在夜神模拟器中启用USB调试功能。这通常在模拟器的设置中的“开发者选项”里。如果没有看到开发者选项,尝试在关于模拟器的页面中连续点击版本号以激活它。
  4. 连接模拟器:通过命令提示符(cmd)或PowerShell进入夜神模拟器的bin目录。例如,如果你的夜神模拟器安装在D盘的D:\Program Files\Nox\bin目录下,可以在资源管理器地址栏输入cmd并回车,或者直接在该目录下按住Shift并单击鼠标右键选择“在此处打开命令窗口(W)”[4]。
  5. 使用ADB命令:在命令行窗口中,可以使用nox_adb.exe来执行各种ADB命令。例如,要查看已连接的设备,可以运行nox_adb devices。如果启动了多个模拟器实例,它们将按端口号列出。若要指定连接到某个模拟器,可以使用nox_adb -s 127.0.0.1:端口号的命令格式。例如,如果要连接到端口号为62001的模拟器,则输入nox_adb devices
  6. 多开模拟器操作:如果有多个夜神模拟器实例在运行,需要指定要操作的模拟器实例。你可以通过之前提到的端口号来实现这一点,如nox_adb -s 127.0.0.1:62025针对第二个实例进行操作。

Nox\bin(说明:这是你的夜神模拟器安装路径)

D:\Program Files\Nox\bin>nox_adb devices
List of devices attached
127.0.0.1:62025 device

注,网上常见端口是62001,一般是默认的Android7的系统,我在这里换上了Android9,对应的端口也就变了。

D:\Program Files\Nox\bin>nox_adb connect 127.0.0.1:62025
already connected to 127.0.0.1:62025

查看设备列表:

PS D:\Program Files\Nox> adb devices -l
List of devices attached
127.0.0.1:62025        device product:d2que model:SM_N976N device:d2q

3. Frida安装

首先,安装python3.7并配置好环境变量(官方推荐python3以上版本至少为3.7),python安装包官方下载地址:https://www.python.org/downloads/。

3.1. 安装frida客户端模块

命令为pip install frida(配置了多个python版本环境的可以使用命令python -m pip install frida防止用pip install frida命令报错)。

官方说明文档,https://frida.re/docs/home/

3.2. 安装frida-server

首先,从我们的发布页面下载最新的frida-server for Android并解压它。

例如下载文件为frida-server-16.2.5-android-x86_64.xz,解压后为单独文件frida-server-16.2.5-android-x86_64,修改文件名为frida-server

接着,我们需要连接Android设备到计算机,并使用adb将Frida Server推送到设备上:

D:\Program Files\Nox\bin>adb push D:\01workspace\12amap\frida-server /data/local/tmp
[100%] /data/local/tmp/frida-serverD:\Program Files\Nox\bin>adb shell
d2q:/ # cd /data/local/tmp
d2q:/data/local/tmp # chmod 755 /data/local/tmp/frida-server

以root权限启动frida-server:

d2q:/data/local/tmp # ./frida-server

新开一个命令行输入命令adb shell procrank查看手机进程,如果出现以下结果,则frida安装成功。
在这里插入图片描述

或者:新开一个命令行输入命令frida-ps -U查看手机进程,如果出现以下结果,则frida安装成功。
在这里插入图片描述

相关文章:

爬虫利器Frida RPC入门——夜神模拟器环境篇

Frida是一款轻量级HOOK框架,可用于多平台上,例如android、windows、ios等。 frida分为两部分,服务端运行在目标机上,通过注入进程的方式来实现劫持应用函数,另一部分运行在系统机器上。frida上层接口支持js、python、…...

猫狗分类识别模型建立①数据标记

一、labelImg库说明 LabelImg是一款非常流行的图像标注工具,广泛用于机器学习和计算机视觉领域。以下是关于LabelImg的详细介绍: 主要功能和特点 1.图像标注 允许用户在图像中标注物体,选择特定区域,并为这些区域添加标签或类…...

FME学习之旅---day28

我们付出一些成本,时间的或者其他,最终总能收获一些什么。 教程:CSV 入门...

vue3项目中字典和全局方法的创建与使用

在src下新建dict.ts/js,写入下面代码 import { App, Plugin } from vue;interface Dict {auditgrouptypeList: { label: string; value: string }[];auditstateList: { label: string; value: string }[];accountchangeList: { label: string; value: number }[]; }const Dict…...

51-54 Sora能制作动作大片还需要一段时间 | DrivingGaussian:周围动态自动驾驶场景的复合高斯飞溅

24年3月,北大、谷歌和加州大学共同发布了DrivingGaussian: Composite Gaussian Splatting for Surrounding Dynamic Autonomous Driving Scenes。视图合成和可控模拟可以生成自动驾驶的极端场景Corner Case,这些安全关键情况有助于以更低成本验证和增强自…...

数据挖掘实战-基于余弦相似度的印度美食推荐系统

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…...

深入探索DreamFusion:文本到3D生成的革命性技术

深入探索DreamFusion:文本到3D生成的革命性技术 引言: 在人工智能和计算机视觉领域,DreamFusion无疑是一个引人注目的新星。这项技术,基于Google提出的深度学习模型,将自然语言与三维内容生成紧密结合,开…...

JSP期末要点复习

一、JSP工作原理 1.客户端请求JSP页面:用户通过浏览器发送一个请求到服务器,请求一个特定的JSP页面。这个请求被服务器上的Web容器(如Apache Tomcat)接收。 2.JSP转换为Servlet:当JSP页面第一次被请求时&#xff0…...

AJAX(JavaScript版本)

目录 一.AJAX简介 二.XMLHttpRequests对象 2.1XMLHttpRequests对象简介 2.2创建XMLHttpRequests对象 2.3定义回调函数 2.4发送请求 2.5XMLHttpRequests对象方法介绍 2.6XMLHttpRequests对象属性 三.向服务器发送请求 3.1发送请求 3.2使用GET还是POST 3.3使用GET来发…...

框架学习之SpringMVC学习笔记(一)

一、SpringMVC简介 1-介绍 Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称( spring-webmvc ),但它通常被称为“Spring MVC”。 在控制层…...

数据集005:螺丝螺母目标检测数据集(含数据集下载链接)

数据集简介 背景干净的目标检测数据集。 里面仅仅包含螺丝和螺母两种类别的目标,背景为干净的培养皿。图片数量约420张,train.txt 文件描述每个图片中的目标,label_list 文件描述类别 另附一个验证集合,有10张图片,e…...

Swift 类和结构体

类和结构体 一、结构体和类对比1、类型定义的语法2、结构体和类的实例3、属性访问4、结构体类型的成员逐一构造器 二、结构体和枚举是值类型三、类是引用类型1、恒等运算符2、指针 结构体和类作为一种通用而又灵活的结构,成为了人们构建代码的基础。你可以使用定义常…...

网络安全相关面试题(hw)

网络安全面试题 报错注入有哪些函数 updatexml注入 载荷注入 insert注入 updata注入 delete注入 extractvalue()注入 注入防御方法 涵数过滤 直接下载相关防范注入文件,通过incloud包含放在网站配置文件里面 PDO预处理,从PHP 5.1开始&…...

前端开发攻略---三种方法解决Vue3图片动态引入问题

目录 1、将图片放入public文件夹中 2、使用 /src/.... 路径开头 3、生成图片的完整URL地址&#xff08;推荐&#xff09; 1、将图片放入public文件夹中 使用图片&#xff1a;路径为 /public 开头 <template><div><img :src"/public/${flag ? 01 : 02}.jp…...

零售EDI:Target DVS EDI项目案例

Target塔吉特是美国一家巨型折扣零售百货集团&#xff0c;与全球供应商建立长远深入的合作关系&#xff0c;目前国内越来越多的零售产品供应商计划入驻Target。完成入驻资格审查之后&#xff0c;Target会向供应商提出EDI对接邀请&#xff0c;企业需要根据指示完成供应商EDI信息…...

AWS安全性身份和合规性之AWS Firewall Manager

AWS Firewall Manager是一项安全管理服务&#xff0c;可让您在AWS Organizations中跨账户和应用程序集中配置和管理防火墙规则。在创建新应用程序时&#xff0c;您可以借助Firewall Manager实施一套通用的安全规则&#xff0c;更轻松地让新应用程序和资源从一开始就达到合规要求…...

R实验 随机变量及其分布

实验目的&#xff1a; 掌握常见几种离散性随机变量及其分布在R语言中对应的函数用法&#xff1b;掌握常见几种连续性随机变量及其分布在R语言中对应的函数用法&#xff1b;掌握统计量的定义及统计三大抽样分布在R语言中对应的函数用法。 实验内容&#xff1a; &#xff08;习题…...

rapidssl泛域名https600元一年

泛域名https证书也可以称之为通配符https证书&#xff0c;指的是可以用一张https证书为多个网站(主域名以及主域名下的所有子域名网站)传输数据加密&#xff0c;并且提供身份认证服务的数字证书产品。RapidSSL旗下的泛域名https证书性价比高&#xff0c;申请速度快&#xff0c;…...

月薪5万是怎样谈的?

知识星球&#xff08;星球名&#xff1a;芯片制造与封测技术社区&#xff0c;星球号&#xff1a;63559049&#xff09;里的学员问&#xff1a;目前是晶圆厂的PE&#xff0c;但是想跳槽谈了几次薪水&#xff0c;都没法有大幅度的增长&#xff0c;该怎么办&#xff1f;“学得文武…...

linux下宝塔负载100%解决方法

今天发现服务器宝塔面板负载居然是100% 但是cpu 和内存其实并不高 通过命令查看主机 uptime 中load average 居然高达18.23 看来负载是真的高了 通过vmstat 看看具体问题 procs&#xff1a; ​ r 表示运行和等待CPU时间片的进程数&#xff0c;这个值如果长期大于系统CPU个数…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

【Oracle APEX开发小技巧12】

有如下需求&#xff1a; 有一个问题反馈页面&#xff0c;要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据&#xff0c;方便管理员及时处理反馈。 我的方法&#xff1a;直接将逻辑写在SQL中&#xff0c;这样可以直接在页面展示 完整代码&#xff1a; SELECTSF.FE…...

OpenLayers 分屏对比(地图联动)

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能&#xff0c;和卷帘图层不一样的是&#xff0c;分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

jmeter聚合报告中参数详解

sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample&#xff08;样本数&#xff09; 表示测试中发送的请求数量&#xff0c;即测试执行了多少次请求。 单位&#xff0c;以个或者次数表示。 示例&#xff1a;…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storms…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

【堆垛策略】设计方法

堆垛策略的设计是积木堆叠系统的核心&#xff0c;直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法&#xff0c;涵盖基础规则、优化算法和容错机制&#xff1a; 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则&#xff1a; 大尺寸/重量积木在下&#xf…...