「Hackergame 2021」#0 赛后总结

七天紧张刺激破防的 Hackergame 2021 终于结束了_(:з」∠)_
在这丢一个总结和 Writeup 链接。

Writeup

阅读全文

绕过AST解析的python沙箱逃逸方法

这类题是在zjusec.com上 ACTF 2019 分组中chenyuan出的一系列python沙箱逃逸题目中看到的
在网上搜索貌似也只能搜到 TokyoWesterns CTF 4th 2018 这一次比赛中的题目

简介

这类题目不像普通的沙箱逃逸一样通过删除内置函数字典或者删除某些模块的内容来实现
而是在输入命令后即使用python的 ast 模块对其进行语法分析,只要使用了某些禁止的抽象语法,就抛出异常导致程序中断

阅读全文

与manim之间的往事

最近刚到大学报到完,恰巧有些闲暇时间
闲来无事,来记录一下自己与一步一步推动我走到现在的manim之间的故事(指流水账
这篇虽然叫「与manim之间的往事」,但是里面很多都和manim无关(逃

一切的起点

阅读全文

「Learn LambdaCalculus」#0

前言

前段时间,GZTime也跟我聊过一些关于lambda演算的东西
学Haskell的时候也总是能听说这个东西
看起来挺有意思,来学学_(:з」∠)_

阅读全文

「Learn Rust」#0 总章

学习一门新语言之Haskell

前言

Haskell学的差不多了,也没啥事想干了
GZTime之前也跟我推荐过Rust挺好玩的
这几天看一看
一样,没有教程,只是我的笔记而已

阅读全文

「Learn Haskell」#7 一些其它类型类

Foldable

Foldable是表示可以折叠(fold)的类型类,在Data.Foldable中定义,这使得和fold相关的函数可以用在任意Foldable的实例类型上。它的定义是:

阅读全文

「Learn Haskell」#A Haskell与范畴论

Haskell中的函子单子等都与范畴论(category theory)有很多联系,所以打算简单了解一下范畴论的相关内容。

范畴论是数学的一门学科,以抽象的方法处理数学概念,将这些概念形式化成一组组的“物件”及“态射”。数学中许多重要的领域可以形式化为范畴。使用范畴论可以令这些领域中许多难理解、难捉摸的数学结论更容易叙述证明。

———— 维基百科

范畴(Category)

范畴本质上是一个简单的集合,一个范畴$\mathbf{C}$包含三个组成成分:

阅读全文

「Learn Haskell」#6 半群与幺半群

Semigroup

半群(semigroup)是一个集合$S$,它需要指定一个二元运算符$\oplus$,并且满足

$$
a\oplus b \in S\quad a, b\in S
$$

以及结合(associative)律:

$$
(a\oplus b)\oplus c = a\oplus (b\oplus c)
$$

这个二元运算符在Haskell的Semigroup中被定义为<>函数:

阅读全文

「Learn Haskell」#5 函子、应用函子与单子

Functors

函子(Functor)是一个类型类(typeclass),和其他类型类一样,它规定了其实例类必须实现的功能(例如Eq类型类规定了它的实例必须是可以比较是否相等的),Functor规定类它的实例必须是可以进行映射的。Functor要求使用fmap :: (a -> b) -> f a -> f b 函数来实现这个功能,它接收一个a -> b类型的函数、一个内部元素为a类型的函子,返回一个内部元素为b类型的函子

阅读全文