1. 内核内存管理-虚拟地址到物理地址转换实验

    虚拟地址是如何一步步转为物理地址的?用户态程序运行时,访问内存的指令,cpu在运行时会根据CR3寄存器的值一步步查询到最终的物理地址,这一过程是由MMU自动完成的。虚拟地址到物理地址到底是如何转换的?借助qemu我们可以通过实验查看整个转换过程是如何工作的。

    2025/01/21 kernel

  2. 拿到了pwn.college蓝带

    pwn.college是在ASU大学教授同时也是知名Hacker的Yan教授领导下,搭建的Hacker学习/训练平台。平台是由一个个的Dojos构成的,每一个Dojo都是一个CTF的challege,拿到flag才算完成这个Dojo。学习内容涉及了从网络安全基本知识,基本web、密码基础,到堆栈ROP利用,到Y85 virtual machine,到内核漏洞利用,内容量很大,主要是二进制安全。是二进制安全领域,非常难得的最为全面、最成体系的学习资料。

    2024/11/17 security

  3. OS command injection

    有些应用是通过后台执行OS 命令实现的(如shell), 像导出tech-support文件. 如果又使用了用户输入作为命令的一部分就很容易出现命令注入(command injection)漏洞。

    2024/11/14 security

  4. eBPF verify 分析

    load

    2024/11/04 eBPF

  5. eBPF tailcall

    什么是Tail-call “tail-call”(尾调用)是指一个函数在执行结束时,最后一步调用的是另一个函数,且该调用的返回值直接作为当前函数的返回值。简单来说,就是当前函数的最后一步是调用另一个函数,并将该函数的返回值返回给当前函数的调用者,而不需要在当前函数中进行其他的操作。

    2024/11/04 eBPF

  6. eBPF常见功能总结

    不仅要在所有地方hook,还要在那里可编程,eBPF让一切成为现实,而bpftrace让这一过程变的简单。

    2024/10/31 eBPF bpftrace

  7. elastic otel profiling agent 代码分析

    OTel profiling agent 基于eBPF,实现了全系统跨语言的性能分析器。这个项目使用eBPF,可以抓取到详细的用户态调用栈。具有几个令人惊讶的优点: 几乎可以支持任何语言开发的目前程序,目前支持C/C++、Go等编译性语言,也支持Java、Python、Perl等解释性语言; 安全性高,实现方式不需要在目标程序能hook嵌入代码; 性能高,性能开销小于1%; 调用栈的unwind能力也很强,没有frame pointer和debug信息的情况,使用eh_frame辅助获取完整栈信息。 目前,项目迁移到这里 (贡献给opentelemetry了)。 本文简单分析下,它是如何做到的。

    2024/08/12 eBPF

  8. qemu&kvm学习笔记

    QEMU (Quick Emulator) is an open-source machine emulator and virtualizer. It enables users to run operating systems and programs designed for one architecture on a different architecture.

    2024/07/31 qemu kvm

  9. Golang GC 文件回收

    gc 会回收文件吗(os.File)? 会的,可以写一个函数循环open文件,可以计算出到资源限制open失败前总共可以打开多少文件。紧接着调用GC,并再次循环open文件,如果GC回收文件,则第二次循环应该和第一次循环打开同样数量的文件。

    2024/01/19 eBPF

  10. eBPF 1分钟介绍&发展历史

    eBPF的出现有其技术发展上的必然性。虚拟化的发展,特别是网络虚拟化的发展,使得技术异常的复杂,定位解决问题变得非常困难。最开始设计eBPF的人,可能也没预料到有如此大的应用和影响。有个人为了解决自己公司的问题,发明了一种语言,后来又合入到了主线,这就是eBPF。

    2023/11/30 eBPF