
最近,新加坡总理李显龙因为自己编写的解数独程序而着实火了一把。
李显龙在4月20日的一次演讲中提到自己会用C++编写程序:“我上次写程序是几年前的事情了,那是一个用C++编写的数独求解器,所以我已经过时了。”他说,“我的孩子都是学IT的,有两个都毕业于麻省理工学院。其中一个曾经浏览一本书,然后对我说,‘看看这里。’”李显龙回忆道,那是一本Haskell编程语言的教科书,“那可能会成为我退休后的读物。”
那次演讲结束后,很多人要求李显龙公开那段代码。于是在5月5日,他在其fackbook主页上分享了自己编写的那段解数独程序。
“这段程序很简单,只能以命令提示符的形式运行。”他写道,“逐行输入数据后(例如1-3-8---6),求解器就会输出答案(如果有多个答案,则会输出所有答案)、搜索答案所花费的步骤,以及一些搜索统计数据。”
“希望你们能从中找到乐趣。”他说,“如果发现任何漏洞,也请告诉我。”
当然,这位总理也许只是随口一说,但是偏偏真的有黑客在阅读源代码后发现了一枚缓冲区溢出漏洞。
twitter上一位名为“Hacker Fantastic ”的安全研究者不久前发推指出,他发现了李总理编写的程序Sudoku2.cpp的源代码中由于没有进行输入验证,导致了缓冲区溢出。并且还贴出了一张演示图片。

后来还给出了一个exp
小编在这里默默的佩服了一下这位认真的黑客。
随后,新加坡总理李显龙在twitter上向这位黑客表示了感谢,并表示会在下一版本中加入输入验证。

小编觉得这位新加坡总理还是挺可爱的~~
最后附上李显龙总理编写的解数独程序的源代码,国内的黑客们一起来看看还有没有其他的漏洞呢?
(责任编辑:安博涛)