看到一个有意思的问题

2015-02-12 Mithrilwoodrat 更多博文 » 博客 » GitHub »

原文链接 http://woodrat.xyz/2015/02/12/%e7%9c%8b%e5%88%b0%e4%b8%80%e4%b8%aa%e6%9c%89%e6%84%8f%e6%80%9d%e7%9a%84%e9%97%ae%e9%a2%98/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


起因是在知乎看到了 如何评价 Ken Thompson 在 C 编译器里植入了后门这件事?

然后在到了USTC 李博杰同学写的很有意思的文章 给开源编译器插入后门

然后看了下Ken Thompson老爷子的原文 Reflections on Trusting Trust

    文中,老爷子回忆了和Dennis Ritchie的基情岁月,他说他们写了一段一模一样的20行的汇编程序,每个字符都一样....然后老爷子从他的大学生活开始说,那个时候并没有Video Game,所以他们的娱乐方式为提问题,然后写程序解决.他最喜欢中的一种为写最短的可自我复制的程序,那个时候使用的语言为FORTRAN,使用FORTRAN的原因和three-legged races 流行的原因一致(这里并不能理解....)

更准确的说法是写出一个代码,编译执行会产生同样的代码

Py版如下

s = ["print \"s =\", s","for i in s: print i"] print "s =", s for i in s: print i 然后由于C的编译器是由C编写的.可以修改C编译器的代码,是其在编译指定程序时生成利用代码,在编译自身时复制自身...有点绕.具体的请参照开头给出的链接,这里不再赘述.

文章末尾,老爷子提醒了我们,任何不是自己编写的程序都不能够完全信任,尤其是雇佣了像他一样的人的大公司(老爷子的自我调侃),源码级别的检查并不能保证你的安全,威胁可能来自assembler,loader,甚至hardware microcode.越底层的bug越难以发现.

最后老爷子提醒我们,随意破坏和闯入他人的计算机系统是不道德的. 

让我们一起把Kali删掉吧 : )