【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包

2022-12-02 276284 编程学习

一、安装Fiddler

     百度搜索:Fiddler抓包工具,然后安装即可。

     然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息。

     但是:默认情况下,Fiddler只抓取Http格式的。

 

二、配置Fiddler

     1、配置Fiddler允许监听Https

     (1)打开Fiddler菜单项Tools->TelerikFiddler Options

           

    (2)打开HTTPS配置项,勾选“CaptureHTTPS CONNECTs”,同时勾选“Decrypt HTTPS traffic”,弹出的对话框选择是(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行)

        如果是手机跟电脑,用wifi进行链接的话还需要选择“…fromremote clients only”。

        如果需要监听不可信的证书的HTTPS请求的话,需要勾选“Ignore servercertificate errors”。 

    

 

     2、配置Fiddler允许远程连接

     (1)打开Conections配置项,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:

     

     配置完毕OK后,需要重启Fiddler,到此PC端位置完成。

     3、抓取客户端使用HttpURLConnection的包,在Rule->CustomizeRules里,在函数OnBeforeResponse里面添加下面代码:    

if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
            oSession.oResponse.headers["Connection"] = "Keep-Alive";
}

添加后代码为:

static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
            oSession.oResponse.headers["Connection"] = "Keep-Alive";
        }
    }

 

三、配置手机参数

     1、首先,需要将手机号额电脑处于同一个网络下。

      2、然后获取电脑端的IP地址,通过cmd->输入 ipconfig可以查询。

      3、然后获取Fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8888;接下来开始操作手机。

   (以下为参考:http://blog.csdn.net/gld824125233/article/details/52588275)

    第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号,点击前往;见下图:

        

     第二步:前往之后会跳转到证书下载页,见下图:点击FiddlerRootcertificate下载证书;

        

     第三步:点击下载之后,安装证书并起个名字,随便写就行,点击确定;

        

     第四步:要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;

        

       第五步:更改手机无线网的代理

         手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,

 

     第六步:操作手机,电脑fiddler中会显示一些http信息,成功。

接下来就可以通过电脑,来监听手机的请求了。

 

四、其他方面

     1、经常会遇到监听Fiddler的手机无法进行上网操作,此时,需要关闭Fiddler的监控。

         在手机wifi里,找到代理,并去掉就可以了。

     

      2删除手机中证书                       

         安卓系统设置—安全—收信任的凭证—用户,点击证书删除即可;

      3删除手机上密码

         手机系统—安全—密码,删除系统密码即可;

 

参考链接;

http://blog.csdn.net/gld824125233/article/details/52588275

http://blog.csdn.net/idlear/article/details/50999490

TensorFlow怎么实现强化学习训练_Python结合Gym环境构建Agent

Actor和Critic必须双头分离输出:Actor输出logits(离散)或均值/对数标准差(连续),Critic输出标量value;loss计算需在tf.GradientTape内完成,advantage需stop_gradient,环境交互须适配Gym新API并统一数据类型与shape。 用tf.keras.Model定义Actor-Critic网络时,输出层维度容易错 Actor和Crit...

Python中Scikit-learn如何实现半监督学习_利用LabelPropagation

LabelPropagation要求数据具备局部平滑性,特征须标准化,未标记样本标签必须为-1,且需至少两个已标记类别;拟合用transduction_获取全部预测,不提供置信度,对噪声敏感。 LabelPropagation在scikit-learn中的适用前提 LabelPropagation不是万能半监督工具,它要求数据天然具备“局部平滑性”——即相似样本大概率共享标签。如果特征空间中同类样...

为什么Python 3.12不再包含distutils_学习使用setuptools进行模块打包

Python3.12中distutils已被彻底移除,必须将fromdistutils.coreimportsetup替换为fromsetuptoolsimportsetup,并升级setuptools≥65.5.0,禁用废弃参数,继承类改为setuptools路径,CI改用pipwheel。 distutils在Python3.12中已被彻底移除,不是“找不到”,而是根本不存在——标准库源码里删...

怎么在Python TensorFlow中进行迁移学习_通过冻结预训练层解决

不一定。设layer.trainable=False仅是必要条件,还需确保其不在model.trainable_weights中,且优化器在train_step中未使用;BN层需单独处理统计量更新;索引冻结易出错,推荐按名称或可训练性筛选;冻结后loss不降可能因学习率过小、head初始化不当、数据增强不匹配或Dropout未禁用。 冻结预训练层后模型不更新权重?检查trainable设置时机 T...

如何用Python TensorFlow实现度量学习_通过Triplet Loss解决

TripletLoss需自定义类继承tf.keras.losses.Loss,输入为拼接的三组embedding(shape=[3×batch_size,embed_dim]),用tf.nn.l2_normalize归一化后按索引切分a/p/n,计算平方欧氏距离并套用max(pos_dist−neg_dist+margin,0),最后取均值;必须避免Python循环、model.predict及非...

怎么在Python TensorFlow中实现余弦退火学习率_通过CosineDecay解决

CosineDecay仅单次衰减不重启,需用CosineDecayRestarts实现周期性余弦退火;其通过first_decay_steps、t_mul、m_mul控制周期长度与重启起点,自定义调度器可支持预热、epoch对齐等扩展。 为什么直接用CosineDecay会发现学习率不重启 很多人用tf.keras.optimizers.schedules.CosineDecay后发现:学习率只衰...

如何在Python中快速构建响应式机器学习API_基于FastAPI与Uvicorn

用FastAPI+Uvicorn构建机器学习API必须分离模型加载、并发配置、输入校验和错误兜底:模型需启动时全局加载,Uvicorn须设--workers;输入须Pydantic校验并捕获异常;Swagger示例需手动指定,版本号应显式声明。 直接上结论:用FastAPI+Uvicorn构建机器学习API,不是“能跑就行”,而是必须把模型加载、请求并发、输入校验和错误兜底这四件事拆开处理——否则...

如何正确设置DDP与单卡训练的batch size和学习率

在pytorch分布式数据并行(ddp)训练中,batchsize按每卡独立设置,总批大小为per-gpubatchsize×gpu数量;梯度自动跨卡平均,因此学习率无需缩放,但需按总步数对齐训练节奏。 在pytorch分布式数据并行(ddp)训练中,batchsize按每卡独立设置,总批大小为per-gpubatchsize×gpu数量;梯度自动跨卡平均,因此学习率无需缩放,但需按总步数对齐训练...