安全领域的黑客都喜欢使用perl/python这类脚本语言来写针对exploit的测试程序,一个偶然的机会打算试试用GNU Guile,都是要调用C的接口system()函数,之后发现同样的功能在python 2.6下可以正常运行,而在Guile上却不行,之后把这个bug报给了Ragranok的作者(一个信奉GNUist的狂热分子-_-),几天之后Nalaginrut和Andy Wingo的讨论和测试结果出来了,字符串(String)的实现有两种:1,传统C语言使用的byte string;2,Guile和python 3使用的character string。Guile由于使用了character string所以导致传递值时大于ascii码时会被直接代替成"?",这主要是由于locale环境造成的,要让byte string能运行正常必须使用en_US.ISO-8859-*,完整的示例代码和解决过程在这里,以后黑客们可以使用Guile来写exploit测试了。
时间:2012-05-17 14:51
来源:Solidot
作者:Solidot
原文链接