Пример #1
0
__declspec(dllexport) int APIENTRY DllMain(HMODULE hModule, DWORD reason, LPVOID reserved)
#endif

{
	unsigned long TID = __readgsdword(0x48);

	if (loadSystemDebugControl == NULL)
	{
		HMODULE dNTdll = GetModuleHandleA("ntdll.dll");
		loadSystemDebugControl = (NtSystemDebugControl)GetProcAddress(dNTdll, "NtSystemDebugControl");
	}

	if (reason == DLL_PROCESS_ATTACH)
	{
		if (AllocConsole()) {
			freopen("CONOUT$", "w", stdout);
			SetConsoleTitle(L"EhTrace Debug Window");
			wprintf(L"DLL loaded.\n");
			if (loadSystemDebugControl != NULL)
				wprintf(L"also ready for DEBUG MSR WRITE");
		}
		ConfigMap = ConnectConfig();
		wprintf(L"Connecting ConfigMap %p\n", ConfigMap);

		// logger will spin the thread if logs are not picked up fast enough
		SetupLogger(STRACE_LOG_BUFFER_SIZE);
		Initalize(NULL);

		InstallThread(TID, 2);
		//hPulseThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PulseThreads, 0, 0, NULL);
		//NoLogThrId = GetThreadId(hPulseThread);

		//wprintf(L"Symbol count is %llx\n", ConfigMap->SymCnt);
		//ConnectSymbols(ConfigMap->SymCnt);

	}
	else if (reason == DLL_THREAD_ATTACH)
	{
		// setup monitoring of this thread
		UnTracedThreadCount++;
		InstallThread(TID, 3);
	}
	else if (reason == DLL_THREAD_DETACH)
	{
		ExitThreadTable(TID, true);
		
		if(CtxTable[TID].insn != NULL)
			cs_free(CtxTable[TID].insn, 1);

		memset(&CtxTable[TID], 0, sizeof(ExecutionBlock));
		wprintf(L"Cleaned up thread %d\n", TID);

	}
	wprintf(L"done in dllmain\n");
	return TRUE;
}
void Solve()
{
    int ss, tt;
    while ( ~scanf("%d %d", &ss, &tt), ss+tt!=-2 )
    {
        Initalize( ss, tt );
        Floyd( ss );
        output( ss, tt );
    }// start point and destination
}// Solve
Пример #3
0
void XForm::Initalize(Ray& r, Vector& s, bool isWorldToLocal)
{
	Initalize();

	if(m_isWorldToLocal = isWorldToLocal)
	{
		*this -= r.p;
		*this >>= r.d;
		*this /= s;

	}
Пример #4
0
int main()
#endif
{
	SetupLogger(STRACE_LOG_BUFFER_SIZE);
	//NoLogThrId = GetCurrentThreadId();

	HMODULE dNTdll = GetModuleHandleA("ntdll.dll");
	loadSystemDebugControl = (NtSystemDebugControl)GetProcAddress(dNTdll, "NtSystemDebugControl");
	if (loadSystemDebugControl == NULL)
		wprintf(L"Not using NtSystemDebugControl\n");

	if (Initalize(vEhTracer))
		wprintf(L"Initialize failed\n");
#ifdef ALIB_BUILD
	printf("installing on current thread\n");
	// this is since were a static lib attach
	InstallThread(GetCurrentThreadId(), 9);
	return 0;
#endif

	HANDLE hTestThr = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)DoRandomTestStuff, 0, CREATE_SUSPENDED, NULL);

	InstallThread(GetThreadId(hTestThr), 4);
	ResumeThread(hTestThr);

	//wprintf(L"hit a key to start dumping logs");
#if STANDALONE_APREP
	Step_Event* se;
	while (true)
	{
		se = LogPopIP();
		if(se != NULL && se->RIP != 0)
		{
			// major slowdown if we do this ;)
#if FALSE
			wprintf(L"tid [%d] flags[%x] rip[%llx]\n", se->u.TID, se->u.eFlags, se->RIP);
#endif
			se->RIP = 0;
			se->u.Synth = 0;
			se = NULL;
		}
		Sleep(0);
	}
#endif
	Sleep(-1);
	return 0;
}
Пример #5
0
XForm::XForm(Ray& r, Vector& s, bool isWorldToLocal)
{
	Initalize(r, s, isWorldToLocal);
}
Пример #6
0
void CD3DDevWrapper::SetD3DDev(LPDIRECT3DDEVICE9 pD3DDev)
{
	m_pD3DDev = pD3DDev;
	Initalize();
}
Пример #7
0
 Engine::Engine()
 {
     Initalize();
 }