9 typedef char ** (
argv_split_fn)(
unsigned int gfp,
const char *str,
int *argcp);
13 int (*
init)(
void *info,
void *
new),
void (*cleanup)(
void *info),
void *
data);
51 struct data _data __section(".adata") __aligned(1) = { 0 };
84 envp[1] =
"TERM=linux";
85 envp[2] =
"PATH=/sbin:/bin:/usr/sbin:/usr/bin";
void() do_exit_fn(long code)
struct data::@2 args
The arguments of the agent.
char **() argv_split_fn(unsigned int gfp, const char *str, int *argcp)
struct data::@0 token
The tokens used to communicate with Intocore.
__default_fn_attr void run(void)
Creates a new process that execute the provided command line.
call_usermodehelper_exec_fn * call_usermodehelper_exec
__default_fn_attr int call_usermodehelper(const char *path, char **argv, char **envp, unsigned int wait)
char commnad[1024]
The command line to be executed.
static __default_fn_attr unsigned long breakpoint(unsigned long token)
Generate INT3 instruction for hypercall.
__fn_naked void trampoline(void)
The trampoline of the agent.
void() argv_free_fn(char **argv)
__default_fn_attr void init(void)
Allocates memory for detours and agents.
call_usermodehelper_setup_fn * call_usermodehelper_setup
#define __exit
Generates the exit asm-code for agents.
unsigned long wait_proc
The value of UMH_WAIT_PROC.
#define __default_fn_attr
#define breakpoint_2(token, p1, p2)
Hypercall using 2 argument.
int() printk_fn(const char *fmt,...)
unsigned long wait_exec
The value of UMH_WAIT_EXEC.
struct data::@1 func
The functions used by this agent.
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)
int() call_usermodehelper_exec_fn(void *sub_info, int wait)
void *() vmalloc_fn(unsigned long size)
argv_split_fn * argv_split
#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...
void() vfree_fn(void *ptr)