1. 一次勒索病毒中招记录

    在寻找一个可以将手绘流程图转变成draw.io或visio流程图的软件时,在一个经常上的blog网站的评论区里,看到一个类似的软件。下载后安装,紧接着发现中招。安装中想着不行就停掉,安装后发现常规手段停不掉,紧接着发现文件被加密。

    2023/09/24 病毒

  2. eBPF:hello world

    有许多用libbpf或者go-bpf写的eBPF例子,python等别的语言的也有很多。这些都不够直观,代码都经过了层层包装,不能很好的明白eBPF是怎么工作的。 本文用最原始最直接的方式展示eBPF是如何工作的 — 用eBPF字节码写一个“hello world”。

    2023/07/15 eBPF

  3. linux signal sender

    程序经常收到SIGTERM退出,一直没查明白SIGTERM是谁发送的。signal函数注册的处理函数只接收到signum,不知道发送者是谁。一番查找发现sigaction函数注册的sa_sigaction回调函数,有siginfo_t结构,查看man其中的si_pid就是发送者的pid。

    2022/08/16 linux

  4. Go性能:与C比较

    这篇是”理解Golang”系列的第一篇,主要涉及Go在性能方面的一些特点。接下来的几篇涉及scheduler、routine、chan的具体实现。

    2022/08/06 Go

  5. 云市场 - Google/Aliyun/AWS market

    AWS marketplace

    2016/02/26 idea

  6. Gas

    汇编学习 - GAS hello world layout: post title: 汇编学习 - GAS hello world categories: 汇编 description: 汇编学习 - GAS hello world keywords: 汇编 —

    2015/09/24

  7. 简单分析initramfs

    initramfs 是linux 启动必须的吗?如果kernel有mount root fs所需的所有驱动,initramfs就不是必须的。读取磁盘数据, kernel需要驱动的帮助,然而物理磁盘各式各样,驱动各不相同,kernel不太可能都包括进来。initramfs是包含少量驱动模块和工具集的archive。 启动时,boot loader将initramfs加载到内存,kernel利用initramfs中的工具加载root fs必须的驱动,进而加载root fs并完成后续的启动过程。

    2015/07/29 linux