- 博客(28)
- 资源 (3)
- 收藏
- 关注
原创 Syzkaller实战教程11: strace捕获种子及syzkaller适配演示
Strace是Linux系统中强大的诊断调试工具,可追踪程序系统调用。它能在无源码情况下定位问题,适用于程序运行失败、系统调用过程查看等场景。常用参数包括:-c统计调用信息、-f跟踪子进程、-e指定跟踪类型(如文件、网络等)。实践案例展示了如何通过"strace -e trace=open"命令发现域名解析失败是因libnss_dns.so.2文件缺失所致,通过重装glibc-devel包解决问题。该工具为系统运维提供了有效的故障排查手段。
2025-08-11 10:25:02
349
原创 大模型Agent小白入门:一文带你看懂Agent开发的核心—— MCP 协议
MCP协议:智能时代的"万能翻译官"MCP协议(ModelContextProtocol)是Anthropic公司推出的智能体通信标准,旨在解决不同智能设备间的"语言不通"问题。该协议采用客户端-服务器架构,通过动态灵活的交互方式,让智能家居、自动驾驶等设备能像联合国代表一样顺畅交流。
2025-08-11 10:18:17
301
原创 Syzkaller实战教程10: MoonShine复现&Trace2syz功能演示
Moonshine是哥伦比亚大学团队开发的Syzkaller改进项目,通过静态分析系统调用依赖关系,提炼出高效测试种子以提升内核模糊测试效率。核心功能包括:1)从280万系统调用中精炼出1.4万个关键调用,保留86%覆盖率;2)使Linux内核覆盖率平均提升13%,发现17个新漏洞;3)采用Go语言开发,依赖Ragel和Goyacc进行数据解析。复现环境需配置Ubuntu 20.04、Go 1.11.13及特定版本Syzkaller,通过strace采集系统调用跟踪后,使用moonshine工具链进行种子蒸
2025-08-07 16:20:48
723
原创 Syzkaller实战教程9: 获取种子的AST-Like格式
本文详细解析了Syzkaller模糊测试工具的核心数据结构AST-Like格式及其转换流程。首先介绍了Syzkaller定义的Prog、Call和Arg三种结构体,它们分别表示程序整体、系统调用和参数。然后阐述了Trace2syz工具将strace日志转换为Syzkaller程序的步骤,包括系统调用转换、参数处理和内存分配等关键环节。重点分析了syz-db工具对corpus.db的解包过程及其输出的五种格式:人类可读的文本格式(txt)、结构化JSON格式、内部表示格式(TXT)、统计信息(target)
2025-08-07 16:06:23
829
原创 Syzkaller实战教程8:25年最新版本Syzkaller核心代码解读
本文分模块解读了syzkaller-25年最新版本代码的功能,对于初学者了解syzkaller的底层实现原理具有重要作用。以下是其核心功能的摘要: 程序表示与执行使用AST-LIKE结构描述系统调用序列(prog.go) 序列化为不可逆二进制格式(encodingexec.go)供executor执行 executor.cc负责实际执行并捕获崩溃和覆盖率 测试程序管理 corpus.go存储程序集合,包含信号和覆盖率信息种子程序管理(seed.go)和数据库操作(corpus.go)等。
2025-08-06 10:20:03
997
原创 Syzkaller实战教程7:手动采集代码覆盖率并使用
本文详细解析了syzkaller代码覆盖率收集的完整流程,介绍了关键数据结构,并通过实例演示了如何手动收集和使用覆盖率数据。掌握这些知识,有助于开发者和安全研究人员更深入地理解syzkaller的工作原理,读者可以亲自上手依据自己的思路改造syzkaller达成默认框架无法实现的效果,以验证idea的可行性。
2025-08-06 09:18:24
713
原创 Syzkaller实战教程6:[重要]初始种子加载机制剖析第二集
摘要:本文深入分析了新版syzkaller模糊测试工具的多队列任务调度机制。其核心execQueues结构包含四个优先级队列:triageCandidateQueue(高优候选程序分析)、candidateQueue(普通候选程序)、triageQueue(信号分析)和smashQueue(暴力变异)。初始种子通过AddCandidates加载到candidateQueue,执行发现新信号后转入triageCandidateQueue分析确认。
2025-08-01 21:15:12
661
原创 Syzkaller实战教程5: 初始种子加载机制剖析第一集
本文分析了Syzkaller模糊测试工具在不同版本的初始种子加载机制。25年新版本通过corpus.db加载种子后,经过稳定的优先级排序,使短程序优先执行;而旧版本通过workQueue管理候选种子。文章详细解析了manager.go、corpus.go、prio.go和seed.go等核心模块的功能,包括语料库管理、优先级调度和种子加载流程。特别比较了内存工作集和持久化corpus的区别,指出运行时的模糊测试主要基于内存中的验证种子。
2025-08-01 10:30:51
1019
原创 Syzkaller实战教程4:用官方神器Syzbot收集高价值POC
本文介绍了syzbot自动化内核模糊测试系统及其POC生成机制。syzbot是基于Google开发的syzkaller工具,能持续测试Linux内核各分支,自动报告crash并跟踪修复状态。系统通过虚拟机实例运行测试,提供详细的错误报告,包括调用栈、寄存器状态等信息,并生成精简的POC(概念验证)代码。POC在漏洞验证、定位和修复中起关键作用,具有精简性、可复现性和针对性等特点。
2025-07-31 19:57:57
980
原创 Syzkaller实战教程3: [重要]挖掘你的第一个0day漏洞
本文介绍了Syzkaller内核模糊测试工具的使用流程,主要包括三部分内容:1. 测试内核的更新与配置方法,从内核下载、编译配置到常见错误处理;2. crash结果分类流程,指导如何收集和验证潜在0day漏洞;3. crash复现技术,详细说明如何使用syz-repro工具生成复现程序,并通过syz-execprog进行验证。文章提供了完整的配置参数、实用脚本和常见问题解决方案,涵盖了从环境搭建到漏洞验证的全过程,为内核模糊测试工作提供了系统的技术参考。
2025-07-31 19:33:17
719
原创 Syzkaller实战教程2:运行环境配置+实例运行
本文详细介绍了在linux系统上搭建Syzkaller内核模糊测试环境的完整流程。 1.环境配置:通过VMware创建Ubuntu20.04虚拟机A,配置QEMU/KVM虚拟化环境,安装Go语言工具链和Syzkaller;2.内核编译:下载Linux内核源码并配置KCOV等调试选项,编译生成带覆盖率支持的bzImage内核镜像;3.测试环境构建:使用debootstrap创建Debian虚拟机镜像,通过QEMU启动嵌套虚拟机B; 实例测试:4.演示两种测试场景 - 提供完整上手教程
2025-07-30 22:12:56
794
原创 Syzkaller实战教程1:核心概念及运行机制剖析
本专栏实战教程旨在帮助读者系统性地学习Syzkaller模糊测试框架,从基础概念到实际应用,逐步掌握漏洞挖掘的核心技能。通过本教程的学习,读者将能够深入理解Syzkaller的工作原理,并具备独立开展漏洞挖掘的能力。作为教程的第一篇博客,本文详细介绍了Syzkaller的基础概念及工作机制,并对主要功能源码和许多易混淆的概念进行了具体分析,对于读者理解Syzkaller具有重要意义。
2025-07-30 21:54:38
1081
原创 基于seq2seq的机器翻译系统
本文介绍了seq2seq模型的原理,并基于seq2seq构建了一个机器翻译系统,通过代码和注释对seq2seq的实际应用进行了较为详尽的分析,对于transformer和LSTM的学习皆有一定帮助,可供读者参考。
2022-10-02 16:15:13
2206
2
原创 PySimpleGUI库创建python代码的图形窗口
本文介绍了针对python代码创建图形交互窗口的一种常用库PySimpleGUI,通过代码和实例进行了讲解
2022-10-02 16:02:49
2293
原创 Transformer模型入门详解及代码实现
本文对Transformer模型的基本原理做了入门级的介绍,意在为读者描述整体思路,而并非拘泥于细微处的原理剖析,并附上了基于PYTORCH实现的Transformer模型代码及详细讲解。
2022-08-26 12:04:42
16364
2
原创 电影知识图谱和基于模板的问答系统构建
参考目前网络上开源的医疗问答系统等项目,对基于neo4j的知识图谱构建及基于人为指定模板的问答系统构建进行了整理,笔者对代码进行了较为详尽的注释,供读者参考。
2022-07-16 09:50:57
2811
3
原创 conda install 和 pip install的区别
conda和pip一般被认为是几乎相同的,但这两个工具虽然功能存在部分重叠,但其设计的目的是不同的。
2022-07-03 20:47:02
10488
原创 anaconda创建虚拟环境及jupyter使用者的注意事项
网上已经有了许多关于anaconda创建虚拟环境的教程,笔者在整理了相关内容后,增加了jupyter使用者在创建虚拟环境后,无法找到新创建虚拟环境的解决方案。
2022-07-03 20:42:51
1125
原创 numpy,pandas,matplotlib三种常用库的知识点摘要以及程序练习
内容包含numpy,pandas,matplotlib三个包的知识点摘要和程序练习
2022-06-29 20:31:14
727
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人