Sindbad~EG File Manager
# pipe _______________________________________________________
#
# long sys32_pipe(int __user *fd)
# Not available in newer kernels.
@define _SYSCALL_PIPE32_NAME
%(
name = "pipe"
%)
probe syscall.pipe32 = dw_syscall.pipe32 !, nd_syscall.pipe32 ? {}
probe syscall.pipe32.return = dw_syscall.pipe32.return !, nd_syscall.pipe32.return ? {}
# dw_pipe32 _____________________________________________________
probe dw_syscall.pipe32 = kernel.function("sys32_pipe")?
{
@_SYSCALL_PIPE32_NAME
flags = 0;
flag_str = ""
if (@defined($fd)) {
fildes_uaddr = $fd
if (fildes_uaddr == 0) {
pipe0 = 0;
pipe1 = 0;
argstr = "NULL"
} else {
pipe0 = user_int(&$fd[0]);
pipe1 = user_int(&$fd[1]);
argstr = sprintf("[%d, %d]", pipe0, pipe1);
}
} else {
fildes_uaddr = 0;
pipe0 = 0;
pipe1 = 0;
argstr = "[0, 0]";
}
}
probe dw_syscall.pipe32.return = kernel.function("sys32_pipe").return?
{
@_SYSCALL_PIPE32_NAME
flags = 0;
if (@defined(@entry($fd))) {
fildes_uaddr = @entry($fd)
if (fildes_uaddr == 0) {
pipe0 = 0;
pipe1 = 0;
} else {
pipe0 = @entry(user_int(&$fd[0]));
pipe1 = @entry(user_int(&$fd[1]));
}
} else {
fildes_uaddr = 0;
pipe0 = 0;
pipe1 = 0;
}
@SYSC_RETVALSTR($return)
}
# nd_pipe32 _____________________________________________________
probe nd_syscall.pipe32 = kprobe.function("sys32_pipe")?
{
@_SYSCALL_PIPE32_NAME
asmlinkage()
argstr = sprintf("%p", pointer_arg(1))
}
probe nd_syscall.pipe32.return = kprobe.function("sys32_pipe").return?
{
@_SYSCALL_PIPE32_NAME
@SYSC_RETVALSTR(returnval())
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists