观测到 0 次访问

What happens when root user UID is not 0?

As we know, the default PoC of DirtyCOW overwrites /etc/passwd and changed the username of root user to toor. This raises a question: What happens if the root user UID is not 0, while another user has UID 0?

Recently, to fool someone, I started a new VM and tested this. It went wild and the VM quickly became quite a mess. So in this article, I will share some results and thoughts.

观测到 0 次访问

我误删了我的所有科研数据… 都是 GLM 害得x

这两天我顶着毕设中期的事情, 在某人的怂恿下重装了我的台式机, 把 3 年多的 Linux Mint 给扬了 (它实在是太脏了… 里面是沉重的历史x). 我当时确信我备份过数据, 于是把我的数据盘都格式化了, 重新组了 RAIDz1. 前天我要找东西的时候, 突然发现, 我的备份机器上缺少一些 zfs dataset. 我的备份呢?

于是前天我四处翻找, 最终恢复了大概 2025 年 5 月之前和 2025 年 11 月之后的大部分数据. 我甚至不知道我是否丢了数据 / 丢了多少数据 — 我完全不记得那个加密的 dataset 里面有什么了. 于是就有了这个事故复盘让大家笑一笑.

观测到 0 次访问

You SHOULD Enable Hardware Watchdog

Recently I discovered that my server has a hardware watchdog. I investigated a bit and found that it is actually quite common for servers / routers to have a hardware watchdog exposed. You SHOULD enable it if you have one, especially when you are remote and cannot easily access the machine.

观测到 0 次访问

在 Linux 上通过 GDB 在命令行中获取微信消息

本篇探讨了如何结合 LLM 辅助的逆向工程技术, 在 Linux 上通过 GDB 调试微信, 从而在命令行中获取微信消息的内容.

观测到 0 次访问

给科服的企业微信助手 - 需求构思文档 - WIP

这几天 OpenClaw 实在是有点火, 正好提到可以接入企业微信, 我就萌生了一个把机器人接入企业微信的想法 (其实科服的其他老人应该有这个想法很久了). 调研一番之后发现 sb 企业微信的机器人没办法获取群聊的消息内容, 我于是整了点花活. 一部分的前置工作在 在 Linux 上通过 GDB 在命令行中获取微信消息 这篇文章里, 这篇文章主要是软件工程系统的需求构思和设计.

更新于 | 观测到 0 次访问

不在科协的一年

转眼间, 距离 因为科协的事情破防 emo 已经快一年的时间了. 我们的下一届也快完成使命, 要寻找下一届的主席了. 这一年里… 说来可笑, 我的感觉是开发的工作还是老登和 落选主席 wst 在干, 我把运维的重任丢给了下一届副主席, 好在没有太让我失望 (其实也没什么运维的活) (其实说要干的饼也没有人推动, 都停留在饼上). 马上又要提名新一任主席了, 我倒是想看看下一届会是什么样子.

更新于 | 观测到 0 次访问

捡了一台 HR650X – 附加折腾日记

最近手痒想换服务器, 本来想二代 EPYC, 可惜太贵; 当时找到了比较便宜的是 HR650M, 但是没有 Riser 卡, 比较鸡肋, 然后就发现了 HR650X, 可以装一二代可拓展至强. 鉴于价格还行, 不如我手机贵, 我决定买一台解决我没有服务器用而一直把台式机当半个服务器又不太好用的问题. (主要是我的台式机的系统太混乱了我又不敢重装, 把服务器配好之后我一定要给我台式机扬了)

于是我就折腾了几天, 当然, 这个折腾还是很折腾的 (x). 这里记录一下过程.

多图警告

观测到 0 次访问

How to get drive SMART status on Dell 12th / 13th Gen Servers with ESXi

If you are running ESXi on Dell 12th or 13th generation servers, you might want to check the SMART status of your drives to monitor their health. For me, it’s when one of the RAID5 drives failed, and I wonder whether the other drives could fail soon. However, the standard SMART tools won’t work. After some investigation, I found a way to get the SMART raw data with perccli command.

TL, DR:

1
/opt/lsi/perccli/perccli64 /call/eall/sall show smart

This will print the raw SMART data in hex format. I haven’t found a good parser for this, just feed it to ChatGPT along with the drive model, and ask him to parse it for you.

Or, I asked CodeX to tailor smartctl to read from the hex blob and targets WASM. Try it yourself!

更新于 | 观测到 0 次访问

从 AjaxDB 到 AgentDB – 我如何用 Agent 写完了数据库系统概论大作业

这学期选了数据库系统概论, 大作业是写一个不是很简单的数据库系统. 学期初的时候别人都警告我这门课的大作业很硬, 要至少留出完整的 2 周时间写. 于是我当时下定决心要大战数据库. 结果过了两个星期, 我发现这学期我比我想象的要忙得多, 完全没时间写… 于是我萌生了用 Agent 写大作业的想法. 我用了大概 3~4 天的时间让 Agent 把大作业写完了, 过程不算特别顺利, 但是总体上还算成功. 这篇文章来记录一下怎么回事.

更新于 | 观测到 0 次访问

Cloudflare Workers return 404 when accessing with browser, while 200 when with curl, why?

TL, DR: Web browsers send Sec-Fetch-Mode: navigate header when accessing a page, while curl does not. With STATIC_FILES bindings in Cloudflare Workers:

1
2
3
4
5
"assets": {
  "directory": "./public/",
  "not_found_handling": "404-page",
  "binding": "STATIC_FILES"
}

Cloudflare will directly serve static files with Sec-Fetch-Mode: navigate present and return 404 if file not found, without invoking the Worker script. Without this header, Cloudflare will invoke the Worker script, which may return 200.

The solution: add "run_worker_first": ["/Ajax.gpg*"] to ask Cloudflare to always invoke the Worker script first for matching paths.

1%