- 博客(27)
- 收藏
- 关注
原创 Unsortedbin attack与Unlink
简单来说就是smallbin或者unsortedbin中的堆块合并后要进行脱链(两个堆块合并成一个了)要修改其fd和bk指针,通过伪造fd和bk指针使得其修改的指针写在我们想让他写的地方,但在有保护后就只能往原堆块的链表地址内写入原堆块的链表地址-0x18的效果了(比如有一串链表管理堆,*链表上的地址就是堆的地址,那这样的效果就是 *链表上的地址==链表上的地址-0x18)。可以看到成功在我们指定的地方改出来了一个很大的数,演示的脚本如下。有后门,但是free置空了,没有uaf。
2026-04-05 13:24:12
231
原创 从 TypeScript 到 C#:Codex SDK 的跨语言移植实践
将一个成熟的 TypeScript SDK 移植到 C#,不仅仅是语法层面的转换,更是对两种语言设计哲学的理解。TypeScript 的灵活性和 JavaScript 生态特性(如 AbortSignal)在 C# 中需要找到对应的替代方案。这其中的酸甜苦辣,大概也只有真正做过的人才能体会。保持 API 的一致性比保持实现细节的一致性更重要。用户关心的是接口是否易用,而不是内部实现是否相同。这话听起来简单,但做起来需要取舍。
2026-04-05 13:23:23
392
原创 教你一招解决百度统计被恶意刷量和关键字的办法
常规网站程序都配置有 web.config 文件,可以将拦截规则写在这里;或是在 web_config/rewrite.config 里写的,二者按个人情况选其一即可。-- 拦截所有包含 ad= 的查询参数的请求 -->-- 以下是你原有的外部配置文件引用,保持不变即可 -->-- ===== 新增规则:拦截包含恶意参数 ad= 的请求 ===== -->,拦截拒绝这类的访问请求即可。那么我们只需要配置网站的。
2026-04-04 13:14:05
188
原创 从梯度下降到神经网络学习
因为它是连续可微的函数,能量化模型预测与真实标签的差异,其梯度可指导参数沿“减小误差”的方向更新;因为神经网络学习的目标是最小化损失函数,负梯度方向是损失函数值减小最快的方向,沿该方向更新参数能高效逼近损失函数的最小值(或局部最小值)。通过调整未知的权重参数和偏置参数,最小化损失函数的值,让模型具备对测试数据的泛化识别能力,实现模型对未知数据的稳定预测。在几何意义上,梯度是损失函数在当前参数点处的方向导数最大值方向,即函数值增长最快的方向,其模长表示增长的速率。**Q3. 为什么必须引入非线性激活函数?
2026-04-04 13:13:28
398
原创 拆解 OpenHands(6)--- 事件系统
每一个Eventid: 事件的唯一标识符。source: 事件的来源,可以是AGENTUSER或。timestamp: 事件发生的时间戳。cause: 触发此事件的另一个事件的id。将系统中的所有互动都抽象为Event,我们得到了一种通用的语言。无论是Agent的决策、用户的消息还是环境的反馈,都可以统一处理、存储和分发。特别是cause字段,它像一条看不见的线,将Action和它引起的Observation紧密联系起来,形成了ReAct循环的因果链,这对于理解和调试Agent的行为至关重要。
2026-04-03 13:36:28
416
原创 快速集成A2A Agent
这个Tool对应到MAF中就是一个对象。前面我们提到可以将MCP服务也封装为一个Tool(AIFunction)让Agent调用,这里A2A Agent也是一样的道理。。下面的代码展示了在MAF中将A2A Card转换为Agent,然后再将Agent转换为AIFunction:............下面是AgentFunctionHelper类的代码实现:?[])}}]",?[])}}]",?[])}}]",?
2026-04-03 13:35:48
398
原创 Kotlin实现Ble低功耗蓝牙设备连接
低功耗蓝牙是4.0版本起支持的蓝牙协议,主要特点是低功耗,传输速度快,传输数据量小的特点。工作在2.4GHz 频段,使用调频扩频实现抗干扰。支持广播+点对点快速连接。
2026-04-02 13:50:44
372
原创 深入理解 C#.NET TaskScheduler:为什么大量使用 Work-Stealing
NET默认任务调度体系之所以大量使用,本质上不是因为它“高级”,而是因为它在多核并行里足够务实。单一全局队列的竞争太重;任务执行需要尽量保住局部性;负载不均必须能动态修正。让“本地执行”成为主路径,让“跨线程抢活”变成低频补救;它同时兼顾了吞吐量、局部性和动态负载均衡;本地LIFO与跨线程窃取分端操作,是它高性能的重要细节;它不是追求绝对公平的调度,而是追求更高的整体效率。
2026-04-01 14:28:46
372
原创 Java 全JT/T808 数据类型 + 校验码 + 转义 + 分包
/ ===================== 基础类型 =====================// ===================== 校验码 =====================// ===================== 编码 =====================// ===================== 解码 =====================// ===================== 转义 =====================
2026-04-01 14:27:52
386
原创 使用IronPython检测ASP.NET程序状况(上)
只是这么一个简单的功能,我们便可以做很多事情,例如使用反射改变某个对象的状态,甚至调用系统中某个方法进行复杂的工作。使用ASP.NET的传统机制,例如HttpModule,Trace,往往需要修改配置和部署新的程序集,这样一不小心便会造成应用程序的重启。因为我们可以使用的工具大都非常抽象,即使是一个非常微小的问题,也要用较多的时间才能发现“哦,原来是这个变量的值进入了一种奇怪的状态”。在下一篇文章中,我们将使用类似的做法,对系统中的请求进行采样,以获取更加丰富的数据——那是一件更有意思的事情.
2026-03-31 14:51:11
385
原创 通过CLR同步SQL Server和Sharepoint List数据(三)
将执行SQL的语句写在里面,代码中设置好断点,直接点击F5,Visual Studio就会根据你写的SQL脚本执行,并自动命中断点进行调试。使用SQL CLR的过程中可能还会遇到很多奇怪的问题,我在项目中使用CLR时就遇到了很多莫名其妙的问题,通过查帮助文档和Google,后来问题基本都解决了。还有一点需要注意,调试前必须设置断点,SQL CLR集成编程中代码一旦出现错误会自动跳出,而不指向出错的代码行,但在SQL Server端执行的时候CLR还是会给出错误内容的。CLR集成编程中遇到的问题。
2026-03-31 14:50:32
350
原创 Microsoft Agent Framework 详解与实践
工作流是一种图形化的执行流程,它可以连接多个AI代理和函数来执行复杂的多步骤任务,同时保持一致性和可靠性。// 模拟数据库查询return $@"订单信息查询成功:- 订单号:{orderId}- 客户姓名:张三- 产品:Surface Laptop 5- 状态:已发货- 物流单号:SF1234567890";return $@"退款申请已成功提交:- 退款单号:{refundId}- 订单号:{orderId}- 退款原因:{reason}
2026-03-30 14:47:40
445
原创 插件系统如何让 OpenClaw 变成最得力的私人助理
它擅长把外部能力(数据库、GitHub、内部 API)变成模型可用的接口,协议层也是为此设计的——JSON-RPC,请求-响应,跨进程隔离,跨语言复用。Teams 的 Bot Framework 回调、Matrix 的 room sync、电话的实时音频流——这些都不是"模型决定要不要处理",而是"必须有人一直在那儿接着"。把邮件/日历的数据拉取做成 MCP tools,插件只做"触发 + 格式化 + 投递"——这就是前面说的分层:Plugin 管入口和生命周期,MCP 管可复用的业务工具。
2026-03-30 14:46:59
442
原创 SequenceInputStream的源码和Vector.class的一些函数说明(windows操作系统,JDK8)
Vector 与 ArrayList 一样,也是通过数组实现的,不同的是它支持线程的同步,即某一时刻只有一个线程能够写 Vector,避免多线程同时写而引起的不一致性,但实现同步需要很高的花费,因此,访问它比访问 ArrayList慢。那么,SequenceInputStream对象中Vector集合的容量是2,如果此时执行SequenceInputStream.class::read()函数。下面这个例子就恰当的使用SequenceInputStream的read()函数;
2026-03-29 14:54:54
403
原创 驱动中阻塞相关函数的基础
将之前通过 add_wait_queue 添加的等待队列项从等待队列中移除;该宏创建一个 wait_queue_entry 类型的变量,并将指定的进程描述符 tsk (当前进程为 current )与该队列项关联,同时设置默认的唤醒函数。.private = current, // 指向等待的进程 task_struct。/* 阻塞写等待队列头 *//* 字符设备 */
2026-03-29 14:54:17
373
原创 回文自动机 PAM 学习笔记
所形成的字符串,设其所需操作次数为 �(�)f(T),那么剩下的暴力操作非常好计算,总次数就是 �−∣�∣+�(�)n−∣T∣+f(T),在所有偶回文子串中选一个最小的就可以了,这些回文子串都可以在 PAMPAM 上存储。问题转化为如何计算一个偶回文子串的最小操作次数。首先对于这个偶回文子串,最后一步。
2026-03-28 14:39:44
247
原创 python-langchain框架(1-9 返回字符串列表-格式解析器)
CommaSeparatedListOutputParser专用于解析逗号分隔的文本,自动处理空格、引号等边界字符,输出类型为List[str]。提示词设计必须显式约束输出格式。通过partial_variables注入格式指令(如"内容1, 内容2, 内容3"),引导模型生成符合解析器要求的纯列表文本。段代码演示了如何使用LangChain将大语言模型的自由文本输出转换为结构化的字符串列表。核心目标是让模型返回逗号分隔的多个值,并通过专用解析器自动拆分为Python列表。
2026-03-28 14:38:36
203
原创 Julia, 科学计算与高性能编程语言
数值模拟 & HPC(Julia 在易用性和性能间取得最佳平衡)数据探索 & 统计分析深度学习研究微分方程求解:Julia > MATLAB ≈ Python > R > Fortran(除非手写)教学与快速原型生产部署:Python > Julia(正在追赶)> MATLAB(许可证问题)> R > Fortran高性能:JIT编译,接近C/Fortran性能易用性:语法简洁,类似Python/MATLAB全栈统一:一个语言完成从数据处理到部署的全流程生态整合:包之间无缝集成,API统一开源社区。
2026-03-27 13:34:07
666
原创 TCP三次握手与四次挥手:两个“社恐”程序的破冰与告别仪式
TCP三次握手与四次挥手,本质都是围绕“可靠传输”设计的流程:三次握手通过双向确认,确保双方通信能力正常,为数据传输铺路;四次挥手通过分步确认,确保双向数据流都已终止,避免数据丢失或残留。
2026-03-27 13:32:42
367
原创 Grafana Loki自动监控日志
微软这门课的定位不太一样,它聚焦在 AI Agent 开发这一个方向上,从概念到落地讲得非常细,适合想动手搞 Agent 的同学。Agent 开发的前提是你得先会用 AI 写代码,如果你连 AI 编程(Vibe Coding)的基本功都还没练过,直接啃 Agent 课大概率会卡在代码层面。建议想学 AI Agent 开发的朋友们,先把 AI 编程能力培养起来,做出几个项目练练手,等你能独立用 AI 写代码了,再来学 Agent 开发的工程化内容,效果会好很多。但问题是,到底怎么开发 Agent 呢?
2026-03-26 14:10:03
247
原创 EF Core自定义映射PostgreSQL原生函数
微软这门课的定位不太一样,它聚焦在 AI Agent 开发这一个方向上,从概念到落地讲得非常细,适合想动手搞 Agent 的同学。Agent 开发的前提是你得先会用 AI 写代码,如果你连 AI 编程(Vibe Coding)的基本功都还没练过,直接啃 Agent 课大概率会卡在代码层面。建议想学 AI Agent 开发的朋友们,先把 AI 编程能力培养起来,做出几个项目练练手,等你能独立用 AI 写代码了,再来学 Agent 开发的工程化内容,效果会好很多。但问题是,到底怎么开发 Agent 呢?
2026-03-26 14:03:05
213
原创 V4L2 vs GStreamer vs FFmpeg:Linux多媒体处理的三个层级
V4L2:Linux 访问摄像头的底层标准接口(驱动层)GStreamer:构建视频处理流水线的应用框架(框架层)FFmpeg:强大的多媒体工具箱(工具层)技术核心价值一句话描述V4L2统一硬件访问Linux 上访问摄像头的唯一标准方式GStreamer灵活流水线处理构建复杂多媒体应用的框架FFmpeg强大编解码能力处理多媒体文件的瑞士军刀。
2026-03-25 13:57:28
431
原创 spring6-代理模式和AOP
如果是代理接口,则使用jdk动态代理,如果代理某个类,则使用cglib。动态代理还是代理模式,只不过是在内存中为我们动态的生成一个class字节码,这个字节码就是代理类。常见的动态代理技术有:JDK动态代理(只能代理接口)、CGLIB动态代理、Javassist动态代理。静态代理的缺点:假设系统中有上千个接口,每个接口都需要写代理类,这样类的数量会急剧膨胀,不好维护。如果使用代理模式的话,客户端程序是无法察觉的,客户端在使用代理对象的时候就像在使用目标对象。在程序执行流程中,可以织入切面的位置。
2026-03-25 13:56:22
401
原创 告别 throw exception!为什么 Result<T> 才是业务逻辑的正确选择
public T?Result 不是银弹,它有它适用的场景,也有相应的一些弊端。选择的关键不在于哪个"更好",而在于哪个"更适合"当前的场景和约束。明智的工程师会根据具体情况做出平衡的选择。高频失败的校验逻辑(表单验证、业务规则检查)需要明确错误分类的业务流程API边界(需要结构化错误响应)与外部系统交互(需要处理各种失败模式)需要组合的复杂业务逻辑真正的系统故障(内存不足、数据库崩溃)程序状态异常(空引用、索引越界)不满足前置条件(无效参数)开发阶段的断言检查。
2026-03-24 12:48:17
231
原创 .NET+AI | Workflow | 核心概念速通(1)
Executor(执行器)是 Workflow 中的最小工作单元类比说明🧑🏭 工厂里的工人每个工人负责一道工序🧱 乐高积木块每个积木有特定功能,组合成整体🔌 电路中的元件接收输入信号,输出处理结果Edge(边)是连接两个 Executor 的消息通道类比说明🏭 工厂传送带把上一道工序的产品传送到下一道工序🔗 水管把水从一个容器引导到另一个容器📨 邮路把信件从发件人送到收件人Workflow(工作流)是将多个 Executor 通过 Edge 连接起来的完整流程定义类比说明。
2026-03-24 12:47:38
217
原创 从单系统架构到微服务架构:软件现代化的转型综述
服务在独立进程中运行,并通过轻量级、明确定义的机制进行通信以实现业务目标。尽管文献中已识别出诸多优势,但 MSA 的采用仍被视为重大挑战,无论是在开发新系统还是软件现代化方面。关于软件现代化问题,研究表明,组织对采用 MSA 持抵触态度。还有研究表明,向微服务架构的转型绝非单纯的技术决策,必须与系统最初设计的业务目标保持一致。因此,仓促的技术决策可能导致过度拆分,这种做法虽然有利于实现自主性,却往往忽视了业务层面的影响,而这种影响通常具有负面效应。传统系统进行微服务架构的转型存在技术与业务双重挑战。
2026-03-23 14:13:17
351
原创 Magnitude:强!一款基于 Al 视觉的 Web 自动化框架
Magnitude 是一款基于AI视觉 的 Web 自动化框架,它彻底摆脱了传统自动化工具对 DOM 结构的依赖,通过模拟人类视觉和交互方式来操控浏览器。简单来说,它不是通过查找元素的 ID 或类名来操作页面,而是像人一样 "看到" 界面并做出反应。Magnitude的革命性在于:它不依赖DOM,而是直接“看”屏幕!就像人类通过视觉识别按钮、输入框一样,它通过像素坐标来定位和操作元素。💡这意味着:无论网站如何重构,只要视觉元素存在,Magnitude就能找到它,大大提高了自动化的鲁棒性和通用性。
2026-03-23 14:12:30
497
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅