每周分享第 12 期

看脑王迟到了( Rust Embedded Graphics 库 https://github.com/jamwaffles/embedded-graphics Wireguard for macOS https://lists.zx2c4.com/pipermail/wireguard/2019-February/003853.html Wireguard-go UI https://github.com/aequitas/macos-menubar-wireguard T2 逆向 https://duo.com/labs/research/apple-t2-xpc 脑王剪辑 https://www.bilibili.com/video/av43972717 dram 推荐的工具 notion.so 带授权和审计的 sudo https://github.com/square/sudo_pair rust 的 manpage 生成器 https://github.com/rust-cli/man 才发现 Github 有 Project 功能 https://help.github.com/en/articles/about-project-boards rust 的 elf/macho 生成 https://github.com/m4b/faerie rust 的 elf/macho/pe 读取 https://github.com/m4b/goblin rust 的 glob 实现 https://github.com/rust-lang-nursery/glob 基于 BoringSSL 的 rust 加密库 https://mundane.googlesource.com/mundane 从 linux 交叉编译到 macOS 的方法 https://github.com/tpoechtrager/osxcross cargo-deb 后又有了 cargo-rpm https://github.com/RustRPM/cargo-rpm 自带 diff 的 assert_eq 宏 https://github.

Read More

预告 Learn-Project 4.0 版

不知道大家听没听说过 Google Chrome 有个插件,叫做 Learn Project ,是一个网络学堂的改良前端。不过,随着网络学堂的不断更(xia)新(gao),它已经不再适用于现在的版本。于是,哈利橙(@Harry_Chen)决定利用寒假时间,在今天(2.17)之前完成 Learn Project 4.0 的开发。为什么叫 4.0 呢,因为哈利橙课程的 GPA 众数是 4.0 。这个版本采用先进的 React 框架编写(Vue 塞高),使用了 Material Ui 作为界面框架(这我觉得可以),目前的一个参考图(图源哈利橙): 看那满眼的高分数,希望 Learn Project 4.0 能在 flag 倒下之前完成。

Read More

每周分享第 11 期

对不起迟到了( Google 的 fuzzing 家族又来了个新成员 太喜欢造轮子了 https://github.com/google/clusterfuzz 有趣的文本生成工具 https://github.com/TheBerkin/rant 又一个 side channel attack https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2019/february/downgrade-attack-on-tls-1.3-and-vulnerabilities-in-major-tls-libraries/ 来自 Prof Fan 的一个 cf dns 权限限制分发的工具 https://github.com/ProfFan/cloudflare-proxy-rs 部署到了我的博客的小工具 大家体会到了吗 https://instant.page/ 教育性质的 C on web https://vasyop.github.io/miniC-hosting/ 激活清华教育版 win10? –> dig +short TXT win10.harrychen.xyz windows95 v2.0 发布(误 https://github.com/felixrieseberg/windows95/releases/tag/v2.0.0 已经部署到 tuna 的 rustup-mirror crate https://github.com/jiegec/rustup-mirror Forth 也能有 http 服务端框架 http://www.1-9-9-1.com/ bartender 的开源替代 实测可用 https://github.com/Mortennn/Dozer 给不支持 pac 的客户端在 http proxy 上套一层 https://github.com/williambailey/pacproxy

Read More

近来做 Stanford CS140e 的一些进展和思考(9)

距离上一篇 CS140e 系列文章已经过去了很久,距离第一篇文章过了一年零几天。在后来这一段时间内,CS140e 结束了课程,又开始了新一年的 winter 2019 课程,迎来的却是 C 版本的 CS140e ,不禁让人感到失望。还好,Sergio Benitez 放出了原来的 CS140e 的镜像,如果大家仍然想回去查看原版优质的 CS140e ,可以点进去参考。 后来因为机缘巧合参与到了清华的 Rust OS 课程,又想到回来把原来的 CS140e 进行更新,于是顺带把跑在 QEMU 下的一些需要的工作给做了,另外把 Rust nightly 版本更新了(一年前的 nightly 还能叫 nightly ?),才发现标准库变化还是蛮大的,由于 nightly 版本变了,而且原来是内嵌了一个阉割过的 std ,所以主要是从新的 std 里抄代码到内嵌的 std 中。另外,原来的 xargo 也不再维护了,转而使用 rust-xbuild 进行交叉编译。 然后又顺手实现了 backtrace 和从 backtrace 中配合 dward symbols 找函数名的功能,不过实践证明,这些东西还是 addr2line 做得更好,所以也就没有做下去,在 relocation 上也是遇到了各种问题。这个经验也是应用到了 rCore 那边。 再之后也就是寒假写驱动了,见之前的一个博文,我就没有在 CS140e 上去实现它了。有时间有兴趣的时候再考虑做一下 Raspberry Pi 的网卡驱动吧。 写于迪拜雨天。

Read More

每周分享第 10 期

新年快乐! Haskell to WASM compiler https://github.com/tweag/asterius A ssh tarpit that sends endless banner https://github.com/skeeto/endlessh Use rust to write UEFI app https://github.com/rust-osdev/uefi-rs 神奇的小游戏 https://yeahpython.github.io/game/game.html 又一个后端 rust web 框架 https://github.com/seanmonstar/warp 挺酷的一个网站 https://github.com/pomber/github-history ws 调试工具 https://github.com/vi/websocat React Hooks 进入正式版 https://reactjs.org/blog/2019/02/06/react-v16.8.0.html 又一个关于硬件的 wiki https://wikidevi.com/wiki/Main_Page virtio-fs 项目 旨在替代 virtio-9p https://virtio-fs.gitlab.io/ SergioBenitez 镜像了一份去年的 CS140e https://cs140e.sergio.bz/

Read More

每周分享第 9 期

IDA Loader plugin for some Nintendo rom https://github.com/w4kfu/IDA_loader websocket daemon http://websocketd.com/ 实时的游戏开发器 https://script-8.github.io/ 硬核逆向 Leica 相机的固件 https://alexhude.github.io/2019/01/24/hacking-leica-m240.html 做 CTF 时遇到的整数溢出的 CVE https://www.anquanke.com/post/id/104182 发现一个 speedtest 的轮子 https://github.com/adolfintel/speedtest 西数的 RISCV 核实现 https://github.com/westerndigitalcorporation/swerv_eh1 iOS 12.2 会有更多的 PWA 兹瓷 https://twitter.com/mhartington/status/1089292031548145666 代替死去的 git-up: git config –global alias.up ‘pull –rebase –autostash’ 利用已知明文破解旧版加密 zip 的工具 https://github.com/kimci86/bkcrack 在线看 jwt 内容 https://jwt.io/ JS 的 Lua VM https://github.com/fengari-lua/fengari 鲁棒但不优雅的前端 KV https://github.com/gruns/ImmortalDB Emacs Modules doc https://phst.eu/emacs-modules 用 IPv6 的 Flow Label 实现类似 MPLS 的效果 https://github.

Read More

使用 Rust 实现 VirtIO 驱动

背景 最近在给 rCore 添加驱动层的支持。一开始是想做网卡驱动,后来发现, qemu-system-riscv32 只支持如下的驱动: # qemu-system-riscv32 -device help Storage devices: name "scsi-cd", bus SCSI, desc "virtual SCSI CD-ROM" name "scsi-disk", bus SCSI, desc "virtual SCSI disk or CD-ROM (legacy)" name "scsi-hd", bus SCSI, desc "virtual SCSI disk" name "virtio-blk-device", bus virtio-bus name "virtio-scsi-device", bus virtio-bus Network devices: name "virtio-net-device", bus virtio-bus Input devices: name "virtconsole", bus virtio-serial-bus name "virtio-keyboard-device", bus virtio-bus name "virtio-mouse-device", bus virtio-bus name "virtio-serial-device", bus virtio-bus name "virtio-tablet-device", bus virtio-bus name "virtserialport", bus virtio-serial-bus Display devices: name "virtio-gpu-device", bus virtio-bus Misc devices: name "loader", desc "Generic Loader" name "virtio-balloon-device", bus virtio-bus name "virtio-crypto-device", bus virtio-bus name "virtio-rng-device", bus virtio-bus 所以要实现网卡的话,只能实现这里的 virtio-net-device ,而 VirtIO 驱动之间有很多共通的地方,于是顺带把 gpu mouse 和 blk 实现了。

Read More

THUWC 2019 小记

前段时间,以工作人员的身份参加了在广州二中举办的 THUWC 2019 。作为一只菜鸡 OI 选手,我没想到过我会以另一种身份参与一个我本来没能参与的活动,就好像以暑校辅导员的身份参与清华暑校一样。 提早来到了赛场,布置场地,然后把机考的各个流程都过一遍,记住各个细节,各方面都有条不紊地进行,看着第一场前同学们特别激动地冲入考场,到最后一场同学们考完后的释放,在同学们身上看到了很多不成熟的样子,看到了兴奋想要和同伴分享的喜悦,也看到了不甘的眼泪。 希望各位强大的选手们可以来到九字班、零字班乃至一字班,享受课改的乐趣吧嘿嘿嘿

Read More

每周分享第 8 期

这周更加忙了,所以内容不多。 Rust 1.32.0 is out 其中 dbg macro 挺有意思 https://blog.rust-lang.org/2019/01/17/Rust-1.32.0.html 在线的 hex packet decoder https://hpd.gasmi.net/ Rust Cheatsheet https://www.breakdown-notes.com/make/load/rust_cs_canvas/true Rust tcp/ip stack https://github.com/m-labs/smoltcp 逆向 CAJ 的转换器 https://github.com/JeziL/caj2pdf

Read More

每周分享第 7 期

这周比较忙,所以内容不多。 在嵌入式系统里跑 Lisp 可以在串口开个 repl 在线调试 http://www.ulisp.com/show?3J Pattern matching for C++ https://github.com/solodon4/Mach7 一个商业版的类似 ASan 的产品 不知道效果如何 https://stensal.com/ 用 Python 写 Cocoa 界面还行 https://dawes.wordpress.com/2017/08/17/python-with-a-cocoa-gui-on-macos/ Rust 实现的权威搜索引擎 https://github.com/toshi-search/Toshi Rust Embedonomicon 讲述 Rust 在 bare metal 下的一些神奇操作 https://docs.rust-embedded.org/embedonomicon/preface.html 发现另一个基于 Github 的 Disqus 替代品 https://utteranc.es/ 挺好的一部讲 Rust 生命周期的小书 http://cglab.ca/~abeinges/blah/too-many-lists/book/README.html 跨平台的 Ctrl-C 处理 for Rust https://github.com/Detegr/rust-ctrlc 用 Rust 写 stm32 上程序所需要的库 https://github.com/stm32-rs/stm32-rs go 语言编写的基于 fuse 的加密文件系统 https://github.com/rfjakob/gocryptfs Rust 的图片解析库 https://github.com/PistonDevelopers/image 用 BPF 做 API 解析和过滤 https://github.

Read More