int main(int argc, char * argv[]) { param_addr = (bool **) malloc(NB_FN_MAX * sizeof(bool *)); is_instrumented = (bool *) calloc(NB_FN_MAX, sizeof(bool)); nb_p = (unsigned int *) calloc(NB_FN_MAX, sizeof(unsigned int)); param_in = new list<param_t *>(); param_out = new list<param_t *>(); /* Initialize symbol table code, needed for rtn instrumentation */ PIN_InitSymbols(); PIN_SetSyntaxIntel(); if (PIN_Init(argc, argv)) return 1; ifile.open(KnobInputFile.Value().c_str()); ofile.open(KnobOutputFile.Value().c_str()); // INS_AddInstrumentFunction(Instruction, 0); INS_AddInstrumentFunction(Instruction, 0); fn_registry_init(NB_FN_MAX); vector<bool> unknown_int_idx; fn_registered(FID_UNKNOWN, 0, unknown_int_idx); /* Register Fini to be called when the application exits */ PIN_AddFiniFunction(Fini, 0); PIN_StartProgram(); return 0; }
//! The pintool's entry point int main(int argc, char *argv[]) { PIN_InitSymbols(); PIN_SetSyntaxIntel(); if(PIN_Init(argc, argv)) return Usage(); /* Init the Triton module */ triton::bindings::python::inittriton(); /* Define Triton architecure */ if (sizeof(void*) == QWORD_SIZE) tracer::pintool::api.setArchitecture(triton::arch::ARCH_X86_64); else tracer::pintool::api.setArchitecture(triton::arch::ARCH_X86); /* During the execution provide concrete values only if Triton needs them - cf #376, #632 and #645 */ tracer::pintool::api.addCallback(tracer::pintool::context::needConcreteRegisterValue); tracer::pintool::api.addCallback(tracer::pintool::context::needConcreteMemoryValue); /* Image callback */ IMG_AddInstrumentFunction(IMG_Instrumentation, nullptr); /* Instruction callback */ TRACE_AddInstrumentFunction(TRACE_Instrumentation, nullptr); /* End instrumentation callback */ PIN_AddFiniFunction(callbackFini, nullptr); /* Syscall entry callback */ PIN_AddSyscallEntryFunction(callbackSyscallEntry, nullptr); /* Syscall exit callback */ PIN_AddSyscallExitFunction(callbackSyscallExit, nullptr); /* Signals callback */ PIN_InterceptSignal(SIGHUP, callbackSignals, nullptr); PIN_InterceptSignal(SIGINT, callbackSignals, nullptr); PIN_InterceptSignal(SIGQUIT, callbackSignals, nullptr); PIN_InterceptSignal(SIGILL, callbackSignals, nullptr); PIN_InterceptSignal(SIGABRT, callbackSignals, nullptr); PIN_InterceptSignal(SIGFPE, callbackSignals, nullptr); PIN_InterceptSignal(SIGKILL, callbackSignals, nullptr); PIN_InterceptSignal(SIGSEGV, callbackSignals, nullptr); PIN_InterceptSignal(SIGPIPE, callbackSignals, nullptr); PIN_InterceptSignal(SIGALRM, callbackSignals, nullptr); PIN_InterceptSignal(SIGTERM, callbackSignals, nullptr); PIN_InterceptSignal(SIGBUS, callbackSignals, nullptr); /* Exec the Pin's python bindings */ tracer::pintool::initBindings(argc, argv); tracer::pintool::execScript(KnobPythonModule.Value().c_str()); return 0; }
int main(int argc, char *argv[]) { if(PIN_Init(argc, argv)){ return Usage(); } PIN_SetSyntaxIntel(); PIN_AddSyscallEntryFunction(Syscall_entry, 0); INS_AddInstrumentFunction(Instruction, 0); PIN_StartProgram(); return 0; }
int main(int argc, char *argv[]) { PIN_InitSymbols(); if(PIN_Init(argc, argv)){ return Usage(); } PIN_SetSyntaxIntel(); IMG_AddInstrumentFunction(Image, 0); INS_AddInstrumentFunction(Instruction, 0); PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { nb_param_int = (unsigned int *) malloc(NB_FN_MAX * sizeof(unsigned int)); nb_param_int_stack = (unsigned int *) malloc(NB_FN_MAX * sizeof(unsigned int)); nb_param_float = (unsigned int *) malloc(NB_FN_MAX * sizeof(unsigned int)); nb_param_float_stack = (unsigned int *) malloc(NB_FN_MAX * sizeof(unsigned int)); has_return = (unsigned int *) calloc(NB_FN_MAX, sizeof(bool)); param_is_not_addr = (bool **) malloc(NB_FN_MAX * sizeof(bool *)); nb_call = (unsigned int *) malloc(NB_FN_MAX * sizeof(unsigned int)); param_val = (list<UINT64> ***) malloc(NB_FN_MAX * sizeof(list<UINT64> **)); nb_out = (unsigned int **) malloc(NB_FN_MAX * sizeof(unsigned int*)); /* Initialize symbol table code, needed for rtn instrumentation */ PIN_InitSymbols(); PIN_SetSyntaxIntel(); if (PIN_Init(argc, argv)) return 1; ofile.open(KnobOutputFile.Value().c_str()); INS_AddInstrumentFunction(Instruction, 0); IMG_AddInstrumentFunction(image_loaded, 0); /* Register Fini to be called when the application exits */ PIN_AddFiniFunction(Fini, 0); debug_trace_init(); fn_registry_init(NB_FN_MAX); vector<UINT32> unknown_int_idx; fn_registered(FID_UNKNOWN, 0, 0, 0, 0, 0, unknown_int_idx); register_functions_from_arity_log(); PIN_StartProgram(); return 0; }