You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I try to intercept a few syscalls. And I decided to run example.c listed inside README to see if it works.
#include <libsyscall_intercept_hook_point.h>
#include <syscall.h>
#include <errno.h>
static int
hook(long syscall_number,
long arg0, long arg1,
long arg2, long arg3,
long arg4, long arg5,
long *result)
{
if (syscall_number == SYS_getdents) {
/*
* Prevent the application from
* using the getdents syscall. From
* the point of view of the calling
* process, it is as if the kernel
* would return the ENOTSUP error
* code from the syscall.
*/
*result = -ENOTSUP;
return 0;
} else {
/*
* Ignore any other syscalls
* i.e.: pass them on to the kernel
* as would normally happen.
*/
return 1;
}
}
static __attribute__((constructor)) void
init(void)
{
// Set up the callback function
intercept_hook_point = hook;
}
$ cc example.c -lsyscall_intercept -fpic -shared -o example.so
$ LD_LIBRARY_PATH=. LD_PRELOAD=example.so ls
However, ls works. It shows everything under the current directory.
I am using Ubuntu 22.04.2 LTS.
Could anyone help me with that?
The text was updated successfully, but these errors were encountered:
I try to intercept a few syscalls. And I decided to run example.c listed inside README to see if it works.
However, ls works. It shows everything under the current directory.
I am using Ubuntu 22.04.2 LTS.
Could anyone help me with that?
The text was updated successfully, but these errors were encountered: