抓取模拟器中的数据包

之前一直用的是Fiddler进行真机抓包,设置真机的wifi代理指向自己的电脑,这个好像是4.0之后才有的功能。现在手上没4.0的真机了,只能用模拟器了。网上找了一番,总结如下:


1、设置模拟器的-http-proxy <proxy>:

右击要运行的程序->Run Configuration->Android Application->Target->Additional Emulator Command Line Options->

这里输入:-http-proxy http://192.168.1.100:8888(你的代理服务器的地址)

这样启动之后就可以在Fiddler中看到模拟器的数据包了。


2、直接在模拟器中设置:

Menu->System settings->WIRELESS & NETWORKS->More...->Mobile networks->Access Point Names->T-Mobile US(点击进入)->在Proxy和Port中填入地址和端口->Menu->Save


参考:

http://developer.android.com/tools/help/emulator.html

http://hintdesk.com/how-to-get-android-emulator-working-with-fiddler/

http://stackoverflow.com/questions/1570627/how-to-setup-android-emulator-proxy-settings

<think>好的,用户想用Frida抓取模拟器App的数据。我需要根据提供的引用和之前的经验来整理步骤。首先,用户提到使用逍遥模拟器,但之前可能遇到了问题,比如App不加载libflutter.so库,导致抓失败。现在用户可能换用了其他模拟器或者真实手机,但问题依然存在。 首先,根据引用[1],安装Frida的步骤括下载对应版本的frida-server,推送到模拟器,并运行。需要确认模拟器的架构,比如x86或arm64,然后选择正确的frida-server版本。用户可能在模拟器架构上选错了,导致无法运行。比如,如果模拟器是32位的x86,应该用x86的版本,而不是arm64。 然后,引用[3]提到设置代理和安装证书后仍无法抓,可能需要绕过SSL Pinning,比如使用Xposed+JustTrustMe。用户可能在配置Burp Suite代理后,App有SSL证书校验,导致数据无法捕获。这时候需要指导用户安装Xposed框架和JustTrustMe模块,或者使用Frida脚本绕过。 另外,引用[2]提到在真实手机上成功抓,而模拟器失败。可能需要检查模拟器的网络配置,比如是否正确地设置了Burp的代理,或者是否有其他防火墙设置阻止了流量。用户可能在模拟器里没有正确配置代理,或者证书没有正确安装到系统级别。 步骤方面,首先需要确保Frida环境正确搭建。括安装Python的Frida库,下载对应版本的frida-server,并启动服务。然后,配置Burp Suite代理,可能需要使用adb reverse来转发端口,特别是如果模拟器和主机在同一台机器上,使用127.0.0.1可能有问题,需要用adb reverse tcp:8080 tcp:8080将流量转发到主机的Burp。 接下来,处理SSL Pinning的问题。用户可能需要加载如frida-script.js脚本来hook相关的SSL方法,或者使用Xposed模块。引用[3]中的JustTrustMe是一个常用方法,但需要Xposed框架支持。如果模拟器已经root,安装Xposed和JustTrustMe可能有效,但步骤较多,用户可能需要详细指导。 此外,用户可能在之前的尝试中遇到Frida-server无法运行的问题,比如权限问题。需要提醒用户使用chmod 777赋予执行权限,并检查adb shell中的当前目录是否正确,是否在/data/local/下执行了./frida-server,并且是否在后台运行。 可能还需要检查Frida版本是否匹配,比如用户安装的Frida Python版本是否与frida-server的版本一致。例如,16.2.1的server需要对应16.2.1的客户端,否则会连接失败。 最后,测试Frida是否正常工作,比如运行frida-ps -U查看模拟器中的进程列表。如果这一步失败,说明Frida环境有问题,需要排查server是否运行,USB调试是否开启,或者adb devices是否正确识别设备。 总结步骤应该是:环境准备→配置代理→绕过SSL Pinning→注入脚本抓。同时,注意模拟器的架构选择和Frida版本匹配,以及证书安装和代理设置的正确性。用户可能在某个步骤出错,需要逐一排查。</think>### 分步解决方案:使用Frida抓取模拟器App数据 #### 一、环境准备 1. **安装Frida工具链** 在主机安装Python版Frida客户端: ```bash pip install frida-tools ``` 通过`python -m pip list`验证安装版本[^1]。 2. **下载frida-server** 根据模拟器架构选择对应版本(如32位x86模拟器选择`frida-server-*-android-x86.xz`),下载后解压并推送到模拟器: ```bash adb push frida-server-*-android-x86 /data/local/tmp/ adb shell chmod 755 /data/local/tmp/frida-server adb shell /data/local/tmp/frida-server & ``` [^1] 3. **配置Burp Suite代理** 设置模拟器WiFi代理为主机IP及Burp监听端口(如`192.168.1.100:8080`),并通过以下命令创建反向代理: ```bash adb reverse tcp:8080 tcp:8080 ``` #### 二、绕过SSL Pinning 1. **使用Frida脚本注入** 创建`bypass_ssl.js`脚本,内容示例: ```javascript Java.perform(function() { var SSLContext = Java.use("javax.net.ssl.SSLContext"); SSLContext.init.overload("[Ljavax.net.ssl.KeyManager;", "[Ljavax.net.ssl.TrustManager;", "java.security.SecureRandom").implementation = function() { console.log("[+] SSLContext.init bypassed"); }; }); ``` 注入脚本: ```bash frida -U -l bypass_ssl.js -f com.example.app --no-pause ``` 2. **Xposed+JustTrustMe(备选方案)** 若App使用强校验机制,可在模拟器中安装Xposed框架及JustTrustMe模块[^3]。 #### 三、抓验证 1. **启动Burp Suite** 确保已加载CA证书(需将Burp证书安装到系统证书目录)。 2. **触发App网络请求** 操作App功能,观察Burp的HTTP History是否捕获加密请求(如API接口`api.xiaodingkeji.com`)[^5]。 --- ### 常见问题排查 | 问题现象 | 解决方案 | |-------------------------|-----------------------------------| | Frida连接超时 | 检查`frida-server`是否运行,模拟器架构与版本是否匹配 | | Burp无数据包 | 验证代理设置及`adb reverse`是否生效,检查证书安装 | | App闪退或网络错误 | 调整Frida脚本或使用更稳定的Hook方法 |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值