Sun的逆向之路(二)——FiF口语训练的刷分剖析

2023-12-07 15:30

本文主要是介绍Sun的逆向之路(二)——FiF口语训练的刷分剖析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  闲来无事看了看FiF口语中一些Task的排行榜,翻着翻着意外发现了一个101分的榜首,按理来说满分才只有100分,因此猜想这个分数一定是被动过手脚的,于是来了兴致,从POST请求与APK反编译两个角度分别尝试破解FiF。


方案一:APK反编译

  将FiF的apk文件拖入AndroidKiller,发现加载失败,于是拖入jadx,发现原来上了奇虎的加固壳,考虑到只是把玩娱乐,脱壳会大大增加复杂性,于是暂时放弃反编译的想法。

方案二:POST请求拦截

0x01 配置Fiddler

  因为自从用了新电脑就没有抓过包了,因此还是要做一些配置的。Java Jdk和环境变量的配置工作在此掠过了,但考虑到这次Fiddler的配置过程还有点不同寻常,所以这里做一下记录。
  运行Fiddler提示8888端口被占用了,询问是否随机取端口。考虑到不使用8888可能后面会造成一些不必要的麻烦,于是打开cmd输入netstat -ano|findstr “8888”,发现原来端口被PID为20348的应用占用了,打开任务管理器的详细信息选卡,发现是Matlab,于是结束进程。
这里写图片描述

  随后重启Fiddler,发现没有端口占用提示了。再次查看8888端口的状态,可以看到这个端口已经成功被Fiddler监听。接下来在手机浏览器访问“IP:8888”,安装Fiddler证书即可,IP可通过控制台ipconfig指令查看。至此环境配置结束。

这里写图片描述

0x02 POST请求拦截

  手机端对应设置好HTTP代理后,打开FiF,发现Fiddler这边的请求很杂乱,这是因为电脑和手机上所有的网络请求都被显示了,于是配置过滤器,只显示抓取Host为m.oral.fifedu.com的请求,同时通过命令bpc:m.oral.fifedu.com来设置请求断点。随便进入一个Task,这里我进的是四级口语模拟题2的Task1。随便读两句。
这里写图片描述
  随后提交,在Fiddler上可以看到请求已经被拦截下来了,
这里写图片描述
  对应在右侧的WebForms中可以看到对应的jasonobject:

  {"recordPath" : "2811000026000000971\/cc253a5178c44088b736bcb9386f324e\/e7ba561752f34de683f6435e47ced8f6\/t\/0_0.mp3","score" : "0","ansDetail" : "word#0","learn_time" : "2","questionId" : "e7ba561752f34de683f6435e47ced8f6#0#0","accuracy" : "0","fluency" : "0","complete" : "0"}
]

  显然score代表的就是分数,我们将其修改为101,在Fiddler中单击Run To Completion放行修改过的请求,手机端对应有了相应,提示挑战失败,但我们返回列表并刷新,发现实际上数据已经上传成功并在排行榜上显示了。至此FiF口语的刷分就顺利实现了。
这里写图片描述

0x03 小结

  FiF口语虽然对应用加壳处理了,但是却忘记了对网络请求进行安全加固,导致了刷分的可行性。希望FiF口语官方对请求参数进行加密或组合加密,或利用sign值算法验证请求的合法性,尽快更新应用并修复此漏洞。

这篇关于Sun的逆向之路(二)——FiF口语训练的刷分剖析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466379

相关文章

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering)

Spark MLlib模型训练—聚类算法 PIC(Power Iteration Clustering) Power Iteration Clustering (PIC) 是一种基于图的聚类算法,用于在大规模数据集上进行高效的社区检测。PIC 算法的核心思想是通过迭代图的幂运算来发现数据中的潜在簇。该算法适用于处理大规模图数据,特别是在社交网络分析、推荐系统和生物信息学等领域具有广泛应用。Spa

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

Android逆向(反调,脱壳,过ssl证书脚本)

文章目录 总结 基础Android基础工具 定位关键代码页面activity定位数据包参数定位堆栈追踪 编写反调脱壳好用的脚本过ssl证书校验抓包反调的脚本打印堆栈bilibili反调的脚本 总结 暑假做了两个月的Android逆向,记录一下自己学到的东西。对于app渗透有了一些思路。 这两个月主要做的是代码分析,对于分析完后的持久化等没有学习。主要是如何反编译源码,如何找到

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录

Detectorn2预训练模型复现:数据准备、训练命令、日志分析与输出目录 在深度学习项目中,目标检测是一项重要的任务。本文将详细介绍如何使用Detectron2进行目标检测模型的复现训练,涵盖训练数据准备、训练命令、训练日志分析、训练指标以及训练输出目录的各个文件及其作用。特别地,我们将演示在训练过程中出现中断后,如何使用 resume 功能继续训练,并将我们复现的模型与Model Zoo中的

如何导入sun.misc.BASE64Encoder和sum.misc.BASE64Decoder

右击项目名--->Build Path--->Configure Build Path...--->java Build Path--->Access rules:1 rule defined,added to all librar...   --->Edit --->Add...

多云架构下大模型训练的存储稳定性探索

一、多云架构与大模型训练的融合 (一)多云架构的优势与挑战 多云架构为大模型训练带来了诸多优势。首先,资源灵活性显著提高,不同的云平台可以提供不同类型的计算资源和存储服务,满足大模型训练在不同阶段的需求。例如,某些云平台可能在 GPU 计算资源上具有优势,而另一些则在存储成本或性能上表现出色,企业可以根据实际情况进行选择和组合。其次,扩展性得以增强,当大模型的规模不断扩大时,单一云平

深度剖析AI情感陪伴类产品及典型应用 Character.ai

前段时间AI圈内C.AI的受够风波可谓是让大家都丈二摸不着头脑,连C.AI这种行业top应用都要找谋生方法了!投资人摸不着头脑,用户们更摸不着头脑。在这之前断断续续玩了一下这款产品,这次也是乘着这个风波,除了了解一下为什么这么厉害的创始人 Noam Shazeer 也要另寻他路,以及产品本身的发展阶段和情况! 什么是Character.ai? Character.ai官网:https://

转:android ro.debuggable属性调试修改(mprop逆向)

android ro属性调试修改(mprop逆向)      大家都知道如果需要调试android 的程序,以下两个条件满足一个就行。第一是apk的配置文件内的AndroidManifest.xml的 android:debuggable=”true”,第二就是/default.prop中ro.debuggable=1。两种方式第一种通常是解包添加属性再打包,随着加壳软件以及apk校验等,容易出