Ft guard клиент epilogue

Vodka TreasureHunter

Выдающийся
Местный
За веру и верность форуму
Сообщения
371
Розыгрыши
0
Репутация
242
Реакции
174
Баллы
1 388
С трудом и потом, я прикрутил защиту фт гвард к моей сборке, ну как прикрутил пару файлов с исходников джанки перекинул и сборочка завелась.
Но теперь проблема lvl 2.
Клиент часть, как ее под епилог подогнать то?

Исходя из всего того что мне сказали надо переделать подключение к движку(адрес)
ADDR 0x203B0B90

unsigned int GetSendPacketAddress(void)
{
HMODULE hEngine = LoadLibraryA("engine.dll");

unsigned int startVMT = (unsigned int) hEngine + 0x51F658;
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;
}
Отличие с епилогом есть только в одной функции
?DrawTextTTFToCanvas@UCanvas@@QAEHHHPBGPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z

Без понятия что делать, буду рад любой помощи.

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

Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Последнее редактирование модератором:
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Без причины никто, я думаю, репу просто так бы не понижал (хотя есть исключения). Возможно кому-то перешел дорогу, или обидел. Взять, например, тот случай с Гремори, он же не обязан тебе помогать, но ты все равно решил ему угрожать и создали срач на форуме, если бы ты заплатил ему, а он не сделал свою работу, тогда да, совсем другое дело. И даже тогда лучше четко, ясно и адекватно изложить свое мнение, а не орать во всю гортань поливая грязью.
 
Без причины никто, я думаю, репу просто так бы не понижал (хотя есть исключения). Возможно кому-то перешел дорогу, или обидел. Взять, например, тот случай с Гремори, он же не обязан тебе помогать, но ты все равно решил ему угрожать и создали срач на форуме, если бы ты заплатил ему, а он не сделал свою работу, тогда да, совсем другое дело. И даже тогда лучше четко, ясно и адекватно изложить свое мнение, а не орать во всю гортань поливая грязью.
В случае с Гремори он был обязан помогать, поскольку произошла сделка и он дал обещание что если баг будет он поможет, как с защитой так и с фиксом.
Но не того и не того в окончательной версии я не дождался и пришлось все делать самому, выпиливать с исходов джанки.

Я эму серьезного ничего не предъявляю, я только выложил скрины, народ должен знать своих героев.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Я эму серьезного ничего не предъявляю, я только выложил скрины, народ должен знать своих героев.
все вас поняли уже раз 200 зачем еще раз повторять - дллку могу дать на определенный IP чисто для теста что ты там напривязывал (сурс нет)
 
Откуда у валета - козыря в рукаве? Вангую, сервер не взлетит.
 
Откуда у валета - козыря в рукаве? Вангую, сервер не взлетит.
Я не буду первый сервер делать топовым, сначала пару лоу серверов что бы придрочиться, после уже что то получше.
Не стал бы вообще открывать, если бы пару идей не было.
 
рви попу дальше , l2phx тебе в руки не знают только те у кого давно закрыто

тебя же жизнь научила не обращаться к Гремори , но видать ты пиздабольная жопализная гнида которая опять лезет к нему за помощью , что больше помогать не кто не хочет ? (ой а как ты всем красиво строчишь в ПМы просишь о помощи вообще ржач, и как только человек отказывается помогать так ты сразу заливаешь человека дерьмом , ЖУУУТТТЬЬЬ - вы ТРОЛЬ не более , который хочет всея всего на халяву ,(занялся сурсом есть желание учись , а не собирай фиксы по сторонам или по помощи )< (хотя почему соберешь по сторонам потом резко появится тима эпилога с крутой крутой реализация и будет талкание за бабло))


PS по теме бери шаровую Длл джанки пиши Ip в l2.ini или плати тем кто поможет и радуйся (других вариантов нет так как своим поведением вам не кто за спасибо делать не будет)
Чем ваш друг гремори может помочь ему? Мне кажется у вашего друга даже по менее знаний будет.
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
СГ\ФТ\РГ - в мусорку (вы думаете что он защищает от хлапы или обхода??.... вы очень заблуждаетесь господа.....)
 
Чем ваш друг гремори может помочь ему? Мне кажется у вашего друга даже по менее знаний будет.
Ты случайно не знаешь что за проблема, скомпилил клиент часть для епилога, дохожу до выбора сервера и ничего в гсе пусто, с защитой и без зайти на сервер не могу.
Проблема скорей всего в протоколе, не знаешь где его поменять в исходах клиентки?
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Ты случайно не знаешь что за проблема, скомпилил клиент часть для епилога, дохожу до выбора сервера и ничего в гсе пусто, с защитой и без зайти на сервер не могу.
Проблема скорей всего в протоколе, не знаешь где его поменять в исходах клиентки?
не полностью привязана защита на уровне сервера
 
не полностью привязана защита на уровне сервера
Не надо меня не туда направлять, на сборке джанки тоже не работает, но вот когда менял на ней протокол с 152 на 260+ то уже в гсе пишет что я пытался приконектится.
 
Не надо меня не туда направлять, на сборке джанки тоже не работает, но вот когда менял на ней протокол с 152 на 260+ то уже в гсе пишет что я пытался приконектится.
ты точно уверен что кто-то будет отправлять тебя по иному адресу кроме как [А по щам?]?
 
не полностью привязана защита на уровне сервера
На сервер даже с выключенной защитой не заходит.
Я поменял только для епилога
unsigned int startVMT = (unsigned int) hEngine + 0x4E994C;
?DrawTextTTFToCanvas@UCanvas@@QAEHHHPBGPBVFontDrawInfo@@EHHPBV?$TArray@PAVFontDrawInfoSection@@@@@Z

Я что то забыл?
 
Назад
Сверху Снизу