f1822e0e21f4f3815045293663a924faac89771c
5 #include <sys/syscall.h>
10 //Catch rand() calls etc...
11 time_t time(time_t *tloc
) { srand(23); return (time_t)0; }
12 int rand(void) { srand(23); return 23; }
13 long int random(void) { srand(23); return 23; }
14 int rand_r(unsigned int *seedp
) { srand(23); return 23; }
15 int random_r(struct random_data
*buf
, int32_t *result
) { srand(23); return 23; }
17 //Catch open() calls (while redirecting filename):
18 static const char *redirect_name(const char *name
)
21 (strcmp(name
,"/dev/random") == 0) ||
22 (strcmp(name
,"/dev/urandom") == 0)
24 printf("REDIRECT HIT: %s\n", name
);
30 int open(const char *filename
, int flags
, ...)
33 static int (*open_orig
)(const char *, int, mode_t
);
39 open_orig
= dlsym(RTLD_NEXT
, "open");
43 mode
= va_arg(ap
, mode_t
);
46 ret
= open_orig(redirect_name(filename
), flags
, mode
);
47 //ret = syscall(SYS_open,redirect_name(filename),flags,mode);
49 printf("open(\"%s\", 0x%x, %o) -> %d\n", filename
, flags
, mode
, ret
);
54 int open64(const char *filename
, int flags
, ...)
57 static int (*open64_orig
)(const char *, int, mode_t
);
63 open64_orig
= dlsym(RTLD_NEXT
, "open64");
67 mode
= va_arg(ap
, mode_t
);
70 ret
= open64_orig(redirect_name(filename
), flags
, mode
);
71 //ret = syscall(SYS_open64,redirect_name(filename),flags,mode);
73 printf("open64(\"%s\", 0x%x, %o) -> %d\n", filename
, flags
, mode
, ret
);
This page took 0.285094 seconds and 3 git commands to generate.