int main(int argc, char * argv[]) { // Initialize pin PIN_InitSymbols(); if (PIN_Init(argc, argv)) return Usage(); start_symbol = KnobStartSymbol.Value(); stop_symbol = KnobStopSymbol.Value(); LOG ( "start symbol" + start_symbol + "\n"); LOG ( "stop symbol = " + stop_symbol + "\n"); PIN_InitLock(&lock); tls_key = PIN_CreateThreadDataKey(0); PIN_AddThreadStartFunction(ThreadStart, 0); PIN_AddThreadFiniFunction(ThreadFini, 0); RTN_AddInstrumentFunction(Routine, 0); PIN_AddFiniFunction(Fini, 0); PIN_StartProgram(); return 0; }
int main(int argc, char *argv[]) { PIN_InitSymbols(); if( PIN_Init(argc,argv) ) { return Usage(); } dl1 = new DL1::CACHE("L1 Data Cache", KnobCacheSize.Value() * KILO, KnobLineSize.Value(), KnobAssociativity.Value()); INS_AddInstrumentFunction(Instruction, 0); #ifdef USER_PROFILE RTN_AddInstrumentFunction(Routine, 0); #endif //IMG_AddInstrumentFunction( Image, 0); PIN_AddFiniFunction(Fini, 0); // Never returns PIN_StartProgram(); delete dl1; return 0; }
// argc, argv are the entire command line, including pin -t <toolname> -- ... int main(int argc, char * argv[]) { fp = fopen ("set_xmm_scratches_for_ymmtest.out", "w"); // initialize memory area used to set values in ymm regs for (int i =0; i<64; i++) { xmmInitVals[i] = 0xdeadbeef; } PIN_InitSymbols(); // Initialize pin PIN_Init(argc, argv); // Register Instruction to be called to instrument the vmovdqu instruction of LoadYmm0 RTN_AddInstrumentFunction(InstrumentRoutine, 0); PIN_AddFiniFunction(OnExit, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char *argv[]) { std::ifstream configFile; configFile.open("userfuncs.in"); std::string s; while (std::getline(configFile, s)) { userFuncs.push_back(s); } configFile.close(); // std::vector<std::string>::iterator it; // for (it = userFuncs.begin(); it != userFuncs.end(); ++it) { // std::string str = *it; // printf("func: %s\n", str.c_str()); // } trace = fopen("user.trace", "w"); PIN_Init(argc, argv); PIN_InitSymbols(); RTN_AddInstrumentFunction(Routine, 0); PIN_AddFiniFunction(Fini, 0); PIN_StartProgram(); return 0; }
// argc, argv are the entire command line, including pin -t <toolname> -- ... int main(int argc, char * argv[]) { // initialize memory area used to set values in ymm regs for (int i =0; i<64; i++) { xmmInitVals[i] = 0xdeadbeef; } PIN_InitSymbols(); // Initialize pin PIN_Init(argc, argv); printf ("filename %s\n", KnobOutputFileName.Value().c_str()); fp = fopen (KnobOutputFileName.Value().c_str(), "w"); // Register Instruction to be called to instrument the movdqa instruction of DoXmm RTN_AddInstrumentFunction(InstrumentRoutine, 0); //INS_AddInstrumentFunction(Instruction, 0); PIN_AddDebugInterpreter(OnCommand, 0); PIN_AddFiniFunction(OnExit, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
/*! * The main procedure of the tool. * This function is called when the application image is loaded but not yet started. * @param[in] argc total number of elements in the argv array * @param[in] argv array of command line arguments, * including pin -t <toolname> -- ... */ int main(int argc, char *argv[]) { // Initialize symbol processing PIN_InitSymbols(); // Initialize PIN library. Print help message if -h(elp) is specified // in the command line or the command line is invalid if(PIN_Init(argc,argv)) { return Usage(); } const string fileName = KnobOutputFile.Value(); if (!fileName.empty()) { out = new std::ofstream(fileName.c_str()); } // Register Routine to be called to instrument rtn RTN_AddInstrumentFunction(Routine, 0); // Register function to be called when the application exits PIN_AddFiniFunction(Fini, NULL); // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char *argv[]) { PIN_InitSymbols(); if( PIN_Init(argc,argv) ) { return Usage(); } #ifdef SECOND_TIME ReadLongInstAddr(); #endif INS_AddInstrumentFunction(Instruction, 0); #ifdef USER_PROFILE RTN_AddInstrumentFunction(Routine, 0); #endif //IMG_AddInstrumentFunction( Image, 0); PIN_AddFiniFunction(Fini, 0); // Never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { // Initialize symbol table code, needed for rtn instrumentation PIN_InitSymbols(); PIN_Init(argc, argv); RTN_AddInstrumentFunction(instrument_routine, 0); PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); PIN_InitSymbols(); RTN_AddInstrumentFunction(InstrumentRtn, 0); PIN_AddFiniFunction(OnExit, 0); PIN_StartProgram(); return 0; }
/*! * The main procedure of the tool. */ int main(int argc, char *argv[]) { PIN_InitSymbols(); PIN_Init(argc, argv); RTN_AddInstrumentFunction(InstrumentRoutine, 0); CODECACHE_AddCacheFlushedFunction(OnCacheFlush, 0); PIN_StartProgram(); return 0; }
int main(INT32 argc, CHAR **argv) { PIN_Init(argc, argv); RTN_AddInstrumentFunction(Rtn, 0); // Never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); PIN_InitSymbols(); RTN_AddInstrumentFunction(InstrumentRtn, 0); INS_AddInstrumentFunction(InstrumentIns, 0); PIN_InterceptDebuggingEvent(DEBUGGING_EVENT_BREAKPOINT, InterceptBreakpoint, 0); PIN_AddFiniFunction(OnExit, 0); PIN_StartProgram(); return 0; }
int main(int argc, char **argv) { PIN_Init(argc, argv); PIN_InitSymbols(); IMG_AddInstrumentFunction(Image, 0); RTN_AddInstrumentFunction(Rtn, 0); PIN_AddFiniFunction(Fini, 0); PIN_StartProgram(); return 0; }
int main(INT32 argc, CHAR **argv) { PIN_InitSymbols(); PIN_Init(argc, argv); Out = fopen("mtflush.out", "w"); RTN_AddInstrumentFunction(InstrumentRoutine, 0); CODECACHE_AddCacheFlushedFunction(OnCacheFlush, 0); PIN_StartProgram(); return 0; }
int mainRoutine() { TraceAntiDebug.open("logs\\antidebug_routines.out"); TraceAntiVirtual.open("logs\\antivirtual_routines.out"); TraceAntiSandbox.open("logs\\antisandbox_routines.out"); TraceRegistry.open("logs\\registry.out"); RTN_AddInstrumentFunction(Routine, 0); PIN_AddFiniFunction(RoutinesFini, 0); IMG_AddInstrumentFunction(Image, (VOID *) 1); PIN_AddFiniFunction(Fini, 0); return 0; }
int main(int argc, char * argv[]) { PIN_InitSymbols(); PIN_Init(argc, argv); RTN_AddInstrumentFunction(Rtn, 0); PIN_AddFiniFunction(Fini, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); PIN_InitSymbols(); InitLock(&Lock); IMG_AddInstrumentFunction(OnImage, 0); RTN_AddInstrumentFunction(InstrumentRtn, 0); PIN_InterceptDebuggingEvent(DEBUGGING_EVENT_BREAKPOINT, Intercept, 0); PIN_InterceptDebuggingEvent(DEBUGGING_EVENT_ASYNC_BREAK, Intercept, 0); PIN_AddFiniFunction(OnExit, 0); PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_InitSymbols(); if(PIN_Init(argc, argv)) { cerr << "This Pintool modifies return values in certain memory addresses." << endl; cerr << endl << KNOB_BASE::StringKnobSummary() << endl; return 0; } INS_AddInstrumentFunction(traceInst, 0); RTN_AddInstrumentFunction(Routine, 0); IMG_AddInstrumentFunction(Image, (VOID *) 1); PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_InitSymbols(); PIN_Init(argc, argv); TRACE_AddInstrumentFunction(Trace, 0); INS_AddInstrumentFunction(Ins, 0); RTN_AddInstrumentFunction(Rtn, 0); IMG_AddInstrumentFunction(Image, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char **argv) { /* Initializations */ output = fopen("trace.out", "w"); instr_count = 0; max_instr_count = 0; htable_init(&addresses, addr_hash, NULL); PIN_InitSymbols(); PIN_Init(argc, argv); /* Instrumentation */ RTN_AddInstrumentFunction(Routine, 0); INS_AddInstrumentFunction(Instruction, 0); PIN_AddFiniFunction(fini, 0); PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); PIN_InitSymbols(); fout.open(KnobOutfile.Value().c_str(), std::ios_base::out); PIN_AddForkFunction(FPOINT_AFTER_IN_CHILD, FollowChild, 0); PIN_AddForkFunction(FPOINT_AFTER_IN_PARENT, FollowParent, 0); PIN_AddForkFunction(FPOINT_BEFORE, BeforeFork, 0); PIN_AddFiniFunction(Fini, 0); RTN_AddInstrumentFunction(InstrumentRtn, 0); PIN_StartProgram(); return 0; }
// argc, argv are the entire command line, including pin -t <toolname> -- ... int main(int argc, char * argv[]) { // Initialize symbol table code, needed for rtn instrumentation PIN_InitSymbols(); // Initialize pin PIN_Init(argc, argv); // Register Routine to be called to instrument rtn RTN_AddInstrumentFunction(Routine, 0); // Register Fini to be called when the application exits PIN_AddFiniFunction(Fini, 0); // Start the program, never returns PIN_StartProgram(); return 0; }
/****************************************************************** Title:main Function:Entrance function of the application Input: int argc:The number of the arguments char * argv[]:The arguments list passed by command line Output: int return value:0 is correct, negative means a exception *******************************************************************/ int main(int argc, char * argv[]) { hasFound = 0; MemoryRecorder recorder; memManager = &recorder; //manulMarkTainted(); /* print out the state of memory*/ initHandlerFuns(); initHandlerTable(); beginHandle(); /*fprintf(output,"****************************************************\n"); fprintf(output,"Before the application\n"); memManager->printState(output);*/ PIN_InitSymbols(); MVFdata[0].sign=0; CFWdata[0].sign=0; CFMWdata[0].sign=0; /* Initialize pin */ PIN_Init(argc, argv); /* Register instruction to be called to instrument instruction */ INS_AddInstrumentFunction(instruction, 0); RTN_AddInstrumentFunction(TaintSource, 0); /* Register fini to be called when the application exits */ PIN_AddFiniFunction(fini, 0); /* Start the program, never returns */ PIN_StartProgram(); //endHandle(); return 0; }
/***************************************************************************** 函 数 名 : main 功能描述 : 程序总入口 输入参数 : int argc char **argv 输出参数 : 无 返 回 值 : 调用函数 : 被调函数 : 修改历史 : 1.日 期 : 2012年4月21日 作 者 : @zhi 修改内容 : 新生成函数 *****************************************************************************/ int main(int argc, char **argv) { //initial pin tool if (PIN_Init(argc, argv)) { return usage(); } //initial pin symbols table PIN_InitSymbols(); //rtn level RTN_AddInstrumentFunction(rtn, 0); //call when finish PIN_AddFiniFunction(finish, 0); //start pin program PIN_StartProgram(); return 0; }
int main(int argc, char *argv[]) { // Initialize PIN library. Print help message if -h(elp) is specified // in the command line or the command line is invalid if( PIN_Init(argc,argv) ) { return Usage(); } PIN_InitSymbols(); string fileName = KnobOutputFile.Value(); if (!fileName.empty()) { out = new std::ofstream(fileName.c_str());} // Register function to be called to instrument traces //TRACE_AddInstrumentFunction(Trace, 0); //INS_AddInstrumentFunction(Instruction,0); IMG_AddInstrumentFunction(Image,0); RTN_AddInstrumentFunction(Routine, 0); // Register function to be called for every thread before it starts running PIN_AddThreadStartFunction(ThreadStart, 0); // Register function to be called when the application exits PIN_AddFiniFunction(Fini, 0); cerr << "===============================================" << endl; cerr << "This application is instrumented by MyPinTool" << endl; if (!KnobOutputFile.Value().empty()) { cerr << "See file " << KnobOutputFile.Value() << " for analysis results" << endl; } cerr << "===============================================" << endl; // Start the program, never returns PIN_StartProgram(); return 0; }
int main(int argc, char * argv[]) { PIN_Init(argc, argv); PIN_InitSymbols(); RegThreadInfo = PIN_ClaimToolRegister(); if (RegThreadInfo == REG_INVALID()) { std::cout << "Out of tool registers" << std::endl; PIN_ExitProcess(1); } // Get the test type and initialize the corresponding lock variable. // TestType = GetTestType(KnobTest.Value()); switch (TestType) { case TEST_NONE: std::cout << "Must specify a test to run with the '-test' knob" << std::endl; PIN_ExitProcess(1); break; case TEST_INVALID: std::cout << "Invalid test name: " << KnobTest.Value() << std::endl; PIN_ExitProcess(1); break; case TEST_LOCK_INTEGRITY: case TEST_LOCK_STRESS: PIN_InitLock(&Lock); break; case TEST_MUTEX_INTEGRITY: case TEST_MUTEX_STRESS: case TEST_MUTEX_TRYSTRESS: PIN_MutexInit(&Mutex); break; case TEST_WRITER_INTEGRITY: case TEST_WRITER_STRESS: case TEST_WRITER_TRYSTRESS: case TEST_READER_STRESS: case TEST_READER_TRYSTRESS: case TEST_RW_INTEGRITY: case TEST_RW_STRESS: case TEST_RW_TRYSTRESS: PIN_RWMutexInit(&RWMutex); break; case TEST_SEMAPHORE: PIN_SemaphoreInit(&Sem1); PIN_SemaphoreInit(&Sem2); PIN_SemaphoreSet(&Sem1); PIN_MutexInit(&Mutex); break; case TEST_TRYLOCKS: PIN_MutexInit(&Mutex); PIN_RWMutexInit(&RWMutex); PIN_SemaphoreInit(&Sem1); break; default: ASSERTX(0); } PIN_AddThreadStartFunction(OnThreadStart, 0); PIN_AddThreadFiniFunction(OnThreadFini, 0); RTN_AddInstrumentFunction(InstrumentRtn, 0); PIN_AddFiniFunction(OnExit, 0); PIN_StartProgram(); return 0; }