
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文介绍了现代glibc(2.34+)中堆漏洞利用技术HouseofPig,该技术通过结合Tcache投毒和IO_FILE结构体伪造,在移除__free_hook后仍能实现控制流劫持。文章详细剖析了_IO_str_overflow函数的关键漏洞点,阐述了如何精心构造伪造的IO_FILE_plus结构体,利用TcachePoisoning控制malloc返回目标地址,最终通过memcpy写入ROP链
本文基于CLion 2026.1对C++23新特性std::expected与协程优化进行深度评测。通过微信红包系统和游戏抽卡系统等真实案例,展示了std::expected在类型安全、零开销错误处理方面的优势,以及其与协程结合构建现代化异步编程体系的效果。测试显示,std::expected相比传统异常处理在性能上提升显著(失败路径快586倍)。CLion 2026.1对C++23支持良好,提供
摘要:本文详细分析了在Ubuntu虚拟机中运行OpenAICodexCLI时沙箱初始化失败的解决方案。主要原因是bubblewrap工具因Linux内核未启用非特权用户命名空间和AppArmor安全模块拦截而无法正常工作。解决方法包括:1)启用内核参数允许用户命名空间;2)解除AppArmor对非特权用户命名空间的限制;3)提供备用方案即在虚拟机环境中直接禁用沙箱功能。文章提供了从检查安装到完整修
摘要:本文探讨了当程序缺乏后门函数时,如何通过Shellcode注入实现攻击,重点介绍了NX保护关闭时的栈上Shellcode技术。核心挑战在于ASLR导致的栈地址随机化,解决方案是利用jmpesp(32位)或jmprsp(64位)指令动态定位Shellcode。文章详细解析了32位环境下jmpesp的利用流程,包括查找指令地址、构造Payload及实战示例,并指出64位需注意寄存器传参差异。该技
摘要:本文详细分析了在Ubuntu虚拟机中运行OpenAICodexCLI时沙箱初始化失败的解决方案。主要原因是bubblewrap工具因Linux内核未启用非特权用户命名空间和AppArmor安全模块拦截而无法正常工作。解决方法包括:1)启用内核参数允许用户命名空间;2)解除AppArmor对非特权用户命名空间的限制;3)提供备用方案即在虚拟机环境中直接禁用沙箱功能。文章提供了从检查安装到完整修
摘要:本文详细分析了在Ubuntu虚拟机中运行OpenAICodexCLI时沙箱初始化失败的解决方案。主要原因是bubblewrap工具因Linux内核未启用非特权用户命名空间和AppArmor安全模块拦截而无法正常工作。解决方法包括:1)启用内核参数允许用户命名空间;2)解除AppArmor对非特权用户命名空间的限制;3)提供备用方案即在虚拟机环境中直接禁用沙箱功能。文章提供了从检查安装到完整修
本文通过分析musl libc中5行代码的read()实现,揭示了系统调用的本质。文章指出read()并非直接调用操作系统,而是通过libc封装层syscall_cp进入内核,其中_cp表示支持线程取消点。对比了musl(精简设计)和glibc(多层封装)的不同实现风格,解释了系统调用号、用户态/内核态切换过程,并列举了read()常见的三大使用误区(未读满缓冲区、EOF判断、EINTR处理)。最
这篇文章解析了C语言中putchar函数的核心实现机制。通过一个典型的自定义putchar实现(将输出重定向到do_putc函数),揭示了C语言I/O系统的分层设计思想:标准接口(如putchar)作为应用层,通过适配层(如do_putc)桥接到底层硬件驱动。文章对比了putchar与fputc的区别,解释了参数使用int而非char的原因(兼容EOF和整数提升),并指出这种自定义实现常见于嵌入式
摘要:musllibc的__fwritex函数以不到50行代码实现了高效文件写入功能,核心设计包括:1)行缓冲机制(遇到换行符即flush);2)延迟分配策略(不写不分配缓冲区);3)大数据直写(避免二次拷贝);4)零拷贝memcpy优化。相比glibc的200+行实现,musl通过精简指针运算和逆向查找换行符等设计,在保证功能完整性的同时显著提升性能。该函数完美体现了musl"够用就好
这段30行的x86_64汇编实现了一个高效memcpy函数,核心策略是:先通过逐字节搬运对齐目标地址(最多7次),再用repmovsq批量搬运8字节块,最后处理剩余字节。相比glibc的复杂多版本实现,musl采用极简设计——小数据(<8B)直接走movsb避免rep开销,对齐后的大数据用repmovsq达到接近内存带宽的吞吐。关键点包括:严格遵循System V ABI寄存器约定、利用te







