曾经使用过的网络方案

n2n

现在在使用zerotier

可能可以尝试rathole

几种利用page fault的性能优化机制

应该都可以归类为lazy allocation

demand page 快速加载程序(的text和data)exec

zero fill demand 快速分配空白页

copy on write 快速fork

dynamic analysis

只能抓出在特定输入上出现的problematic behavior

工具valgrind

替换malloc为它的实现,并在读写内存时添加一些记录检查代码,可以检查是否读写了超出堆空间的内存

优点是泛用性很强,因为不需要拿到源码

缺点是二进制文件中信息量太少(比如栈上具体怎么将内存划给变量)

llvm sanitizer

更进了一步,从源码分析

可以做到变量级,如数组出界

提供了很多sanitizer

fuzzing

模糊测试,构造大量测试用例,变异

static analysis

lint

一种编码规范,不等同于程序broke

dataflow analysis

追踪所有程序执行路径上数据的变化,可以做到检查是否正确释放资源等

可能会错误警示一些不可能走到的路径

适合单文件,多文件可能会unwieldy

Cool let’s sanitize/tidy all the code!🔨💯