Releases: SeeFlowerX/stackplz
stackplz_v2.0.0_beta7
- 加入了read/write等调用的数据获取,目前最大4096字节
都说momo检测很强,我们来学习一下,毕竟在内核的观测下,它的一举一动都将被记录下来。
在开启和关闭Zygisk-LSPosed的情况下,分别记录所有的syscall调用,看看有什么不同吧~
在Zygisk-LSPosed开启后,momo会提示Zygote被注入,看来可能和图上有关系呢
测试条件:
- momo v4.4.1
- Zygisk-LSPosed v1.8.6
- Magisk v26.1
./stackplz --name io.github.vvb2060.mahoshojo --syscall all -o momo.log其他:
- 常规的uprobe的hook已经恢复,参数读取这几天就会完成
./stackplz --name io.github.vvb2060.mahoshojo --symbol strstr --stack -o strstr.logstackplz_v2.0.0_beta6
stackplz_v2.0.0_beta5
- 支持了更多syscall
- 支持了pid/tid黑名单
- 其他改进
stackplz_v2.0.0_beta4
添加了更多syscall,并且修复了获取stat数据失败的情况
stackplz_v2.0.0_beta1
已经初步合并了estrace的特性,并进行了大量整合,当然还有相当多细节没有完善,但是希望大家能及时体验到新版的能力,先发布pre-release版本
注意: 仅支持5.10+的内核,目前syscall部分对于arm32的支持还没有做。
整合之后的新版本,不再通过stack或者syscall这样的子命令来区分,改为--stack和--syscall来区分了
另外追踪syscall是指定函数名,而不是之前的系统调用号了,另外要追踪全部syscall,那么使用这样的命令:--syscall all
重点: 新版中添加了一个-b/--buffer选项,用于指定ebpf的环形缓冲区大小,增大该设定的数值可以有效避免buffer full,也就是数据丢失的问题
如果出现了下面的问题,可以多试几次,以及先结束调不必要的进程
failed to create perf ring for CPU 0: can't mmap: cannot allocate memory
其他: 引入了新的so基址获取方案,安卓13暂不支持,后续将进行适配
参考命令:
./stackplz -n com.starbucks.cn --syscall openat --getpc -o tmp.log./stackplz -n com.starbucks.cn --stack --symbol open -o tmp.log./stackplz --name com.sfx.ebpf --library libnative-lib.so --symbol _Z5func1v --stack./stackplz -n com.starbucks.cn -b 120 --syscall all -o tmp.logstackplz_v2.0.0_beta3
- 加入了更多syscall支持
- 修复某些情况下字符串获取失败
- 支持all标识追踪已经支持的所有syscall
- 过滤逻辑优化
stackplz_v2.0.0_beta2
stackplz近期做了很大的改动,加入了更多的特性和优化,目前仅支持Android arm64 syscall追踪
相关特性如下:
命令示意(在/data/local/tmp下执行):
./stackplz --name com.starbucks.cn --syscall execve -o tmp.log --debug
./stackplz --uid 2000 --syscall getcwd -o tmp.log --debug说明:
- 目前仅适配了部分高频syscall
- 仅支持arm64
- 多个syscall用逗号隔开
stackplz_v1.9.0
stackplz_v1.8.0
添加--no-tids选项,支持过滤掉特定的线程;比如hook recv总是有几个线程一直在接收...这个时候(黑名单)过滤掉就好了
后续对pid也添加黑白名单功能








