8 ms·
https://www.quora.com/What-is-a-coders-worst-nightmare/answer/Mick-Stute https://www.quora.com/What-is-a-coders-worst-nightmare/answe...
by pliny 8y ago
https://www.quora.com/What-is-a-coders-worst-nightmare/answer/Mick-Stute https://www.quora.com/What-is-a-coders-worst-nightmare/answe...
- deleted 8y ago[deleted]
- deleted 8y ago[deleted]
- pmichaud 8y agoJesus, that is intense. I wonder if the guy was personally out to get the Doc, or if he was just a smart kid with too much time and not enough superego?
- kazinator 8y agoHe did make it super easy to find this by having the compiler modify source code. If you run "cc file.c" and file.c is overwritten, you should know that it's the "cc" doing it. It would have been more evil to do it the original way, as described in Thompson's paper: recognize the program sources and emit altered object code only; no mucking with the source.
- rexpop 8y agoInteresting that the first adjective you use was "smart" when, in any decent scope of consideration, he has actually wasted many hours of others' time, and caused only suffering. When I do that at my company, they do not call me "smart."
- hhmc 8y agoCleverness and morality can be orthogonal.
- jmmcd 8y agoBostrom's orthogonality thesis!
- rexpop 8y agoOf course they can, but when I see an act of ingenious evil, my first response is not circumscribed admiration.
- breakingcups 8y agoConcluding someone is smart doesn't always equal admiring them.
- webmaven 8y agoIf you do it to your company's competitor, you may qualify for a massive bonus (modulo your employer's moral compass and appetite for risk).
- MrEldritch 8y agoThank you! I saw Ken Thomson's classic Reflections on Trusting Trust linked on HN a couple weeks ago, and was looking forward to rereading this very same story when I was surprised to discover it wasn't and had never been part of that essay at all. I had no idea where to find the actual story I'd been looking for! (Indeed, I was no longer sure this story had actually existed, and wasn't just something my brain had made up from cobbling together fragmentary memories) Thank you for solving this mystery. :)
- stefs 8y agoah yes i remember this. a practical implementation of the http://wiki.c2.com/?TheKenThompsonHack http://wiki.c2.com/?TheKenThompsonHack ?
- TheArcane 8y ago> Because the compiler was poisoned with other source code that we didn't have. And that source code, that now existed only in the executable compiler, put those changes back into the compiler source before it compiled it. I don't quite understand this part. How would this work?
- antsar 8y agoIf I read it correctly, they used the binary compiler which existed on the machine to compile a new copy of the compiler (from clean source). This existing binary compiler was "poisoned" (modified) such that it would not only poison the psychiatrist's program, but also poison any attempts to compile a new copy of the compiler. So when they recompiled the compiler, the new copy was already poisoned (because they used the old, poisoned compiler to do it).
- ChristianBundy 8y agoYou need a compiler to compile anything, including a compiler, so if your compiler was tampered with then anything you compile can be tampered with as well. The only solution is be to download a binary compiler from someone you trust.
- stefs 8y agoyes, but ken thompsons evil compiler theory states, that a trusted compiler is technically impossible (in the paranoid world of theoretical security where all compiler binaries are possibly tainted already) except if you write your own bootstrap compiler chain in machine code. still, all other running software (OS/drivers/the intel management engine) might be able to modify the binary in memory on the fly. the rabbit hole goes down to the hardware level.
- emilfihlman 8y agoIt doesn't even stop at hardware exactly (mcu/cpu), it only stops when you assemble the mcu/cpu yourself.
- kuba-orlik 8y agoThank you, that's it!
- tim333 8y agoSome HN discussion on that (224 comments) https://news.ycombinator.com/item?id=10606226 https://news.ycombinator.com/item?id=10606226