我已经编写了一个android应用程序来监视正在运行的进程的系统调用,但是我得到的所有内容是“Operation not permitted ”。我试图禁用SElinux并使用“chmod 4777 strace”和chown“root:root strace”来启用strace上的root访问权限,但我仍然无法解决问题。该应用程序在仿真器4.3(API 18)上运行。“strace -p pid”给出了“attach:ptrace(PTRACE_ATTACH,...):不允许的操作”
0
A
回答
1
进程可以禁用跟踪,即使作为root用户也无法附加方法。
如果目标进程无法从strace接收信号(如果以超级用户身份运行,这被排除,尽管我不确定strace实际上是否处理好东西),EPERM可以被触发,目标进程本身是setuid禁用跟踪),以及跟踪是否仅由进程本身禁用。另外,一个进程最多可以跟踪一个调试器。
不可拖动的流程不能通过strace连接。一个进程可以将自己设置为不可拖动,并且它也会自动发生在UID更改(由于setuid位或setuid系统调用)
0
在某些情况下,在Android上执行strace会失败,并显示“ptrace(PTRACE_ATTACH,...) :操作不允许“,因为strace已经在运行Android
$ adb shell su -c ps | grep的strace的 根15861 1 1056 4 do_wait 00000452cc小号
一旦旧的运行strace的进程被终止,新的调用可能会成功:
$ ADB壳苏-c pkill的strace的
相关问题
- 1. PTRACE_ATTACH不允许用于
- 2. mknod的操作不允许
- 3. os.chroot不允许的操作
- 4. shmget的:操作不允许
- 5. IsolatedStorageFileStream不允许的操作
- 6. MongoDB的操作不允许
- 7. 不允许的操作(1)
- 8. Redis的“操作不允许”
- 9. mmap:不允许操作
- 10. GDB的ptrace操作不允许
- 11. 链接()操作不允许
- 12. python操作不允许(graphtecprint)
- 13. CHOWN:操作不允许
- 14. glm :: vec2不允许操作
- 15. SENDTO:不允许操作:netsnmp
- 16. chgrp:不允许操作?
- 17. IsolatedStorageFileStream不允许操作
- 18. 创建操作不允许
- 19. os.setsid操作不允许
- 20. PHP-FPM:操作不允许
- 21. 克隆:不允许操作
- 22. 不允许Docker&nginx操作
- 23. setgid():不允许操作
- 24. Css验证器给出了不允许的错误
- 25. spark rest api/api/v1给出了不允许的方法
- 26. Watchman com.github.facebook.watchman.plist:不允许的操作
- 27. FFMPEG av_interleaved_write_frame():不允许的操作
- 28. Npm操作不允许的问题
- 29. Redis的(错误)ERR操作不允许
- 30. IsolatedStorageFileStream上不允许的操作
感谢您的解释。我注意到,当从android应用程序运行“Strace cat”文件“-o/path”时,在“file”上跟踪“cat”的输出将根据指定的路径生成一个文件。但是,通过“Strace -p(PID zygote进程)-f -o/path我得到一个空文件,知道我试图分叉随机应用程序,希望从与这些应用程序关联的新生成的子进程中获取系统调用(Zygote是所有的Android应用程序进程的父母) –
我试图直接strace一个子进程没有追查zygote,但徒劳无功,我遇到了同样的问题。你有什么建议吗?我在一个论坛上的某个地方看到我不记得名字,有可能修改内核以便进行跟踪Currenlty我正在使用API 15. –
为了修改内核,你需要一个有根的设备(我想你已经拥有了它)。API就是内核之上的东西所以它实际上是irelevant。替换内核不是应用程序可以做的 –