栈数据的采集与使用 - ebpf番外篇之解析perf_event
在研究stackplz的代码时发现其是用perf_event_open
进行栈数据的采集,并且因为libbpf
的perf_event_open
并没有带上PERF_SAMPLE_STACK_USER
标记所以还要修改libbpf
代码,感觉总体实现并不是很好并且perf_buffer
性能也不咋地,所以研究有无其他获取栈数据的方式
栈数据的采集与使用 - ebpf番外篇之解析perf_event
在研究stackplz的代码时发现其是用perf_event_open
进行栈数据的采集,并且因为libbpf
的perf_event_open
并没有带上PERF_SAMPLE_STACK_USER
标记所以还要修改libbpf
代码,感觉总体实现并不是很好并且perf_buffer
性能也不咋地,所以研究有无其他获取栈数据的方式
顶不住了还是go吧 - ebpf-go框架之cilium-ebpf
被libbpf交叉编译折磨烂了,具体来说就是libbpf只支持gnu/glibc,但是需要用到的unwindstack库又需要ndk-clang来提供很多安卓的api,两个实在没法编到一起,只能迁移到go然后把unwindstack以cgo动态库的形式加入到项目中
连接用户与内核 - ebpf之ringBuffer与全局变量
还在用perf Buffer? ringBuffer真王朝了
基本上所有设备都能用的常见挂载点,目前考虑6.1内核,可惜的是pixel 6 的6.1内核还不支持fentry/fexit
工作中遇到了需要处理安卓IPC通信的情况,安卓IPC通信即binder通信通过Parcel类来传递数据,记录一下Parcel的使用方法
这篇其实算是ebpf0x0
kotlin compose 学习笔记
不算非常难的题,但是对于没有app逆向经验的新人来说是挺好的上手题目
记录一些速查的kotlin高频函数和API,省的太久不写忘了