下篇见调试技巧2。
Debug Hacks
作者为吉冈弘隆、大和一洋、大岩尚宏、安部东洋、吉田俊辅,有中文版《Debug
Hacks中文版—深入调试的技术和工具》。这本书涉及了很多调试技巧,对调试器使用、内核调试方法、常见错误的原因,还介绍了systemtap
、strace
、ltrace
等一大堆工具,非常值得一读。
今天上网时看到有人分享了这个项目:quine-relay,点进去看是这样一个程序:一开始是一段Ruby代码,运行后生成Scala代码,后者运行后生成Scheme代码,如此执行,依次生成了Bash、Smalltalk、Tcl等代码,最后又回到最初的Ruby代码。这类程序有个名字,叫ouroborus programs。Ouroborus即衔尾蛇,是一条正在吞食自己尾巴的蛇,在这里刚好表示循环的概念。
Secuinside是韩国人办的信息安全比赛,在ctftime.org上排名很靠前。这次应该算是我第二次参加类似的比赛,不过这类做题形式的还是头一次。
Deterministic acyclic finite state automaton,也叫directed acyclic word graph(DAWG),是一个识别若干字串的无环DFA。识别若干字串的所有DAWG中,存在唯一一个状态数最少的DAWG,称作minimal DAWG,即识别这个字串集的DFA。
DAWG在有些文献中也指识别一个字串的所有后缀的自动机,这种用法有个更常见的名称:suffix automaton,此时该自动机可以看做是字串所有后缀的DAWG。
三天前王康提议开学前的周末搞个活动,之后敲定由Cheer Xiao、heroxbd、Aron Xu和我做演讲。得到消息很诧异,因为以上几位都有丰富的系统管理经验,我就不知道能干什么了……但毕竟被逼上梁山了,最后Cheer Xiao让我讲Haskell。
近似字符串匹配问题。
在metric space中衡量两个字符串差异程度的一个指标,即通过一系列单字符的编辑操作把字符串A变成字符串B所需的最小编辑次数,其中的编辑操作可以是插入字符、删除字符以及修改字符。
计算编辑距离有个经典的Wagner-Fischer算法,使用了动态规划,用d(i,j)
表示把字符串A的前i
个字符变成字符串B的前j
个字符所需的最小编辑次数(即子串的编辑距离)。
这些都是false value:None
, False
,
0
, []
, {}
,
''
。判断empty的应用场景可能多些,如果像Ruby那样只让nil
和false
为false就好了。
传统的构建系统如Make,用户指定项目中所有目标文件(非源文件)的产生方式,储存在makefile文件中。
考虑如下的伪makefile:
1 | main: a.o b.o |
RuCTFE 是一个面向全世界的信息安全比赛,每个队伍保护自己的机器,攻击其他队伍的机器,长达8个小时紧张激烈的对抗和赛前犒赏队员的火锅标志着它是这一年我参与的最有意义的事之一,因而在这里简要记录下来。有幸收到《Metasploit渗透测试指南》的译者孙松柏的邀请,成为 blue-lotus 队的一员,和网络安全实验室的同学一起出发,晚上一群人去吃牡丹园的海底捞火锅壮行。