Exemple #1
0
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;
}
Exemple #8
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;
}
Exemple #11
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;
}
Exemple #14
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;
}
Exemple #22
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;
}
Exemple #23
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;
}
Exemple #25
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;
}
Exemple #26
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;
}