Тема: Lineage 2 HF5
Показать сообщение отдельно
Непрочитано 21.12.2012, 22:08   #24
Забанен за кидаловo/обман/развод

По умолчанию Re: Lineage 2 HF5

Ай попорчу бизнес. Крипт есть, но до того фальшивый, что обходится банальным реверсом ключа с дсетапа + хуком. Гото - жук, и совершайте сеарчинг по форуму. 1н умелый товарищ вам свободно продаст готовый хук, после предъявления ему - Дсетапа.
Ну и далее, данный протект - не в коем случае не ССР(Как кто-то выше писал):
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
	if (fdwReason == DLL_PROCESS_ATTACH)
	{
		DisableThreadLibraryCalls(hinstDLL);
 
		//InitConsole();
 
		LoadTrayIcon(hinstDLL, 1);
 
		if (!DisableGameGuard())
		{
			ErrorExit("Disable Game Guard Fail!");
			Sleep(INFINITE);
		}
 
		if (!SetHooks())
		{
			ErrorExit("Set Hooks Fail!");
			Sleep(INFINITE);
		}
	}
 
	if (fdwReason == DLL_PROCESS_DETACH)
	{
		FreeTrayIcon(1);
	}
 
	return true;
}
 
bool LoadTrayIcon(HINSTANCE hInst, unsigned int ID)
{
	ghMutex = CreateMutexA(0, false, "First Guard");
 
	if (GetLastError() == ERROR_ALREADY_EXISTS)
	{
		CloseHandle(ghMutex);
		return true;
	}
 
	WNDCLASSEXA wcx;
	NOTIFYICONDATAA niData; 
 
	memset(&wcx, 0, sizeof(WNDCLASSEXA));
 
	wcx.cbSize = sizeof(wcx);
	wcx.lpfnWndProc = WndProc;
	wcx.hInstance = hInst;
	wcx.lpszClassName = "tray_icon";
 
	if ((RegisterClassExA(&wcx) == 0) && (GetLastError() != ERROR_CLASS_ALREADY_EXISTS))
		return false;
 
	if ((hWND = CreateWindowExA(0, "tray_icon", 0, 0, 0, 0, 0, 0, 0, 0, hInst, 0)) == 0)
		return false;
 
	memset(&niData, 0, sizeof(NOTIFYICONDATAA));
 
	niData.cbSize = sizeof(NOTIFYICONDATAA);
	niData.uID = ID;
	niData.uFlags = NIF_ICON | NIF_TIP;
	niData.hWnd = hWND;
	strcpy_s(niData.szTip, "First Guard");
 
	niData.hIcon = (HICON) LoadImageA(hInst, MAKEINTRESOURCEA(IDI_TRAYICON), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_DEFAULTCOLOR);
 
	if (!Shell_NotifyIconA(NIM_ADD, &niData))
		return false;
 
	return true;
}
 
void FreeTrayIcon(unsigned int ID)
{
	NOTIFYICONDATAA niData; 
 
	memset(&niData, 0, sizeof(NOTIFYICONDATAA));
	niData.cbSize = sizeof(NOTIFYICONDATAA);
	niData.hWnd = hWND;
	niData.uID = ID;
 
	Shell_NotifyIconA(NIM_DELETE, &niData);
 
	CloseHandle(ghMutex);
}
Code: C++
Ну и так далее Много лишнего. Есть правда бонусы - парсер ХВИД(правда убогий, но все же), возможность перенаправлять коннекты(опять же, без криптера (темиды, армадилы и т.д), 5минутный барьер). Ну а в принципе, толк в протекте есть, но он мал для "Серьезных" проектов, без весьма солидного реворка.
KilRoy вне форума Отправить сообщение для KilRoy с помощью ICQ Отправить сообщение для KilRoy с помощью Skype™ Ответить с цитированием