Перейти к содержанию
Авторизация  
straikmen

Клиент часть FT-guard epilogue

Рекомендуемые сообщения

возьми engine.dll от хф,найди там адресс,который уже есть в защите.

возьми engine от епилога и посмотри в нем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

возьми engine.dll от хф,найди там адресс,который уже есть в защите.

возьми engine от епилога и посмотри в нем.

Чем открыть engine.dll ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем открыть engine.dll ?

 

otkr_1.jpg

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Лол, а программным способом то как?)

Ответ в вопросе 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответ где то тут но вот где?

 

 

void _fastcall new_Render(unsigned int This, unsigned int EDX, unsigned int FRenderInterface)
{
mainThread = GetCurrentThreadId();
 
RECT L2Rect;
HWND *L2hWND = (HWND*) GetProcAddress(LoadLibraryA("core.dll"), "?GTopWnd@@3PAUHWND__@@A");
 
true_Render(This, EDX, FRenderInterface);
 
GetClientRect(*L2hWND, &L2Rect);
 
for (int i = 0; i < 16; i++)
{
if (SpecialStrings.isDraw)
{
if (i == 15)
{
time_t rawtime;
struct tm timeinfo;
wchar_t exstr[16], newstr[64];
 
time(&rawtime);
localtime_s(&timeinfo, &rawtime);
wcsftime(exstr, 15, L"%H:%M", &timeinfo);
wcscpy_s(newstr, SpecialStrings.text);
wcscat_s(newstr, exstr);
 
true_DrawTextTTFToCanvas(Canvas, 0, L2Rect.right - SpecialStrings.x, L2Rect.top + SpecialStrings.y, newstr, &SpecialStrings.FontDrawInfo, 0xFF, 0, 0, 0);
}
else
true_DrawTextTTFToCanvas(Canvas, 0, L2Rect.right - SpecialStrings.x, L2Rect.top + SpecialStrings.y, SpecialStrings.text, &SpecialStrings.FontDrawInfo, 0xFF, 0, 0, 0);
}
}
}
 
void _fastcall new_MasterProcessPreRender(unsigned int This, unsigned int EDX, unsigned int UCanvas)
{
Canvas = UCanvas;
 
true_MasterProcessPreRender(This, EDX, UCanvas);
}
 
bool DisableGameGuard(void)
{
unsigned long oldProtect;
unsigned char *GL2UseGameGuard;
 
GL2UseGameGuard = (unsigned char *) GetProcAddress(LoadLibraryA("core.dll"), "?GL2UseGameGuard@@3HA");
 
if(GL2UseGameGuard == 0)
return false;
 
if(!VirtualProtect(GL2UseGameGuard, 1, PAGE_READWRITE, &oldProtect))
return false;
 
*GL2UseGameGuard = 0;
 
if(!VirtualProtect(GL2UseGameGuard, 1, oldProtect, &oldProtect))
return false;
 
return true;
}
 
unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");
 
unsigned int startVMT = (unsigned int) hEngine + 0x203B0B90;
unsigned int AddNetworkQueue = (unsigned int) GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPacket@@@Z");
unsigned int currVMT = startVMT;
 
if (AddNetworkQueue == 0)
return 0;
 
while (true)
{
if (*(unsigned int*) currVMT == AddNetworkQueue)
return *(unsigned int*) (currVMT - 0xA4);
 
currVMT++;
if (currVMT - startVMT > 10000)
return 0;
}
 
return 0;
}
 
bool SetHooks(void)
{
FARPROC addr;
HMODULE hEngine = LoadLibraryA("engine.dll"), hNtDlll = LoadLibraryA("ntdll.dll");
MODULEINFO modinfo;
 
GetModuleInformation(GetCurrentProcess(), hEngine, &modinfo, sizeof(MODULEINFO));
 
hEngineStart = (unsigned int) hEngine;
hEngineEnd = hEngineStart + modinfo.SizeOfImage - 1;
 
GetModuleInformation(GetCurrentProcess(), hNtDlll, &modinfo, sizeof(MODULEINFO));
 
hNtDllStart = (unsigned int) hNtDlll;
hNtDllEnd = hNtDllStart + modinfo.SizeOfImage - 1;
 
if ((KiUserExceptDispADR = (unsigned int) GetProcAddress(LoadLibraryA("ntdll.dll"), "KiUserExceptionDispatcher")) == 0)
return false;
 
if (*(unsigned char*) (KiUserExceptDispADR) == 0xFC)
KiUserExceptDispADR++;
 
if ((addr = GetProcAddress(LoadLibraryA("ws2_32.dll"), "connect")) == 0)
return false;
 
true_connect = (_connect) splice((unsigned char*) addr, new_connect);
 
if ((addr = GetProcAddress(hEngine, "?AddNetworkQueue@UNetworkHandler@@UAEHPAUNetworkPacket@@@Z")) == 0)
return false;
 
true_AddNetworkQueue = (_AddNetworkQueue) splice((unsigned char*) addr, new_AddNetworkQueue);
 
if ((addr = (FARPROC) GetSendPacketAddress()) == 0)
return false;
 
true_SendPacket = (_SendPacket) splice((unsigned char*) addr, new_SendPacket);
 
if ((addr = GetProcAddress(hEngine, "?MasterProcessPreRender@UInteractionMaster@@QAEXPAVUCanvas@@@Z")) == 0)
return false;
 
true_MasterProcessPreRender = (_MasterProcessPreRender) splice((unsigned char*) addr, new_MasterProcessPreRender);
 
if ((addr = GetProcAddress(hEngine, "?DrawTextTTFToCanvas@UCanvas@@QAEHHHPB_WPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z")) == 0)
return false;
 
true_DrawTextTTFToCanvas = (_DrawTextTTFToCanvas) addr;
 
if ((addr = GetProcAddress(hEngine, "?Render@FPlayerSceneNode@@UAEXPAVFRenderInterface@@@Z")) == 0)
return false;
 
true_Render = (_Render) splice((unsigned char*) addr, new_Render);
 
return true;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
return DefWindowProcW(hWnd, uMsg, wParam, lParam);
}
 
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);
}
 
int DirectXSetupGetVersion(void)
{
return 0;
}
 
void InitConsole(void)
{
AllocConsole();
 
stdout->_file = _open_osfhandle((intptr_t) GetStdHandle(STD_OUTPUT_HANDLE), 0);
stdin->_file = _open_osfhandle((intptr_t) GetStdHandle(STD_INPUT_HANDLE), 0);
stderr->_file = _open_osfhandle((intptr_t) GetStdHandle(STD_ERROR_HANDLE), 0);
}
 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Явно ты мне помочь не хочешь, зачем тогда в тему заходить?)

 

Потому что вы не хотите использовать то, что обычно находится в черепной коробке. И скорее всего перепутали вкладки в браузере с гуглом :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Потому что вы не хотите использовать то, что обычно находится в черепной коробке. И скорее всего перепутали вкладки в браузере с гуглом :)

Открыл engine.dll сверил все адреса engine.dll епилога  и хф.

 

Все вроде как сходится.

Изменено пользователем straikmen

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответ где то тут 0x203B0B90 и ещё в одном месте...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ответ где то тут 0x203B0B90 и ещё в одном месте...

Хз даже....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хз даже....

 

"АП"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы вместо того чтобы хрень писать, лучше голову включите. Большинству помогает. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы вместо того чтобы хрень писать, лучше голову включите. Большинству помогает. 

Ну вчера же случилось что то с вашей защитой :D

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я весь код в защите прочитал в голову ничего не пришло, был бы рад вашей помощи. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

500р, адаптирую.

Вы же там в голос орали что у вас допиленный FT а теперь дали ссылку на шару :D

 

И да, раз на то пошло.

Эту защиту Вы скачали на ЗГ в посте где якобы парень слил допиленный FT.

После чего предлагаете поделится тем что уже давно в шаре при оказании вам услугу настройки.

 

Я вас разочарую, тут нет шифрации ни в вашей защите ни в длл.

То что тут называют шифрацией обходится с закрытыми глазами. 

Не вижу смысла ставить этот мусор на сервер.

Изменено пользователем HideWar

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

500р, адаптирую.

Вы же там в голос орали что у вас допиленный FT а теперь дали ссылку на шару :D

 

И да, раз на то пошло.

Эту защиту Вы скачали на ЗГ в посте где якобы парень слил допиленный FT.

После чего предлагаете поделится тем что уже давно в шаре при оказании вам услугу настройки.

 

Я вас разочарую, тут нет шифрации ни в вашей защите ни в длл.

То что тут называют шифрацией обходится с закрытыми глазами. 

Не вижу смысла ставить этот мусор на сервер.

Это не допиленная, я начал сначала с этой и бо есть исход джанки на котором привязана эта защита, после как справлюсь с этой, начну с другой.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Просто обалденная защита, место которой на помойке) умеет разве что выводить текст на экран и всё :bad: ну ещё мак адрес читает  :db:

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это не допиленная, я начал сначала с этой и бо есть исход джанки на котором привязана эта защита, после как справлюсь с этой, начну с другой.

 

Цену адаптации я назвал.

Все остальное меня не волнует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Цену адаптации я назвал.

Все остальное меня не волнует.

Пшел отсюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...