First Guard - не хукает клиент ...

Violence

Гений мысли
Проверенный
Победитель в номинации 2019
Мастер реакций
Любитель реакций
Знаток великого письма
Знаток письма
Куратор Данных
Старожил I степени
Медаль за активность на Форуме
Преподаватель
За веру и верность форуму
За заслуги перед форумом
Сообщения
1 046
Розыгрыши
1
Репутация
2 246
Реакции
1 281
Баллы
1 808
Собственно сборка в ней вшит ft guard
из кода фт гуарда понял что он переадресует порты и айпи ну и тупо высвечивает данные о онлайне и прочей фигне
дык вот запустил в логах сервера всё хорошо - фёрст включен и активирован , скомпилил клиент часть фт клиент тупо не запускаеться и жалуется на то что якобы не может хукнуть , куда мне рыть кто подскажет ?
 

Если в конфигах порты правильно указал то только клиент, системку поставь 267 протоколом, на 273 глючит таким образом
 
Если в конфигах порты правильно указал то только клиент, системку поставь 267 протоколом, на 273 глючит таким образом
Уже сталкивались или просто его не делали под 273 протокол ?
 
Сталкивался, года 3 тому назад, помогло только смена протокола на 267 (тогда сам автор дал мне свою системку и всё заработало)
 
Написать килрою и взять новые смещения на нужный патч ХФ. Бесплатно вроде хелпует
 

    Violence

    Баллов: 10
    Без комментариев
Написать килрою и взять новые смещения на нужный патч ХФ. Бесплатно вроде хелпует
Думаете он возьмётся за бесплатно ?
Сталкивался, года 3 тому назад, помогло только смена протокола на 267 (тогда сам автор дал мне свою системку и всё заработало)
Действительно в 268 идёт а на 273 нет :(
 
Естественно там адрес хукается
 
Нет там ищется адрес в engine.dll который находится и нужно указать, но зачем если этот хлам ничего не умеет кроме вывода надписей?
 
Нет там ищется адрес в engine.dll который находится и нужно указать, но зачем если этот хлам ничего не умеет кроме вывода надписей?
Да ув.kick я прекрасно понимаю что кроме вывода надписей и прочего хлама он ничего не делает. А по поводу engine.dll , спасибо за наводку.
 
Если Вы о том не перемутил ли я с настройкой ip адресов и port , то это врят ли , тут прикол весь в клиент части , 273 не тащет :(

Под 273 протокол, смещение: 0x147D96.
 
Последнее редактирование модератором:

    Violence

    Баллов: 10
    Без комментариев
Под 273 протокол, смещение: 0x147D96.
По всей видимости одним смещением тут не обойтись ... заменил , скомпилировал , вставил ... тоже самое :*( , придётся более тщательнее изучать код.
 
По всей видимости одним смещением тут не обойтись ... заменил , скомпилировал , вставил ... тоже самое :*( , придётся более тщательнее изучать код.

Покажите как у Вас выглядит эта функция GetSendPacketAddress().
Скорей всего заменили не так как нужно, потому-что у меня все работает.
 
Факт в том, что engine.dll может быть другой и соответственно другое смещение
 
Покажите как у Вас выглядит эта функция GetSendPacketAddress().
Скорей всего заменили не так как нужно, потому-что у меня все работает.
Код:
unsigned int GetSendPacketAddress(void)
{
    HMODULE hEngine = LoadLibraryA("engine.dll");

    unsigned int startVMT = (unsigned int) hEngine + 0x147D96;
    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;
}
 
Код:
unsigned int GetSendPacketAddress(void)
{
    HMODULE hEngine = LoadLibraryA("engine.dll");

    unsigned int startVMT = (unsigned int) hEngine + 0x147D96;
    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;
}

Поправьте:
(unsigned int) hEngine + 0x147D96
на
(unsigned int) (hEngine + 0x147D96)

Хотя вряд ли поможет, может скинете свою engine.dll, гляну... ?
 
Последнее редактирование:
Поправьте:
(unsigned int) hEngine + 0x147D96
на
(unsigned int) (hEngine + 0x147D96)

Хотя вряд ли поможет, может скинете свою engine.dll, гляну... ?
Зачем? Мы кастим hEngine, чтобы без ошибок сложить с 0x147D96. 0x147d96 то уже unsigned int. Нужно смотреть у себя, по какому адресу в памяти находится точка входа дллки (если не ошибаюсь, именно туда адресуется hEngine). По идее, смотрится в дебаггерах, мб прокатит даже PETools.

Оффтоп:
Знатоки Си, вот допустим есть такая строчка:
(void) obj1.ptrFunc();
где ptrFunc - функция, возвращающая указатель. Будет ли утечка памяти? Или же возврат значения после каста к воиду не учитывается и можно спокойно юзать? А то увидел такую строчку и аж интересно стало.

Оффтоп:
Киииик, запили плагин к форуму на подсветку синтаксиса для различных языков, ааа... :Brushing:
№2
 
Последнее редактирование:
Зачем? Мы кастим hEngine, чтобы без ошибок сложить с 0x147D96. 0x147d96 то уже unsigned int. Нужно смотреть у себя, по какому адресу в памяти находится точка входа дллки (если не ошибаюсь, именно туда адресуется hEngine). По идее, смотрится в дебаггерах, мб прокатит даже PETools.

Оффтоп:
Знатоки Си, вот допустим есть такая строчка:
(void) obj1.ptrFunc();
где ptrFunc - функция, возвращающая указатель. Будет ли утечка памяти? Или же возврат значения после каста к воиду не учитывается и можно спокойно юзать? А то увидел такую строчку и аж интересно стало.

Оффтоп:
Киииик, запили плагин к форуму на подсветку синтаксиса для различных языков, ааа... :Brushing:
№2
Так и так есть. Делается это легко, но нужно подумать и привести в нормальный вид. IDA в помощь
 
Последнее редактирование модератором:
Назад
Сверху Снизу