使用eBPF实现基于DWARF的堆栈遍历

我们是 BPF 的忠实信徒,有很多原因。从广义上讲,它允许 Linux 内核以更高的安全保证和更低的学习门槛进行编程。
在 BPF 中开发分析器非常有意义,因为一旦实现了堆栈遍历机制,我们就可以利用 perf 子系统来获取有关 CPU 周期、指令、L3 缓存未命中或我们机器中可用的任何其他性能计数器的样本。它还有助于开发其他工具,如分配跟踪器、off-CPU分析器等。

Continue reading


新型eBPF后门boopkit的原理分析与演示

前段时间的Bvp47木马利用BPF技术敲门,想必你已经精通了吧?笔者曾担忧在eBPF加持下,用在后门场景会更加恐怖。这不GitHub上开源了一个Boopkit,今天笔者跟大家一起来了解一下它的技术原理,使用了哪些eBPF程序功能。它是如何实现任意开启的TCP端口服务,远程唤醒后门,并生成反弹shell的。

Continue reading


ububtu server 14.04上,PHP5-FPM服务的启动方式变更

在一位前辈微博上看到,他总是给自己找点事做,让自己忙碌起来,严于律己。我甚有感触,相比之下自惭形秽,一直做不到,这应该就是大神跟我等小菜之间的差距吧。这次遇到的问题是ubuntu 14.04上,/etc/init.d/php5-fpm 不能正常管理php5-fpm?而12.04老的版本可以,是php5-fpm启动脚本的bug,还是操作系统更新带来的bug?

Continue reading


TCP SOCKET中backlog参数的用途是什么?

tcp ack rto在前年时,业务中遇到好多次因为PHP-FPM的backlog参数引发的性能问题,一直想去详细研究一番,还特意在2013年总结里提到这事《为何PHP5.5.6中fpm backlog Changed default listen() backlog to 65535》,然而,我稍于懒惰,一拖再拖,直至今日,才动脑去想,动笔去写。PHP-FPM的配置中,backlog默认值从128改为65535,又从65535改为511,可能很多人都没有在意,我也是因为遇到过类似错误,才决定去认真理理其中知识点的。

Continue reading