得物data纯算法nx h5

网址 aHR0cHM6Ly9tLnBvaXpvbi5jb20vcm91dGVyL3Byb2R1Y3Qvc2VhcmNoL1Byb2R1Y3RTZWFyY2hSZXN1bHQ/c291cmNlX25hbWU9YnV5dGFi

声明 

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!

本期讲解的是得物data纯算法以及响应解密,总耗时两个晚上

快两个月没更新文章了,摆了一个暑假,话不多说,正片开始.

篇幅较长,坐稳发车咯!

目录

声明 

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!

data参数

总结

最后

data参数

1由于电脑尝试错误请求比较多,写文章的时候dw服务器已经把我封了,我这里用charles抓手机端h5的,请求参数就data一个需要破解,响应待会再说

2找加密data加密位置用hook params查询参数,hook就不多说了

(function () {
    var open = window.XMLHttpRequest.prototype.open;
    window.XMLHttpRequest.prototype.open = function (method, url, async) {
        if (url.indexOf("data") != -1)  {
            debugger;
        }
        return open.apply(this, arguments)
    }
})();

3随便点一个物品会断住

4往上跟栈,这个栈往上走后再也没有出现data, 所以data是从上一个函数传下来的,这里需要插桩调试,因为会有许多请求都会经过这里,插桩可以快速定位到关键位置,它只会走一次,v是__zone_symbol__value

e[v].params.data!=undefined

5这张图是hook断住的 

6这张图是插桩断住的,断住后直接往上走

7找到这个位置,这里m已经被下面的赋值污染了,需要先取消之前断点再打到v赋值的地方,如下图

8再次点一个物品它会断住,可以看到名称和翻页,还有一个md5签的sign,这种属于把其他参数拼接后签名与传过来的sign做比对来验证,因为摘要算法一般不可逆,所以它的作用就是来验证你传的参数是否和签名后的sign一致,b站和淘宝用的就是这种

9从b.Fun110进去后是另一个js文件,好几千行,我前前后后分别尝试了补环境,扣算法,接着又是补环境,扣算法,补环境,最后扣算法,因为里面环境有点多,即使补到长度一样也不可行,所以最终打算扣算法,补环境还没成功,不过你补环境的话得提前把密钥确定下来,不然服务器返回给你的密文你是解不了秘的,AES对称加密,你不扣算法你也不会知道密钥在哪生成的,因为它是随机生成的.  这是点进去后的文件.

10return的结果在value那个模块里,补环境导出这个模块在手动传参就行了

11详细扣的话要写很多内容,所以想实现就靠你们自己了,扣完也就20多行

12注意事项:

里面混淆不是很严重,所以我没有还原,硬刚的

补环境需要先找到密钥生成位置,否则即使成功了也解不了密

13最后贴一张结果图吧,证明我来过

总结

1出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来.

2本人写作水平有限,如有讲解不到位或者讲解错误的地方,还请各位大佬在评论区多多指教,共同进步

<think>嗯,用户想设计一个个性化学习路径规划系统,涉及到AI适配和学习分析。首先,我得理解他的需求。系统需要根据学生的兴趣和能力定制学习计划,还要用学习分析评估效果,进行调整,还要支持多学科交叉。技术方面,他用Spring Boot做核心,调用AI接口,数据挖掘做学生画像,还有报告生成和路径规划算法。 问题主要集中在学习路径的数据库设计和动态调整。首先,建表的话,可能需要考虑学生、学科、学习路径、学习单元、评估记录这些实体。学生表存放基本信息,学科表管理多学科交叉,学习路径表关联学生和学科,记录当前状态。学习单元表存储具体的知识点或任务,评估记录表跟踪学生的学习效果。 动态调整方面,可能需要根据学习分析的结果,比如评估分数,触发调整策略。比如用机器学习模型预测学生是否适合当前路径,或者基于规则,比如分数低于阈值就调整路径。路径规划算法可能需要考虑学生的画像数据,比如能力水平和兴趣偏好,结合推荐算法生成新的路径。 还要考虑如何实现实时调整,可能需要定时任务或者事件驱动机制,当评估数据更新时,自动触发调整逻辑。数据库设计时要确保学习路径的历史记录,方便回溯和分析。可能需要版本控制,记录每次调整的时间点和原因。 技术实现上,Spring Boot负责业务逻辑,AI接口可能调用外部的机器学习模型,数据挖掘用Python库处理分析数据,报告生成可能需要模板引擎,比如Freemarker或Thymeleaf。路径规划算法可能需要图算法,比如Dijkstra或A*,或者基于推荐系统的协同过滤。 用户可能没有明说的需求包括系统的实时性、扩展性,以及如何处理多学科之间的依赖关系。需要确保数据库设计灵活,能够适应不同学科的结构,同时动态调整算法要高效,不影响系统性能。可能还要考虑数据隐私和安全问题,特别是教育数据敏感。</think>我将从数据库设计、动态调整策略和技术实现三个层次为您梳理该系统的实现方案: 一、学习路径的数据库设计(基于MySQL示例) 1. 核心表结构: ```sql CREATE TABLE Student ( student_id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), ability_level ENUM(&#39;初级&#39;,&#39;中级&#39;,&#39;高级&#39;) DEFAULT &#39;初级&#39;, interest_tags JSON -- 存储兴趣标签数组 ["数学","编程"] ); CREATE TABLE Subject ( subject_id INT PRIMARY KEY, subject_name VARCHAR(30), dependencies JSON -- 学科依赖关系 {"prerequisites": [101, 102]} ); CREATE TABLE LearningPath ( path_id INT PRIMARY KEY AUTO_INCREMENT, student_id INT, subject_id INT, current_unit INT DEFAULT 1, progress FLOAT CHECK (progress BETWEEN 0 AND 1), FOREIGN KEY (student_id) REFERENCES Student(student_id), FOREIGN KEY (subject_id) REFERENCES Subject(subject_id) ); CREATE TABLE LearningUnit ( unit_id INT PRIMARY KEY, subject_id INT, unit_title VARCHAR(100), difficulty_level INT, required_time INT, -- 预计学习时长(分钟) content_type ENUM(&#39;视频&#39;,&#39;习题&#39;,&#39;实验&#39;,&#39;阅读&#39;) ); CREATE TABLE AssessmentRecord ( record_id INT PRIMARY KEY AUTO_INCREMENT, student_id INT, unit_id INT, score FLOAT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (student_id) REFERENCES Student(student_id) ); ``` 二、动态调整实现策略 1. 实时监控机制: - 使用Spring Scheduler定时执行分析任务: ```java @Scheduled(fixedRate = 3600000) // 每小时执行 public void monitorLearningPath() { List<Student> students = studentRepository.findByLastUpdateBefore(LocalDateTime.now().minusHours(1)); students.forEach(this::adjustLearningPath); } ``` 2. 调整决策模型: ```python # 伪代码示例(Python机器学习模型) def predict_adjustment(student_data): model = load_model(&#39;path_adjustment_model.h5&#39;) features = [ student_data[&#39;progress_rate&#39;], student_data[&#39;assessment_scores&#39;], student_data[&#39;time_spent&#39;] ] prediction = model.predict([features]) return &#39;accelerate&#39; if prediction[0] > 0.7 else &#39;adjust&#39; if prediction[0] > 0.4 else &#39;remediate&#39; ``` 3. 路径优化算法: $$ \text{优化目标} = \arg\max_{p\in P} \left( \alpha \cdot S_{\text{兴趣匹配}} + \beta \cdot S_{\text{能力适配}} - \gamma \cdot T_{\text{预计耗时}} \right) $$ 其中: - $P$ 为候选路径集合 - $\alpha,\beta,\gamma$ 为权重参数(通过机器学习动态调整) - $S$ 为匹配度评分 - $T$ 为时间成本 三、技术实现关键点 1. Spring Boot集成: ```java @RestController @RequestMapping("/api/learning-path") public class PathController { @Autowired private AIModelService aiService; @PostMapping("/adjust/{studentId}") public ResponseEntity<?> adjustPath(@PathVariable Long studentId) { StudentProfile profile = dataMiningService.buildProfile(studentId); LearningPath newPath = aiService.generatePath(profile); pathRepository.updatePath(studentId, newPath); return ResponseEntity.ok(newPath); } } ``` 2. 动态调整实现流程: ① 数据采集 → ② 特征工程 → ③ 模型预测 → ④ 路径生成 → ⑤ 效果验证 3. 多学科交叉处理: - 构建知识图谱存储学科关系 - 使用图遍历算法寻找最优路径 ```python def find_interdisciplinary_path(start_subject, target_skills): graph = build_knowledge_graph() return nx.dijkstra_path(graph, source=start_subject, target=target_skills, weight=&#39;learning_cost&#39;) ``` 四、注意事项 1. 性能优化: - 建立路径版本历史表,记录每次调整 - 对频繁访问的学生画像数据使用Redis缓存 - 采用异步处理机制处理路径调整请求 2. 评估模型构建: $$ \text{学习效果评估} = \frac{1}{n}\sum_{i=1}^{n} \left( w_1S_i + w_2E_i - w_3T_i \right) $$ 其中: - $S_i$ = 单元测试得分 - $E_i$ = 学习效率指标 - $T_i$ = 时间消耗系数 - $w$ = 动态权重参数 建议采用A/B测试验证调整效果,持续优化算法参数。实际开发中应建立回滚机制,当调整后学习效果下降超过阈值时自动恢复上一版本路径。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨如画.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值