能力值:
( LV9,RANK:230 )
101 楼
你去proot搜这段代码,poke_reg(tracee, STACK_POINTER, peek_reg(tracee, ORIGINAL, STACK_POINTER)); 在syscall.c这里,注释是Restore tracee's stack pointer now, if it won't hit the sysexit stage ,可能我当时理解错了。
能力值:
( LV1,RANK:0 )
102 楼
珍惜Any
你去proot搜这段代码,poke_reg(tracee, STACK_POINTER, peek_reg(tracee, ORIGINAL, STACK_POINTER)); 在syscall.c这 ...
嗯,这个注释确实有点误导
能力值:
( LV1,RANK:0 )
103 楼
有一个没看懂,我看proot创建那么多tracee干嘛,如果要是调试一个进程的话创建一个tracee不就好了,为什么要创建一个链表存tracee
能力值:
( LV9,RANK:230 )
104 楼
sanqiu
有一个没看懂,我看proot创建那么多tracee干嘛,如果要是调试一个进程的话创建一个tracee不就好了,为什么要创建一个链表存tracee
不是的呀 ,好几个点你没考虑到:
1、有的apk可能多个进程,比如一个服务就是一个进程,都需要去attah 。这也是一个tracee 。
2、有的服务会阻塞,举个例子 ,比如服务暂停了,又启动了,这种情况肯定还需要去查找tracee的状态的 。
能力值:
( LV1,RANK:0 )
105 楼
最近在研究apk签名。加个好友。
能力值:
( LV1,RANK:0 )
106 楼
poke_reg(tracee, STACK_POINTER, peek_reg(tracee, ORIGINAL, STACK_POINTER)) 这行代码的作用到底是什么啊。
我确定不是通过恢复sp指针导致exit_stop,而是通过restart的时候使用了PRACE_SYSCALL。那么为什么要在处理完enter_stop恢复sp指针呢?
比如调用openat的时候看起来会在栈上开辟空间(就是sp -= size),来存放translate后的new_path,但是将存放第二个参数的寄存器地址指向了新new_path地址后,最后会调用到这行恢复sp指针的位置。就是说最后openat系统调用传递的第二个参数,指向了比栈顶sp指针还小的位置,这样真的可行吗?
最后于 2024-8-31 20:00
被胖子鱼编辑
,原因: 编辑文本格式
能力值:
( LV9,RANK:230 )
107 楼
胖子鱼
poke_reg(tracee, STACK_POINTER, peek_reg(tracee, ORIGINAL, STACK ...
你可以看看proot那个代码,或许对你有一定的帮助。
能力值:
( LV1,RANK:0 )
108 楼
珍惜Any
你可以看看proot那个代码,或许对你有一定的帮助。
谢谢大佬回复,我也搜索了很久,甚至都找到了您当年在google group里提的问题
能力值:
( LV9,RANK:230 )
109 楼
能力值:
( LV4,RANK:40 )
110 楼
看了proot的项目 再看这篇文章 恍然大悟 以前明不明白的 现在 懂了 哈哈哈哈 感谢!!!!
能力值:
( LV9,RANK:230 )
111 楼
逆天而行
看了proot的项目 再看这篇文章 恍然大悟 以前明不明白的 现在 懂了 哈哈哈哈 感谢!!!!
嗯呢 ,我之前也是这种感觉,proot太深了,我看了好久几年前,反复看反复打日志,移植到android上才搞明白 很多人根本没看懂的
能力值:
( LV1,RANK:0 )
112 楼
youxiu
能力值:
( LV1,RANK:0 )
113 楼
使用ptrace会在 /proc/pid/status里留下痕迹 ,通过 Seccomp + BPF 实现 svc 过滤,修改寄存器值,也能实现文件重的定向。而且不会暂停进程.
------------------------------------------------------------- 一直在做 指纹对抗,可以加个好友一起交流
qq:371821257
最后于 2025-5-5 21:19
被mb_dbcowcyw编辑
,原因:
能力值:
( LV2,RANK:10 )
114 楼
牛叉,膜拜