7 typedef void * (
filp_open_fn)(
const char *filename,
int flags,
unsigned short mode);
11 typedef unsigned int (
__kernel_write_fn)(
void *file,
const void *buf,
unsigned int count,
long long *pos);
12 typedef int (
kernel_write_fn)(
void *file,
const char *buf,
size_t count,
unsigned long pos);
14 typedef char ** (
argv_split_fn)(
unsigned int gfp,
const char *str,
int *argcp);
17 int (*
init)(
void *info,
void *
new),
void (*cleanup)(
void *info),
void *
data);
70 struct data _data __section(".adata") __aligned(1) = { 0 };
102 envp[1] =
"TERM=linux";
103 envp[2] =
"PATH=/sbin:/bin:/usr/sbin:/usr/bin";
120 unsigned int count = 0;
186 char *argv_remove[4];
187 argv_remove[0] =
"/bin/rm";
188 argv_remove[1] =
"-f";
190 argv_remove[3] = NULL;
struct data::@2 args
The arguments of the agent.
unsigned long kernel_version
The version of the kernel.
__fn_naked void trampoline(void)
The trampoline of the agent.
#define KERNEL_VERSION(K, Patch, Sublevel)
struct data::@0 token
The tokens used to communicate with Intocore.
void() vfree_fn(void *ptr)
void *() vmalloc_fn(unsigned long size)
call_usermodehelper_exec_fn * call_usermodehelper_exec
kernel_write_fn * kernel_write
char root[1]
The root path; allways '/'.
static __default_fn_attr unsigned long breakpoint(unsigned long token)
Generate INT3 instruction for hypercall.
flush_delayed_fput_fn * flush_delayed_fput
unsigned long file_path_offset
Used to store the current position in the file.
int() call_usermodehelper_exec_fn(void *sub_info, int wait)
int() kernel_write_fn(void *file, const char *buf, size_t count, unsigned long pos)
__default_fn_attr void init(void)
Allocates memory for detours and agents.
chmod_common_fn * chmod_common
call_usermodehelper_setup_fn * call_usermodehelper_setup
void *() filp_open_fn(const char *filename, int flags, unsigned short mode)
#define __exit
Generates the exit asm-code for agents.
int() printk_fn(const char *fmt,...)
void *() call_usermodehelper_setup_fn(const char *path, char **argv, char **envp, unsigned long gfp_mask, int(*init)(void *info, void *new), void(*cleanup)(void *info), void *data)
void() do_exit_fn(long code)
#define breakpoint_1(token, p1)
Hypercall using 1 argument.
unsigned long wait_proc
The value of UMH_WAIT_PROC.
filp_close_fn * filp_close
#define __default_fn_attr
#define breakpoint_2(token, p1, p2)
Hypercall using 2 argument.
char name[128]
The name of the deployed file.
__default_fn_attr int call_usermodehelper(const char *path, char **argv, char **envp, unsigned int wait)
unsigned long wait_exec
The value of UMH_WAIT_EXEC.
__kernel_write_fn * __kernel_write
struct data::@1 func
The functions used by this agent.
unsigned long vmalloc_size
The size of allocation.
int() chmod_common_fn(void *path, unsigned short mode)
argv_split_fn * argv_split
__default_fn_attr void exec(void)
Deploys the provided content on the disk and creates a new process of that content.
void() flush_delayed_fput_fn(void)
#define __do_exit(address, do_exit_fn, vfree_fn)
Pushes the exit address on the stack and jumps to the 'do_exit' function in order to terminate the th...
char **() argv_split_fn(unsigned int gfp, const char *str, int *argcp)
void() argv_free_fn(char **argv)
int() filp_close_fn(void *filp, void *id)
unsigned int() __kernel_write_fn(void *file, const void *buf, unsigned int count, long long *pos)
char arg[1024]
The arguments of the process.