ICCAD 2022 hector
留个档,北大某教授的面试任务:读论文
Software Foundations Vol1 - Basics
Software Foundations Volume 1: Logical Foundations 第一章 Basics 包含的题解 Data and Functions完成 nandb 定义并验证例子正确性 12345678910111213141516(** **** Exercise: 1 star, standard (nandb) *)Definition nandb (b1:bool) (b2:bool) : bool := match b1 with | true => (negb b2) | false => true end.Example test_nandb1: (nandb true false) = true.Proof. simpl. reflexivity. Qed.Example test_nandb2: (nandb false false) = true.Proof. simpl. reflexivity. Qed.Example test_nandb3: ...
特异区之子 P2 P3
这一篇 blog 的第二部分就是传说中的城市篇这一部分的主角依然是安东·戈德伯格,故事发生在一个陷入全面崩溃的城市中(不再是特异区,而是一个类似文明瓦解后的都市环境)。 城市背景:一夜之间,城里所有的男孩都消失了。随后城市陷入无政府状态,火灾、暴力、食人、腐败横行。政府形同虚设,军队和警察失控,市民靠献血(给“Blood-express”公司)换取食物和酒。主人公安东在废墟般的城市中挣扎求生。 主要经历: 安东去地下酒吧换取物资,遇到酒保弗朗克、女人马格达莱纳等人。他们讨论着生存、生物学最低标准、以及传说中的“特异区”。 城市遭到武装分子袭击,安东与马格达莱纳逃入地下通道。 他进入城市下方的地下世界(“蚁巢”),这里是一个由女王(巨大的女性变种)、工蜂、雄蜂组成的高度分化的社会。社会底层是赤裸的男性,被当作女王的交配和食物来源。 安东被抓、被关押、被养肥,差点被献给女王。他最终逃脱,在地下迷宫中遭遇各种疯狂景象(食人族、绞死者、幻觉等)。 逃出后,他回到城市表面,城市仍在燃烧。他决定向北走,前往传说中的特异区。 结尾:安东来到沼泽地带,见到商人蛤蟆。蛤蟆对他说:“你...
特异区之子 P1
《特异区之子》是 GSC Game World 的游戏《潜行者:切尔诺贝利的阴影》在 2003 以及之前的早期开发版本《潜行者:遗忘之都》的剧本原型。随着开发转型,《遗忘之都》的许多设定包括大量的剧情被抛弃。但是在大概 5~6 年之后,这些原先的剧本被重新整理并发布在一家俄语杂志上:俄文第一部分,也就是《潜行者:遗忘之都》的原型 俄文第二、三部分,这部分就是作者鬼脑启动,映射现实(但也不知道在说什么) 本文是该杂志的中文翻译版本,由 DeepSeekV4 完成,本文包括大量虚构内容。手动进行了部分的精校验工作,以及有提示性的注释。Ps:DeepSeek 原文特别喜欢用“嘟囔”这个词,我tm小学都不用了,完全破坏了原本的恐怖和神秘主义氛围,搞的跟到特异区郊游一样。 背景切尔诺贝利灾难的后果1986年切尔诺贝利核电站灾难的后果至今仍是研究的重点。 由约翰·乌尔克瓦特教授领导的一组英国研究人员得出结论,放射性云层的飘移可能影响了包括英国在内的许多欧洲国家居民的健康状况。 科学家们分析了英格兰和威尔士的儿童死亡率和发病率数据。发表在《新科学家》杂志上的一篇文章指出,在放射性云层经过后的3...
2025回顾
上课 喜欢一周上8节操作系统吗?可太有操作了 :) 喜欢一学期上3门思政吗?他的出身啊,红得发紫! 做实验尼卓计网实验—OpenWrt 尼软2023级开始有新的实验,使用OpenWrt框架检测流量。 在普通班基础上,增加烧录至路由器实机作为必做内容,实际上却是降低难度,因为直接插线就有ssh用,可以不用折腾VMware。 只写了CLI界面,所以附一张逼格波斯的帅脸。 尼卓的OS实验 一共10个实验,牛🐮大了 这10个魔丸分别是 哲学家吃饭 (用pthread,信号量,共享内存,消息队列分别实现) 生产者消费者 (同上) 写一个ls 写一个cp 做一个能并发的 Linux WebServer( ?) 写一个 Char 设备 写 V4L2 设备驱动,并用电脑前置摄像头拍下帅照一张(我最后用ffmpeg转出的,但是照片搞丢了) 配置 Keil5 工程 在开发板上跑 uC/OS(忘记是2还是3了) 改良 uC/O...
ONNX-opt 0
今天是人类目前最大的湿件制导导弹命中目标的24(man!)周年 ONNX 简介ONNX 是一个开放的深度学习框架中立的表示格式,旨在促进不同深度学习工具之间的互操作性。通过 ONNX,开发者可以在不同的深度学习框架之间轻松地转换模型,从而实现更高效的模型部署和推理。ONNX 和 ONNX-runtime 是两个重要的组成部分,前者是模型计算图和权重的中间表示,后者是一个推理引擎,如下图。 所以 ONNX 主要用于 AI 模型的交换和部署: 交换:对不同训练框架导出模型文件和权重文件进行转换 部署:将模型文件和权重文件交给推理引擎进行运算 上图中的三段式和传统编译器的结构不谋而和,ONNX 虽然并不存在计算图或者算子上的简化,但是其中的一些结构对于模型的抽象使得优化其实不是完全不可能(进入编译器舒适区间了)比如,现在已有的 ONNX-simplifier(虽然不是很流行),根据其描述是进行计算图上的常量折叠,以及他的third-part依赖ONNX-optimizer相较于如何优化这方面,也很重要的方面是如何对 Pass 后的结果进行验证,下面是一些主流的 AI 编译器的测试...
内核模块开发环境及调试
ps: OS课用 Qemu虚拟机 qemu下载 直接apt下一个即可, 建议使用模拟x86的qemu, 这样可以避免使用交叉编译器 Direct Linux Boot 一方面, 可以使用qemu-img制作一个镜像, 然后用qemu模拟运行 qemu支持所谓”直接引导Linux内核(Direct Linux Boot)”的方式启动虚拟机, 更适合内核的测试 https://www.qemu.org/docs/master/system/linuxboot.html 此种方式需要准备三个部分: 1. 一个压缩的Linux内核镜像, 俗称bzImage 2. 一个临时根文件系统initrd 3.指定根文件设备的挂载, 如果initrd已经是一个可用的文件系统, 则此处省略 &ems...
[水贴]C++应该怎么UAF
ps1: UAF方法不全面, 没写不代表不能用或者没有ps2: 尽量避免裸指针出现, 只在模拟漏洞(各种任意写)时使用裸指针达到目的, 也就是非必要不用.get() 智能指针 智能指针是C++的常用特性之一, 用于解决C语言以及早期C++中的内存分配和释放过于复杂, 或者内存泄露的问题. 一般使用的智能指针有std::unique_ptr, std::shared_ptr, std::weak_ptr, std::weak_ptr可以看作是std::shared_ptr在特定情况下的补充. 需要#include <memory>. 然而, 即使有智能指针, 也不能高枕无忧, 因为内存问题是所有人都要面对的, 除非你是高贵的数据分析科学家, 或者你使用语言(yu’an)神Rust 下面简单列一下本人发现的可以对智能指针UAF的方法.shared_ptr 内存回收方式 shared_ptr是比较...
large bin attack及house of cat
好不容易学点东西赶紧记下来, 不然过几天又忘记了 前情提要: 1. 由于glibc 2.34开始, 去掉了常用的各种hook, 包括__malloc_hook, __free_hook, __exit_hook等, 标志了一个时代的落幕. 从此之后, 在没有什么特别的backdoor的情况下, 仅仅使用tcachebin, unsortedbin, fastbin等的攻击很难达到劫持执行流的目的, 所以这些方法现在更多是作为一个泄露偏移的存在 2. 失去了hook不代表堆题就没法劫持控制流了(不然还玩个蛋), 还可以寻找其他劫持的方法. 劫持方法需要满足: 泛用性, 即大多数的情况下都存在的利用方法; 简易性, 在较少的漏洞利用的情况下就可以实现 3. 在现有的诸多劫持方法中, 可以总结出一些经验, 就是 largebinAttack + 某种house. 其中largebinAttack手法用于预备一个ROP(或者别的什么), 以及伪造一个IO_FILE_PLUS结...