2012-05-12 15:24
龟头第二缩。
2018-10-15 20:42
《金刚》的故事很有意思:女主角在人类社会迅速爱上有才华(智力)的编剧,在丛林里则又迅速爱上最能打(体力)的金刚。然而回到人类社会后她对金刚的爱并未消失。也许剧作者也认为短短几千年文明在我们大脑中留下的演化痕迹再加上文明本身,可能也敌不过石器时代三百万年在我们大脑中留下的演化痕迹。
2013-01-05 12:17
坐下马踏山水雄,背上剑射斗牛寒。只因匆忙忘带钱,却困在了收费站。
2013-06-10 14:19
前CIA雇员揭露了美英情报部门监听监视私人电话和电子通信的“PRISM项目”后,有人在tumblr上收集了一组“Obama Is Checking Your Email”的图:🔗网页链接
2012-11-17 14:44
有人说那么多人、那么多电话,Big Brother不可能都记录存档。咱们算笔帐吧:GSM语音信道容量13kbps,中国手机用户平均每人每月拨打时长约500分钟——不考虑压缩、不考虑按分钟计费的问题,满打满算,每人每月记录空间只需50兆。目前存储50兆数据的磁盘成本约1.5分钱。
2018-04-11 12:25
@Laruence 昨天修复了 PHP 的一个 Bug:。
char buf[128];
int wrote;
wrote = snprintf(buf, 128, "Could not translate address '%s'", addr);
buf[wrote] = '\0';
这个问题非常有代表性,是典型的由于程序员对函数特性了解不够造成的。
实际上 snprintf 的相关安全问题比这个例子中表现出来的更复杂。因为 snprintf 不是 C 标准中的函数,但各家编译器又各自做了实现。早期版本 VC 中的 _snprintf 并不完全等同于 snprintf。比如对 snprintf(buf, 4, "%s", "ABCD"),_snprintf 会向缓冲区写入"ABCD",但 snprintf 会写入“ABC\0”。另外,_snprintf 和 snprintf 对返回值处理也不同。当格式化后的字符串长度大于第二形参指定的长度时,_snprintf 会返回 -1,而 snprintf 会返回格式化后的字符串所需要的缓冲区大小。
这就可能导致某些程序在原始开发平台下没问题,但移植到别的系统上时简单地把 _snprintf 和 snprintf 互换就会产生漏洞。(所以上面这个 Bug 也许是一个 Windows 程序员犯的错误——然而即使如此也应该是 buf[wrote-1] = '\0' 啊)
也正由于 _snprintf 和 snprintf 的这些细节差异,上面提到的这个 Bug 在 snprintf 下是有可能实现利用的,反倒是对 _snprintf 则利用的可能性很小。这一点就不细说了。你们可以试试:写一个包含这个 Bug 的小程序,对其实现漏洞利用执行 Shellcode。