測試方法:
警 告
以下程序(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!
下例是采用ptrace( PT_ATTACH, ... )企圖跟蹤一個不可執行文件:
$ ls -l testfile
-rwx--x--x 1 root root 216916 Dec 4 11:59 testfile
$ ./testfile
waiting... <-- 假設testfile運行後保持,並沒有立即結束
從另外一個shell上執行跟蹤命令:
$ strace -p 11535 <-- 假設testfile進程號是11535
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted
因為testfile不可讀,跟蹤失敗,這是正確的安全限制。
--------------------------------------------------------------------------
下例采用子進程方式成功跟蹤了一個不可讀文件:
$ strace testfile
SYS_197(0x3, 0xbffff650, 0x40197d40, 0x80cca38, 0x3) = -1 ENOSYS (Function not implemented)
fstat(3, {st_mode=S_IFREG|0644, st_size=1744, ...}) = 0
mmap(0, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40015000
...
建議:
升級內核到2.4