当前位置: 首页 > news >正文

爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】

案例地址链接:https://gdtv.cn/channels/2

案例爬取链接:https://gdtv-api.gdtv.cn/api/channel/v1/news?beginScore=0&channelId=246&pageSize=11

一、入口定位

首先当我们拿到网站,并且找到我们需要爬取的目标url以后,我们首先复制url到【https://curlconverter.com/】网站生成基础的爬虫代码,并且在本地进行运行

image

先找入口,先找关于header逆向值的生成入口,这里可以通过关键字搜索什么的,但是是搜索不到的,所以我们使用请求堆栈,复制url的唯一标识,创建XHR断点

(放开所有的方法关键字,key关键字,路径关键字等等这些,最后还有一个好用的就是请求堆栈)  刷新一下页面,这个请求是通过刷新页面触发的,所以刷新页面触发目标请求

通过分析请求堆栈,来找到那几个逆向值的生成位置

image

 通过各种方式比如key关键字,等都不能定位到该案例的入口,所以放开所有的关键字操作,很大概率就只能使用请求堆栈,做一个XHR断点

image

image

一层一层往下找

image

 目标请求Ajax的最后一步,可以看一下这这里面有没有那几个值  找header相关的  最后一步肯定是有的,你就找好找的就行,前面有后面指定有

image

image

 这里有上面看不看无所谓

image

image

 下面的这里是个异步,断点已经下不来了

看见这个,就会想到拦截器,它有可能走拦截器吗?有可能,所以我们先打上断点,刷新界面先让断点给断住,

因为我想看异步下面的变量,但是由于异步的原因,断点下不来,所以我们只能重新打断点让断点断在该处再看这里有没有我们想找的这三个字段

当断住以后,优先查看一下断住的链接,确定是不是我们需要找的目标值,其实再看e变量也是包含这三个逆向值的

这个地方有这几个生成值,说明什么?说明和拦截器没关系,拦截器是需要继续往下走,才和拦截器有关系,这个是传进来就包含了,所以就和拦截器没关系,我们需要继续往前找

image

 这里是一个异步,我们就需要打上断点,看一下这个里面是否有我们需要的那几个headers

到Promise这里的时候,参数也都已经生成了,所以还需要继续往前找

这是一个then操作,也是异步操作

image

image

 看到then就需要明白,then左边是一个动作,右边是一个动作,左边也是一个异步,执行完左边的就自动执行右边的,典型的异步操作,then操作

image

 所以只能看then执行之前的,再往前看,看then前面的,所以就需要给then这一行加断点,把其他地方的放开,看then左边的执行结果

image

 备注:前端的逗号运算符

image

 这里是前端的逗号运算符,返回逗号后面的操作结果

image不管()里面放多少值,都是返回最后面的那个值

image

then右边的执行的过程中headders:t 中的 t 是包含这几个字段的,所以我们还需要往前看,把then中的断点去不取消掉,然后在then这一行上打上断点,刷新界面定位到该处,并且网上追述可以发现,t 来源于响应,谁的响应,就是then前面执行的返回值。

总结:可以确定return (0,c.default)(n, e, s).then((function(t)   then左边(0,c.default)(n, e, s) 是逗号运算符 并且在传进来的参数(n, e, s)中不包含我们需要破解的三个字段,但是在then左边运算完以后返回的结果function(t)  中的参数 t 中却包含这三个参数,所以一定是在default这个方法中做了一些什么操作生成了这三个加密字段所以我们进去看一下,看什么做了哪些操作。

 

 

 

 

 

 

二、代码分析

 

 

 

image

 

image

 里面是switch-case 平坦流,控制流  异步操作里面其实都是这种东西,我不管你要干什么走哪里,我也懒的分析,我就之际把每一个return都打上断点,你走哪里,你就给我断住就行了

image

 走完这个0,一定会往下走走7,不要说不往下走,不往西走就是外面的断点卡住了,影响了,需要把外面的断点全部都取消,就会自动往下走走7

image逗号运算符,执行执行一下执行到最后一步,把m的运算值进行返回,=7 就是执行7 如果获取上一步的返回值就是e.sent

0是步骤1 7 是步骤2  这个e.next = 7 就是0做完了,就做7    步骤1中一定有个返回值,逗号运算符,返回m运行的结果,返回交给谁,在case 7中有个e.sent  就是接受上一步的返回值  xxxx.sent就是上一步的返回值  以后在异步的switch-case中,看到xxx.sent就是上一步的返回值,,是一个具体的语法不会叫什么名字,只会叫xxx.sent

image

 所以查看可知,答案就在m中,所以在m函数处加断点,重新刷新界面重新触发,到目标位置

image

 m函数进来又是一个promise 看不懂,看不懂就把这个遮挡上

image

 

image

 n有没有可能,从逻辑上当然有可能,但是进去看了以后,就会发现也都是取值什么也都没干

image

 所以重点基本上就在e.apply中,所以进入到e里面,就在这个里面了。  进入e里面又是一个控制流

在控制流了,就在return  这里打断点

image

image

 

image

 

image

image

 关键是这个W.a,就和往期不一样了,往期不管你用什么方式都是JS代码,悬浮w.a点进来的是一套指令,像汇编一样的指令,这个就是被封装的一个核心运算,形成的一个wasm的代码,这个就是接下来我们要研究的东西,浏览器执行不了C C++ 当时当把这些转成Wasm以后,浏览器就可以执行了,,我们的本地是node,node中也可以执行

就是需要我们认识这是wasm的文件,指令文件,用于提升性能,

image

 遇到这样的WASM,有两种方式,方式一,找到他们的加密处理逻辑使用纯算的方式进行完成,方式二,就是今天要讲的补环境,通过一些逆向不环境的逻辑给补出来

我不管你是不是你是不是WASM,我就直接把你当作是往期的JS案例,直接扣JS,

报什么错误,补什么环境,以上的这些操作和不涉及WASM的操作是一样的

image

 

M有一些操作,也都给带上

image

 到这里,就是关键点了,就是破解WASM最关键的地方了,最核心的位置,这个W是什么,如何去还原,就是我们学习WASM逆向的关键

w是什么呢,我们需要找到它的声明位置,需要先找到它在哪里赋值的

image

 w.export  是关于w模块导出的,所以只有这里和这个地方最相似,并且其他地方也由于作用域的作用都不是

补一下JS模块导出的语法

image

 打印一下,这个结果就和本地执行报错的地方就都对上了

image

 对上了,所以A.exports 就是咱们的目标  w来自于A,A的导出属性,A来自于哪里,A是传参

我们就需要网上看,看谁调用传递的A,所以我们在请求堆栈中网上看,找到调用的地方,发现C就是A C来自于Q,Q来自于A.sent  来自于上一次的返回值,所以我们只需要拿到下面图标中的返回值就有了Q 有了Q就有了C 有了C就有了A

image

 所以上一次的返回值就 I  还有B有关系  

image

 fetch就等价于python的request 请求模块  发送请求用的

imageB来自于一个函数,I和B都来自于哪里都需要打上断点,看一下

 

image

 先把B,执行先把代码扣下来

image

 I就是一个url地址,

这个网站一定会有一个发送关于WASM的一个url请求,把那个WASM指令文件,下载到本地来,供JS使用

image

 所以这个I就是返回的那套WASM的指令数据

带着I和B 就进入t0方法  

image

所以进入q,q又是一个平坦流往下看,就是WASM

image

 

image

 因为5是空,所以最后得到的是这个的返回值

这个库,把WASM这个指令,编译成可以被JS执行的一个代码

image

 

image

 

image

 

image

下载完以后直接保存到本地,然后类似python中的open一样直接读

 使用短的那个直接执行本地的WASM文件即可,那个长的就需要和fetch相互结合才可以

image

 因为这个东西是不变的,所以直接保存到本地,直接读本地的数据即可

image

 如果使用长的,就把那个长的URL传进来就好了,该案例使用的是本地的WASM文件所以不需要

image

 返回是异步,异步拿结果如何拿,这个需要学一下

image

image

 ret就是前面的返回值,就是那个Q

image

 下面就是Q出来了

image

 

image

 以上的就是w已经搞定了,下面就是把补环境补依赖完成就好了

image

 有了w以后,在执行就是报k,就是开始各种补补补依赖了

image

 当看到这个unreachable的时候,基本的变量函数就搞定了,大概率就需要补环境了,

当看到这个unreachable的时候,代表着进入了一个新的阶段,大概率需要补环境 了  这也是我们WASM比较明显的一个信号

其实当执行到这里,代码虽然不在报缺少环境的各种错误,不提示不代表没有错误,实际上还是缺少一些依赖,这个时候

我们需要观察一下直接搜索,搜try

image

 

然后try--finally 无所谓,我们需要找try--catch

因为它其实会在这里报错,但是会被catch给消化掉,所以就不会报出来来

image

所以我们就在这个函数中加上这个log打印一下这个错误 ,知道这个错误来自于那个函数即可

finally可以不管,我们只需要找catch即可

image

 这个时候在运行就会把刚才代码自己处理的错误都爆出来,然后我们往下看就会发现需要补环境了,但是再往下看还有个需要补的依赖

image

 首先我们需要想着这个try--catch 把他的这个错误全部拿出来

其次 看到报的错误,不要上来就跟着报的self  window什么的上来就直接补环境,因为这么补下去会越补越来,需要往下翻翻会发现还有一些隐藏的变量没解决 类似E什么的

所以我们需要找E  还有个x p  直接搜索x= p= 找不到就加个function

剩下的在执行报的错误,就是全部是self  window  这些唯一的环境错误了  到此为止,依赖是补完了

 

现在就是报self 和win找不到,我们就开始进行补环境,最简单粗暴的是直接写window = {}  这也是补环境

但是为了更逼真 ,所以我们在该案例中进行补环境的时候,还是按照类还原的方式进行补  模拟的是类的概念

image

 在浏览器这一端,window是一个顶级变量,window是等于self 等于top的  这三个值是一样的

我们补环境 一是补浏览器应该能够调用的  类似 window  这些前端八大对象

另外代码也会自动检测,这套代码不想被node执行 会检查你这个里面有没有 global   process

它这个站点就做了很多这样的检查,我们需要把node中常用的关键字给删除掉

备注:为什么你知道是删除这两个呢?因为需要去读那个wasm那个指令,这个后面会深入的玩,目前先不讲解

 

添加完代理监控以后就吐了一个环境

image

 

顶级变量window和全局变量的关系

image

 

image

 

image

 因为刚才报self和window所以我们就直接补上了,但是还是报环境问题,这个时候我们就需要进行监控,把这常见的八大对象都进行监控

在这八大对象中,document和nov是用的最多的,仅次于window 

优先补location  因为document里面有location的属性

 

image

 还是报错,还是报环境的问题,那就继续进行补八大对象中的其他的

image

 

image

相关文章:

爬虫逆向--Day22Day23--核心实战案例【荔枝网】【WASM学习】

案例地址链接:https://gdtv.cn/channels/2 案例爬取链接:https://gdtv-api.gdtv.cn/api/channel/v1/news?beginScore=0&channelId=246&pageSize=11 一、入口定位 首先当我们拿到网站,并且找到我们需要爬取的目标url以后,我们首先复制url到【https://curlconverter…...

简洁美观!一款值得 Star 的 Java 博客项目!

OneBlog —— 一个简洁美观、功能强大并且自适应的 Java 博客。基于 SpringBoot + Bootstrap 开发,支持移动端自适应,配有完备的前台和后台管理功能。大家好,我是 Java陈序员。 今天,给大家介绍一个简洁美观的开源 Java 博客系统。关注微信公众号:【Java陈序员】,获取开源…...

数据结构与算法-33.图-加权有向图最短路径

一、加权有向图 1、加权有向图 边的表示 代码实现 2、加权有向图的实现 二、最短路径 1、定义及性质 2、API设计 3、松弛技术4、Dijkstra算法实现 测试以上仅供参考,如有疑问,留言联系...

白子的情人节礼物

新题崭新出炉题面背景 我永远喜欢砂狼白子! ----MyShiroko 白子最近有点烦恼,因为她敏锐的嗅觉闻到了星野前辈身上有老师的味道。(详见《一日一星野》) 在多次询问星野无果的情况下,她打算直接去夏莱找老师问个清楚。 不过最近情人节快到了,白子决定拿着一些礼物,所以她…...

白子的情人节礼物 题解

咕咕点击查看代码 #include<bits/stdc++.h> #define int long long #define Blue_Archive return 0 #define con putchar( ) #define ent putchar(\n) using namespace std; constexpr int N = 5e5 + 7; constexpr int M = 8e5 + 7; constexpr int INF = 1e18;int n; in…...

Ubuntu上进行Zookeeper集群部署

Ubuntu系统上Zookeeper集群部署安装目录1.zookeeper下载2.zookeeper安装与使用3.zookeeper启动4.zookeeper是什么?为什么要用它?为什么不用Hbase自带的? 1.zookeeper下载 版本无特别要求,一般最新稳定版即可。 这里给出3.8.4的下载链接。(点击即可直接下载) zookeeper官网…...

The Landscape of Agentic Reinforcement Learning综述 - jack

The Landscape of Agentic Reinforcement__Learning for LLMs.pdf https://medium.com/data-science-in-your-pocket/the-landscape-of-agentic-reinforcement-learning-for-llms-a-survey-ed96182d3ed1...

A Survey of Reinforcement Learning for Large Reasoning Models - jack

https://arxiv.org/abs/2509.08827 https://huggingface.co/papers/2509.08827...

r-nacos支持mcp,内置mcp server支持让注册到r-nacos的普通http接口通过r-nacos直接转化成mcp服务对外提供服务。

r-nacos支持mcp,内置mcp server与接口转发;支持让注册到r-nacos的普通http接口通过r-nacos直接转化成mcp服务对外提供服务。r-nacos支持mcp,内置mcp server与接口转发;支持让注册到r-nacos的普通http接口通过r-nacos直接转化成mcp服务对外提供服务。 适用场景 如果你有一个…...

MacOS下微信小程序抓包教程

前言 换mac了,折腾一天抓包,终于成功抓上了。 BurpSuite下载: https://www.52pojie.cn/thread-2005151-1-1.html proifier下载:https://www.proxifier.com/ proifier注册机:https://github.com/y9nhjy/Proxifier-Keygen 一、安装proifier 先正常安装proifier本体,打开注册…...

nvm – nodejs版本管理工具

下载 Releases coreybutler/nvm-windows nvm-setup.exe nvm list available #查看可安装版本 如果报错Could not retrieve https://nodejs.org/dist/index.json: Get "https://nodejs.org/dist/index.json": dial tcp xxx.2x.xx.xxx:xxx: i/o timeoutnvm proxy http…...

财务系统里面,怎么合并使用两个经费本号

财务系统里面,怎么合并使用两个经费本号 把一个经费本号填好之后,正常填写,到提交的那个界面,不要提交。 一直点击 上一步, 到可以填写经费本号的那个界面。再填写第二个经费本号。点击下一步,再填写。最后提交即可。...

【火电机组、风能、储能】高比例风电电力系统储能运行及配置分析(Matlab代码实现) - 详解

【火电机组、风能、储能】高比例风电电力系统储能运行及配置分析(Matlab代码实现) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&qu…...

新范式-LLaDA-VLA 基于扩散模型 VLA模型 - jack

https://mp.weixin.qq.com/s/fwOGuKy2Wtz_xXx3nCT28w 论文题目:LLaDA-VLA: Vision Language Diffusion Action Models 论文链接:https://arxiv.org/abs/2509.06932 项目主页:https://wenyuqing.github.io/llada-vla/ 论文时间:Sep, 8, 2025 作者单位:中科大,南京大学,原…...

Redis是如何进行内存管理的?缓存中有哪些常见问题?如何实现分布式锁?

Redis内存管理 Redis的内存用完了会怎样? 如果达到设置的上限,Redis的写命令会返回错误信息(但是读命令还可以正常返回)。 也可以配置内存淘汰机制,当Redis达到内存上限时会冲刷掉旧的内容。 Redis如何做内存优化? 可以好好利用Hash,list,sorted set,set等集合类型数据,…...

5 遥感与机器学习第三方库安装 - 详解

5 遥感与机器学习第三方库安装 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important…...

移远OPENCPU笔记

OPENCPU 支持的操作系统:Linux、ThreadX 芯片平台:国产ASRqq:505645074...

2025.9.16——1绿

普及+/提高 P3155 [CQOI2009] 叶子的染色 昨天用贪心写只拿了部分分,wpmx告诉我要用DP,但当时因为要赶作业没时间写。 今天补上了。...

Unity游戏开发:互动小游戏的技术实现与运营盈利之道

在数字化娱乐飞速发展的当下,互动小游戏凭借其独特的趣味性与强交互性,深受广大用户喜爱。从热闹非凡的线下活动,到流量庞大的线上平台,互动小游戏都展现出了强大的影响力与商业价值。在众多游戏开发引擎中,Unity以其卓越的性能和广泛的适用性,成为了互动小游戏开发的首选…...

如何实现主线程捕获子线程异常

一、基础概念...

LGP5688 [CSP-S-JX 2019] 散步 学习笔记

LGP5688 [CSP-S-JX 2019] 散步 学习笔记 Luogu Link 前言 一题多解这一块。 题意简述 \(n\) 个人在公园内散步。公园可以看作一个环形,上有 \(m\) 个出口,按逆时针顺序记作 \(1\) 号口到 \(m\) 号口。 环总长 \(V\) 米。记 \(a_i\) 为 \(i\) 号出口从 \(1\) 号口按逆时针走到…...

少儿练字控笔字帖

握笔和控笔是写好字的基础 准备了一些基本的控笔练习字帖少儿练字控笔字帖下载...

架构师必备:缓存更新模式总结

大家好,我是Java烘焙师。如何更新缓存和DB、做到性能和一致性的取舍,是一个很常见的话题。下面结合笔者的经验和思考,系统性地总结一下缓存更新模式,讲透讲明白。 1、旁路缓存(cache-aside) 实现方案查询:先查缓存,查不到缓存时再查DB,并把DB内容写入缓存、设置合适的…...

为什么不能在try-catch中捕获子线程的异常 ?

一、基础概念...

sensitive-word 敏感词性能提升14倍优化全过程 v0.28.0 - 实践

sensitive-word 敏感词性能提升14倍优化全过程 v0.28.0 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New"…...

2025 PHP 开发者必看得 25 个容易犯的常见错误 90% 的开发者都踩过

2025 PHP 开发者必看得 25 个容易犯的常见错误 90% 的开发者都踩过 前言 PHP 发展到今天,新特性层出不穷,最佳实践也在不断更新。写出干净、高效、好维护的代码,对每个 PHP 开发者来说都很重要。 这篇文章总结了 PHP 开发中最容易踩的坑,以及对应的解决方案。 不管你是刚入…...

一款带有AI功能的markdown工具

大家好,我是晓凡。 写在前面 关注晓凡的同学都知道,晓凡是一名程序员。 平常有空的时候会写写博客,将一些技术干货或者踩过的坑分享给大家。 和我一样写技术博客的小伙伴都知道,平常素材来源太杂:脑子里突然而来的灵感 群里的一张梗图 随手的一张截图 读书看到的一段文字 …...

45万亿!中国智驾的新风口来了

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)2025年L4智驾场景化应用加速发展,亿欧汽车研究院认为2035年中国L4级别及以上智能驾驶…...

apache poi 导出繁琐的excel表格

apache poi 导出繁琐的excel表格pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; fon…...

Ubuntu Server SSH 连接

使用 SSH 连接(最推荐的方式) 这是最专业、最稳定的方式,特别适合服务器环境:一、在 Ubuntu Server 中确保 SSH 服务已安装并运行: sudo apt update sudo apt install -y openssh-server sudo systemctl enable ssh sudo systemctl start ssh 二、获取虚拟机的 IP 地址: …...

利用竞态条件轻松上传Web Shell

本文详细介绍了如何通过竞态条件漏洞上传PHP Web Shell,使用普通Burp Intruder工具而非Turbo Intruder,包含完整的攻击步骤、PHP代码分析和实战配置,适合初学者理解文件上传漏洞的利用方式。通过竞态条件上传Web Shell(简易方法) 方法特点 本攻击使用普通Burp Intruder而非…...

我亲眼目睹我上海的家长朋友陷进去了

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 354695541004908701我发现在网上很多人都在说不要内卷了,不要卷了,因为我们快被自己人卷死了。我这人天生迟钝,后知后觉的,所以总是赶不上时…...

蔚小理的辅助驾驶,谁最拉跨?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087汽车诞生以来,从来没试过像现在这样,一台车可以在买回来之后,不花一分钱,表现就能获得提升。而且还不只是那些贵的车型,就…...

C 语言的 printf() 函数

概述 printf() 的作用: Print formatted output to the standard output stream. printf() 的函数原型: int printf( const char *format, argument1, argument2, ... );printf() 函数的基本格式: printf(格式字符串, 待打印项列表);或者写为: printf(格式字符串, 待打印项 1,…...

【GitHub每日速递 250915】3 个宝藏开源项目:超长语音合成、算法学习库、自托管软件导航,开发者速收

原文:【GitHub每日速递 250915】3 个宝藏开源项目:超长语音合成、算法学习库、自托管软件导航,开发者速收 VibeVoice:挑战传统TTS,最长90分钟多角色语音合成神器来袭! VibeVoice 是一个长对话文本转语音模型的开源项目。简单讲,它能将连续的文本内容自然地转换成语音,支…...

C 语言头文件

两种写法: #include <stdio.h> // 编译系统在系统头文件所在目录搜索 #include "stdlib.h" // 编译系统首先在当前的源文件目录中查找 stdlib.h,找不到的话,再转向系统头文件所在目录搜索引用系统头文件时,使用两种形式都可以,但是 #include <> 的…...

AFL++环境搭建

第 1 步:更新软件源并安装基本工具 首先更新软件包列表 sudo apt update 升级现有软件包 sudo apt upgrade -y 安装基本编译工具(包括gcc) sudo apt install -y build-essential 安装Python3和相关工具 sudo apt install -y python3 python3-dev python3-pip 创建python符号…...

晚安

cai~一定是做梦,不然还能是什么,对不对? 总之就是梦到一年前的自己对我说话: 第一句:变菜了 第二句:本来就挺菜 然后开始大笑,前车窗上晃动着一双眼睛,小,但是不瞎。...

读人形机器人12体育领域

读人形机器人12体育领域1. 体育领域 1.1. 在体育竞技这个不断挑战人类极限的领域,人形机器人正以教练和训练助手的身份进入 1.2. 由金属材料、代码和AI技术打造的机器人,正在革新运动员的训练方式、恢复过程和竞技表现 2. 个性化训练计划 2.1. 追求卓越的运动表现既是一门科学…...

【QT】C++基础

前言 目前打算一周内学习QT的基本使用,从此篇"C++基础"文章开始记录分享学习经验。 C++及其各种定义C++是面向对象的,什么是面向对象,什么是面向过程? 举例 计算a+b的值: C语言,直接计算a+b;C++,先将a+b封装,封装到类里面形成一个方法,然后再通过这个类去…...

安全研究者的MCP服务器宝典:BugBounty工具集锦

本资源库汇集了多个专为漏洞赏金、渗透测试和信息安全研究设计的MCP服务器,提供一站式安全工具整合,帮助安全专业人员高效开展授权安全测试和研究工作。BugbountiesMCP 一个专为漏洞赏金、渗透测试和信息安全研究设计的Model Context Protocol (MCP) 服务器综合列表资源库。 …...

Unity的VisualStudio工程链接不同步、显示异常处理方法

前段时间,在某次更新项目工程后,原本好好的VS工程,变得不认Unity_Editor的宏、Using显示不正确了,一般来说,这个在Unity使用中,很常见,通用解决办法是:在Unity的Extrenal Tool里有一个Regenerate的按钮,直接重新生成解决方案。 关了Unity工程,到路径里把sln和proj这些…...

Java 高性能与可维护性实战:从语言特性到工程化全链路

一、设计目标:为什么“快”和“稳”必须同时追 在真实业务里,“快”(吞吐、延迟)与“稳”(可维护、可演进)往往拉扯。高性能带来的复杂度不应成为维护负担,而可维护的抽象也不应牺牲关键路径。可落地的目标是:可预测性能:接口在 SLA 下延迟稳定,P95/P99 可控。渐进式…...

二叉树的递归遍历

前中后序的递归遍历 递归算法的三要素确定递归函数的参数和返回值:要确定哪些参数是递归过程中需要处理的,需要处理的就在递归函数里面加上这个参数;然后确定每次返回的递归值是什么; 确定终止条件:必须写终止条件;如果不写终止条件就会栈溢出; 确定单层递归的逻辑: 确…...

我的大学成长与规划

大家好,我是李思慧,一名计算机科学与技术专业的大二学生。生活里,我是个爱折腾的人,喜欢在文字的世界里遨游,也热衷于用视频和图片记录生活、表达创意。 在信工分团委宣传部当干事到现在的部长,是我成长很快的一段时光。从最开始跟着学长学姐学习写各种活动和通知的推文,…...

【笔记】拉格朗日插值

拉格朗日插值的推导对于一个 \(n\) 次多项式 \(f(x) = \sum_{k = 0}^n a_kx^k\),我们只要知道它在 \(n+1\) 个不同点处的取值,就可以进一步解出它的系数 但使用高斯消元法的时间复杂度是 \({\cal O}(n^3)\) 的,如果我们只是想知道这个多项式在某一点 \(x\) 处的值,希望有复…...

自定义渲染管线(Unity Cocos)

参考链接: 团结引擎 - 手册: 在自定义渲染管线中创建简单渲染循环 可定制渲染管线(Deprecated) | Cocos Creator Custom SRP - Custom Render Pipeline | 三叔的数字花园 自定义渲染管线_Unity SRP从零搭建一套图形渲染管线_UWA学堂(翻译的Catlik,还收费) Unity Custom S…...

这是一个测试

这是一个测试...

文献阅读 | Survey of Hallucination in Natural Language Generation

问题描述 本文主要讲了NLG中的幻觉现象 幻觉定义:模型生成不忠实于源内容或无意义的文本 幻觉分类:内在幻觉(矛盾、完全错误的)、外在幻觉(无法被验证) 幻觉危害:隐私泄露 成因:评估指标:统计 metric:基于 n-gram 重叠,如 PARENT(结合源和目标)、Knowledge F1(对…...

技术 | LLaMA Factory微调记录重修版

之前投的那篇教程我自己回看一遍都不太搞得明白,从新梳理一遍 1. 云服务器准备 恒源云 (gpushare.com) 配置建议:GPU: RTX 3090 (24GB) 或 RTX 4090 (24GB) 系统: Ubuntu 20.04/22.04 存储: 至少 50GB 空间2. 环境检查与初始化 # 检查GPU状态 nvidia-smi# 检查系统信息 df -h…...