基于Python的《少女前线》充值金额穷举法

文章访问量:

暴力破解

其实就是暴力破解。需要注意的是本文只适用于充值金额和充值时间的穷举。像昵称这种就得自己去改代码了。

我觉得等这篇博客真的被SEO收录的时候,已经过了5.20号了。不管怎样,这里还是写篇博客记录一下。

本文不涉及运行环境配置,需要自身有一定的计算机基础。相关技术问题可以去csdn或者百度搜索。

原理就是通过Python去模拟浏览器发起的请求,不然纯人工去穷举那是又耗时又耗力。

先到数据继承的界面,填入自己的信息。

接下来打开开发者工具,在网络那一栏打开“录制网络日志”,它会记录下你与服务器之间的交互数据。接下来在数据继承那点击确认,提交数据。同时网络日志那会捕获到一个类型为XMLHttpRequest(XHR)的code_check文件。这个文件包括了你向服务器发起的请求和服务器返回给你的结果。

你需要的数据有两项:一个是请求头里面的authorization,你可以把它看作你访问服务器的密码。

另一个是“载荷”,也就是payload。你需要根据payload的字段和格式去构造请求体。

接下来就是写代码去发起请求。代码的话没什么讲究,嫌麻烦可以直接把请求头和payload丢给deepseek、gpt或者copilot写。请求头的话你可以直接全选然后右键复制,payload同理。然后再让AI写一份”根据该请求头与payload,编写穷举year(2019-2025),month(1-12),money(1-648)的发送请求的代码“。

我个人建议用python,毕竟python环境安装起来比较方便。我是直接用copilot写的代码,只调整了下日志输出和穷举范围。你也可以直接拿这段代码去用。

写者注

当然你也可以自己改下代码。把几个入参通过命令行参数的方式传给程序,再用pyinstaller把程序打包成exe,再把这个exe发给其他人用。这样就算他的电脑上没有python环境,也能运行该程序。
Python
import requests
import json
from itertools import product
import time

url = "https://gf-bind-api.sunborngame.com/code_check"
headers = {
    "accept": "application/json",
    "accept-encoding": "gzip, deflate, br, zstd",
    "accept-language": "zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,zh-TW;q=0.6",
    "authorization": "12345", # 填入你自己的authorization
    "content-type": "application/json",
    "origin": "https://gf-cn.sunborngame.com",
    "referer": "https://gf-cn.sunborngame.com/",
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"
}
years = range(2020, 2025)  # 左闭区间,右开区间。表示从2020穷举到2024年。
months = range(1, 13)  # 同上
money_values = range(1, 649) # 同上
combinations = product(years, months, money_values)
with open("log.txt", "w", encoding="utf-8") as log_file:
    for year, month, money in combinations:
        #time.sleep(1)  
        payload = {
            "code": "12345", # 专属继承码
            "name": "White Night",  # 你在少前中使用的名称
            "uid": 12345, # 你的UID
            "money": money,
            "year": year,
            "month": month
        }
        try:
            response = requests.post(url, headers=headers, data=json.dumps(payload))
            log_entry = f"Sent: payload = {payload} | Response: {response.status_code}, {response.text}\n"
            log_file.write(log_entry) 
            print(log_entry.strip())  
            if "有误" not in response.text:
                log_file.write("Request was successful.\n")
                print("Request was successful.")
                break
        except Exception as e:
            error_entry = f"Error sending request for Sent: payload = {payload}: {e}\n"
            log_file.write(error_entry)  
            print(error_entry.strip())  

time.sleep其实有没有都无所谓,散爆没有做接口限制,你想的话也可以带上。穷举的话看你自己情况去进行调整,我是听说21年之前的充值记录可以直接填0,不过为了保险起见我还是从2020年开始穷举。

充值金额的话可以改成数组,前提是你确定自己氪金的数额,比如买了月卡或者充了648这种。如果能确定自己氪了多少钱那就是最好的。

接下来就是运行代码,然后坐等输出。穷举法说白了就是暴力法,只能用时间换输出。我是等了一个多小时才出结果。当你的金额和日期能和服务器对上号的时候,服务器会返回OK和你的昵称等数据。那么前面的就是你的氪金金额和氪金日期了。

接下来直接回到最开始散爆的数据继承界面,填入通过暴力法穷举出的金额、年份、月份,完事。

Subscribe
提醒
2 评论
Inline Feedbacks
View all comments
min
min
2 月 之前

Error sending request for Sent: payload = {‘code’: ‘8749121582310500’, ‘name’: ‘是啥问题啊我纯复制的代码

min
min
回复  min
2 月 之前

没事了,原来是没有requests

2
0
在此留下你的评论x