Уже сталкивались или просто его не делали под 273 протокол ?Если в конфигах порты правильно указал то только клиент, системку поставь 267 протоколом, на 273 глючит таким образом
Думаете он возьмётся за бесплатно ?Написать килрою и взять новые смещения на нужный патч ХФ. Бесплатно вроде хелпует
Действительно в 268 идёт а на 273 нетСталкивался, года 3 тому назад, помогло только смена протокола на 267 (тогда сам автор дал мне свою системку и всё заработало)
Если Вы о том не перемутил ли я с настройкой ip адресов и port , то это врят ли , тут прикол весь в клиент части , 273 не тащетЕстественно там адрес хукается
Да ув.kick я прекрасно понимаю что кроме вывода надписей и прочего хлама он ничего не делает. А по поводу engine.dll , спасибо за наводку.Нет там ищется адрес в engine.dll который находится и нужно указать, но зачем если этот хлам ничего не умеет кроме вывода надписей?
Если Вы о том не перемутил ли я с настройкой ip адресов и port , то это врят ли , тут прикол весь в клиент части , 273 не тащет
По всей видимости одним смещением тут не обойтись ... заменил , скомпилировал , вставил ... тоже самое :*( , придётся более тщательнее изучать код.Под 273 протокол, смещение: 0x147D96.
По всей видимости одним смещением тут не обойтись ... заменил , скомпилировал , вставил ... тоже самое :*( , придётся более тщательнее изучать код.
Покажите как у Вас выглядит эта функция 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;
}
Не исключено.Факт в том, что engine.dll может быть другой и соответственно другое смещение
Код: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; }
Зачем? Мы кастим hEngine, чтобы без ошибок сложить с 0x147D96. 0x147d96 то уже unsigned int. Нужно смотреть у себя, по какому адресу в памяти находится точка входа дллки (если не ошибаюсь, именно туда адресуется hEngine). По идее, смотрится в дебаггерах, мб прокатит даже PETools.Поправьте:
(unsigned int) hEngine + 0x147D96
на
(unsigned int) (hEngine + 0x147D96)
Хотя вряд ли поможет, может скинете свою engine.dll, гляну... ?
Так и так есть. Делается это легко, но нужно подумать и привести в нормальный вид. IDA в помощьЗачем? Мы кастим hEngine, чтобы без ошибок сложить с 0x147D96. 0x147d96 то уже unsigned int. Нужно смотреть у себя, по какому адресу в памяти находится точка входа дллки (если не ошибаюсь, именно туда адресуется hEngine). По идее, смотрится в дебаггерах, мб прокатит даже PETools.
Оффтоп:Знатоки Си, вот допустим есть такая строчка:
(void) obj1.ptrFunc();
где ptrFunc - функция, возвращающая указатель. Будет ли утечка памяти? Или же возврат значения после каста к воиду не учитывается и можно спокойно юзать? А то увидел такую строчку и аж интересно стало.
№2Оффтоп:Киииик, запили плагин к форуму на подсветку синтаксиса для различных языков, ааа...
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?