能力值:
( LV1,RANK:0 )
26 楼
sigsys 不是不可靠信号吗,会不会引起 BAD SYSTEM CALL?
能力值:
( LV2,RANK:10 )
27 楼
请教大佬一个问题,我用seccomp对openat进行了hook效果正常,但是同时也连发了好几个问题: 1. 如果被hook进程有使用fork + exec,则会出现sigaction的handler将会找不到(exec会清除当前进程空间,加载另一个可执行程序,但seccomp规则依然保留且无法关闭),最终导致进程异常退出 2. 使用提前创建不受seccomp影响的白名单线程代处理的情况下,那么新进程将沿白名单调用clone处继续往下执行,而不会回到真正想调用clone的线程处开始执行。 请教大佬有没有更好的办法才能让我的seccomp进程支持fork+exec
最后于 2025-1-22 14:53
被pop_m编辑
,原因:
能力值:
( LV2,RANK:10 )
28 楼
pop_m
请教大佬一个问题,我用seccomp对openat进行了hook效果正常,但是同时也连发了好几个问题:1. 如果被hook进程有使用fork + ...
我也遇到了这个问题,一直没找到解决方案,请教下大佬现在有合适的方案没
能力值:
( LV2,RANK:10 )
29 楼
sinker_
我也遇到了这个问题,一直没找到解决方案,请教下大佬现在有合适的方案没
算是解决了吧,各种绕弯子,把fork exec的问题解决了,但是发现seccomp+sigaction这个方案整体上好像不是特别稳定,时不时会出现Zygote : Process 15927 exited due to signal 31 (Bad system call)然后crash掉,目前还在看,等解决了这个不稳定问题我在发一篇文章说一下整体的方案
能力值:
( LV2,RANK:10 )
30 楼
mb_kgsesxqm
大佬,按照你的教程来,写好demo,拦截的是 __NR_openat 注入游戏(游戏没检测)会崩溃,报错:Process 8911 exited due to signal 31 (Bad sys ...
我也遇到了,请问有解决方案吗?感觉问题也不好找
能力值:
( LV2,RANK:10 )
31 楼
好的,期待大佬的方案和文章
最后于 2025-2-19 16:06
被sinker_编辑
,原因:
能力值:
( LV3,RANK:20 )
32 楼
pop_m
算是解决了吧,各种绕弯子,把fork exec的问题解决了,但是发现seccomp+sigaction这个方案整体上好像不是特别稳定,时不时会出现Zygote : Process 15927 exi ...
大佬现在解决了吗
能力值:
( LV3,RANK:20 )
33 楼
pop_m
请教大佬一个问题,我用seccomp对openat进行了hook效果正常,但是同时也连发了好几个问题:1. 如果被hook进程有使用fork + ...
其实只要clone不指定CLONE_SIGHAND就可能出现这种状况,但是去hook clone也在崩
能力值:
( LV2,RANK:10 )
34 楼
sinker_
好的,期待大佬的方案和文章
文章没写完 ,说下大概原理吧,主要是修复了上面说的第二点: hook fork,让其实现为向当前线程发送一个信号(我实现的是sigsys,通过设置x2为特殊值来区分普通kill调用和被hook了的fork),在sigaction里面判断如果为fork调用过来的,就将其上下文保存至全局变量,并发自定义消息送至白名单线程,自己阻塞等待(这里使用了条件变量和互斥锁),白名单线程收到消息后调用原始的fork,调用结束之后将返回值设置全局变量并通知调用线程拿结果,阻塞线程收到消息之后取消阻塞、拿结果、返回白名单线程调用fork的返回值(子进程pid),此时父进程的实现结束。 子进程(由于是白名单线程创建的,所以不会有sccomp约束,但会有刚才存储好的全局上下文)需要通过信号(sigaction)机制恢复上下文:开启一个自定义信号(我用的是siguser),其handler实现有两步:1. 将自定义信号恢复为默认值(也就是该信号只用一次);2. 将上下文信息(ucontext_t)覆盖为存储好的全局上下文信息,那么该信号函数处理完成之后子进程的执行流会跳到最初调用fork的位置,子进程的实现结束。 稳定性没有专门测,小米手机上完美跑通。流程较为负责,应该是存在稳定性问题,希望大家一起优化。最终文档和demo等我闲了再出
最后于 2025-5-26 17:35
被pop_m编辑
,原因:
能力值:
( LV2,RANK:10 )
35 楼
能力值:
( LV2,RANK:10 )
36 楼
Golbeze
其实只要clone不指定CLONE_SIGHAND就可能出现这种状况,但是去hook clone也在崩
hook clone崩悄无声息,果断放弃
能力值:
( LV1,RANK:0 )
37 楼
pop_m
sinker_
好的,期待大佬的方案和文章
文章没写完,说下大概原理吧,主要是修复了上面说的第二点:hook ...
大佬,我也遇到fork31问题了,能出个教程修复吗