myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 

> PtokaX 0.5.0.1 Mod, Модификация PtokaX от alex82

alex82
сообщение 4.3.2013, 17:39
Сообщение #81


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




Поскольку исходники PtokaX нынче доступны в полном
объеме (включая проекты Visual Studio), у многих анонимусов
руки так и чешутся запилить форк сего замечательного хабсофта.
Я оказался в их числе big_smile.gif

PtokaX 0.5.0.1 Mod


Версия: 0.5.0.1
Модификация: mod 11
Операционная система: Windows, Linux

Описание: Решил выложить на всеобщее обозрение свою модификацию PtokaX под кодовым названием PtokaX Mod. Список изменений относительно оригинальной версии выглядит так:
mod 11
Добавлено: Расширение протокола CTM2HUB.
Добавлено: Задержка перед отправкой $Lock (которая якобы помогает при DDoS-атаках).
mod 10
Исправлено: Неверные названия некоторых стран, возвращаемые функцией IP2Country.GetCountryName.
Добавлено: Возможность получения названия страны по коду с помощью функции IP2Country.GetCountryName.
Исправлено: Предупреждения при компиляции версии, хранящей пароли в зашифрованном виде.
Исправлено: Компиляция библиотеки SHA-2 под новыми версиями gcc.
mod 9
Исправлено: Профиль юзера устанавливался до успешной проверки пароля, что представляло собой потенциальную уязвимость (перенесено из тестовой версии).
Исправлено: Неполный IP-адрес отображался как некорректный в тех случаях, когда юзер, использующий IPv6, отправлял адрес IPv4 в команде (перенесено из тестовой версии несмотря на то, что суть бага мне не совсем ясна).
Исправлено: Права доступа для файлов и папок в *nix (перенесено из тестовой версии).
Исправлено: Возможные падения GUI-версии хаба при закрытии окон (перенесено из тестовой версии).
Исправлено: Неверные размеры массивов в коде редактора скриптов (перенесено из тестовой версии).
Исправлено: Невозможность использования в командах адресов IPv6, чья длина превышает 15 символов (перенесено из тестовой версии).
Исправлено: Ошибки в командах !rangeban и !rangeunban.
Добавлено: Автозапуск скрипта locale.lua.
mod 8
Изменено: Отныне юзеры с одинаковыми профилями не смогут банить друг друга. Данное изменение не относится к юзерам с профилем 0 (Master): эти засранцы по-прежнему могут банить кого угодно.
Добавлено: Ограничение продолжительности временных банов. В GUI данная опция находится на вкладке "Настройки банов". ID для SetMan.(G/S)etNumber - 114.
Добавлено: Опция, позволяющая менять интервал между служебными циклами. Уменьшение интервала снижает скорость отклика хаба на действия юзеров, однако это также приводит к некоторому повышению нагрузки на процессор. В GUI данная опция находится на вкладке "Больше настроек". ID для SetMan.(G/S)etNumber - 115.
Исправлено: Ошибка в linux-версии хаба, приводившая к некорректной работе таймеров с интервалом, не кратным одной секунде.
Исправлено: Окончательное решение вопроса локалей. Теперь локаль устанавливается изнутри Ptokax. В связи с этим былы добавлены 2 параметра настроек. ID для SetMan.(G/S)etString - 37 (Windows) и 38 (NIX). В GUI доступна только локаль Windows. Поскольку в Windows локаль устанавливается только для текущего модуля (т.е. выполняем setlocale() в PtokaX.exe - локаль меняется только для PtokaX.exe, выполняем setlocale() в lua.dll - локаль меняется только для lua.dll), необходимость в скрипте locale.lua никуда не делась.
Добавлено: Установка автозапуска хаба при выполнении make install.
Добавлено: Цели uninstall, on и off в makefile. Цели make on и make off позволяют включить и отключить автозагрузку хаба соответственно. Цель make uninstall используется для удаления файлов хаба (при этом удаляются только исполняемые файлы и ссылки автозапуска, рабочую директорию необходимо удалить вручную).
mod 7
Исправлено: Проверка прав доступа при создании банов с помощью команды $Kick.
mod 6
Добавлено: Команда !reloadcountry, позволяющая перезагрузить базы IP-To-Country. Команда доступна юзерам с профилем 0.
Добавлено: Функция Core.BotMyINFO(sBotNick, sBotMyINFO), позволяющая изменить $MyINFO бота, зарегистрированного из скрипта. Полная проверка синтаксиса $MyINFO не производится.
Исправлено: Максимальное значение параметра "Ограничение входа юзеров" в GUI.
Удалено: Бессмысленная опция "Отключать клиенты, отправляющие $Supports с ошибками". При ближайшем рассмотрении выяснилось, что "ошибками" считается лишний пробел в конце команды. Код, отвечающий за определение этой "ошибки" сохранен, поскольку он влияет на обработку магического байта, и в этом, возможно, есть некий смысл.
Добавлено: Опция, позволяющая отключить обработку магического байта. При включении заработает отображение пола в GreylinkDC, но могут появиться ошибки коммуникации между разными клиентами, поскольку при использование старшей половины байта каждый разработчик DC-клиента извращался как мог.
Исправлено: Функция os.clock под Linux. Теперь она работает так же, как под Windows - возвращает время с момента запуска хаба с точностью до миллисекунды. По умолчанию данный костыль включен, отключается в stdinc.h.
Изменено: При корректной остановке хаба всем юзерам рассылается сообщение о перезапуске. Раньше это сообщение отправлялось лишь при выполнении команды !restart.
Изменено: Время последнего входа зарегистрированного юзера обновляется не только при его входе на хаб, но и при выходе.
Добавлено: Переменная iOnlineTime, отображающее время, проведенное зарегистрированным юзером на хабе (в секундах). Переменная обновляется при выходе юзера, а также при вызове RegMan.UpdateTimes() (см. ниже).
Добавлено: Функция RegMan.UpdateTimes(), обновляющая значения iLastEnter и iOnlineTime в профилях зарегистрированных юзеров, находящихся на хабе. iOnlineTime вычисляется с учетом текущего времени и значения iLastEnter, а iLastEnter устанавливается равным текущему времени.
Добавлено: Функция RegMan.SetTimes(sNick, iRegDate, iLastEnter, iOnlineTime), позволяющая вручную установить время регистрации, время последнего входа и время онлайн для указанного зарегистрированного юзера.
Перенесены некоторые изменения из PtokaX 0.5.0.2
mod 5
Исправлено: Падение хаба при загрузке банов. (перенесено из тестовой версии)
Исправлено: Корректное завершение работы при помощи os.exit(). (перенесено из тестовой версии)
Добавлено: В makefile добавлена рекурсия для компиляции tinyxml. Теперь его не нужно собирать отдельно перед сборкой PtokaX (перенесено из тестовой версии)
Исправлено: Ошибка в скрипте init.d
Исправлено: Ошибки в русском языковом файле. Его можно пилить вечно, и все равно будет кривой :(
mod 4
Исправлено: Ошибки в функции Core.HideUserKey
Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных.
Испорчено: Опция "Не проверять IP в командах DC" в профиле незарегистрированного юзера. Теперь она игнорируется, и, как следствие, IP всегда проверяется. Это не баг, это фича.
Добавлено: Костыль, исправляющий регистрочувствительность кириллических ников в некоторых версиях Linux. По умолчанию отключен, включается в stdinc.h
Исправлено: Команда restart скрипта init.d
mod 3
Добавлено: Обработка ошибок при загрузке XML-файлов. Если в одном из файлов есть синтаксическая ошибка, программа сообщает об этом и аварийно завершает работу вместо того, чтобы втихую загрузить значения по умолчанию.
Исправлено: Кодировка, указанная в заголовках XML-файлов.
Исправлено: Если хаб не смог запуститься (например, по причине занятости всех указанных портов), настройки будут сохранены, что даст возможность исправить их.
Добавлено: Функция Core.HideUserKey(tUser, bHide), позволяющая скрыть ключ юзера.
Исправлено: Добавление/удаление ключей при изменении зарегистрированных юзеров.
Исправлено: Несколько ошибок в настройках прав доступа для незарегистрированных.
Добавлено: Функция Core.IsolateUser(tUser, bState), позволяющая изолировать юзера от главного чата. Изолированный юзер не видит сообщений других юзеров, а они, соответственно, не видят сообщения изолированного юзера.
Добавлено: Функция Core.SendToNonisolated(sData), отправляющая данные всем неизолированным юзерам (см. предыдущий пункт). Используется аналогично Core.SendToAll(sData).
Исправлено: В сборке x64 отключено использование больших адресов. Теперь хаб не падает при запуске скриптов. Как результат - в сборке нельзя использовать библиотеки, предназначенные для оригинальной PtokaX 0.5.0.1.
Исправлено: Компиляция под Debian и Ubuntu различных архитектур. Надеюсь, в этот раз исправил правильно.
Исправлено: В скрипте для init.d исключена возможность повторного запуска демона, а также исправлена передача ему переменных окружения.
mod 2
Изменено: В сборках x86 отключено использование инструкций SSE для совместимости с некоторыми не очень свежими процессорами от AMD.
Исправлено: Установка размеров окон при различных размерах системных шрифтов.
Исправлено: Компиляция под Debian.
Исправлено: Небольшая ошибка в makefile при выполнении цели install.
Исправлено: Скрипт locale.lua
Исправлено: Пропущенные функции и параметры в scripting-interface.txt
mod
Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом).
Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML.
Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub.
Изменено: Положение и размеры кнопок на вкладке "Статистика".
Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее big_smile.gif.
Исправлено: Доведен до ума файл русской локализации.
Добавлено: В профиль зарегистрированного юзера добавлены дата регистрации, дата последнего входа и один текстовый параметр для хранения произвольных данных. В связи с этим в таблицу зарегистрированного юзера были добавлены поля iRegDate, iLastEnter и sCustom. Для установки поля sCustom используется функция RegMan.SetCustom(sNick, sString). Поле sCustom может отсутствовать.
Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию.
Добавлено: Проверка прав доступа для команды !stats.
Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно".
Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57.
Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck.
Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек".
Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI.
Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master.
Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом.
Исправлено: При запуске принудительно устанавливается локаль "C" для чисел. Это поможет избежать проблем с сохранением дробных чисел если сервер, на котором работает хаб, настраивали жопой.
Добавлено: Версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде.
Изменено: Настройки по умолчанию. Строковые параметры переведены на русский.
Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский.
Добавлено: Сообщения об ошибках скриптов отправляются операторам.
Добавлено: Возможность отключения отображения трассировки стека Lua в ошибках скриптов.
Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64
Исправлено: Устранено мелькание окна консоли при вызове функций os.execute и io.popen.
Добавлено: Настройка прав доступа для незарегистрированных юзеров.
Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится.
Добавлено: Функция Core.HideUser(tUser, bHide), позволяющая скрыть юзера из списка.
Добавлено: Функции Core.GetDCStats, Core.GetNetStats.
Добавлено: События BadPassArrival и ValidateDenideArrival.
Исправлено: При загрузке настроек из файла строковые настройки заменялись настройками по умолчанию в тех случаях, когда длина сохраненной строки равна нулю, а длина строки по умолчанию больше нуля. По этой причине в предыдущих версиях мода было невозможно переключить язык на английский, а в оригинальной версии - удалить адрес перенаравления.
Исправлено: Изменение паролей зарегистрированных юзеров.
Исправлено: Если длинные MyINFO отправляются только разрешенным профилям, а профиль юзера позволяет ему получать полные MyINFO, то боты, зарегистрированные скриптами, становились видны ему только после переподключения к хабу.
Добавлено: Функция Core.UserNoQuit(tUser, bState), позволяющая подавить команду $Quit при выходе юзера. Кому-то функция может показаться бессмысленной, однако я знаю наверняка, для чего я ее добавил. Возможно, и вы когда-нибудь узнаете big_smile.gif.
Были собраны версии для Windows x86 и x64, однако 64-разрядная версия мной практически не тестировалась. В сборке x86 присутствуют библиотеки Lua на все случаи жизни.
Прикрепленный файл  0.5.0.1_mod11_x86.rar ( 7.36 мегабайт ) Кол-во скачиваний: 65
Прикрепленный файл  0.5.0.1_mod11_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 71
Прикрепленный файл  0.5.0.1_mod11_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 66

Старые версии
Прикрепленный файл  0.5.0.1_mod10_x86.rar ( 7.38 мегабайт ) Кол-во скачиваний: 2
Прикрепленный файл  0.5.0.1_mod10_x64.rar ( 6.3 мегабайт ) Кол-во скачиваний: 2
Прикрепленный файл  0.5.0.1_mod10_src.zip ( 1.05 мегабайт ) Кол-во скачиваний: 4
Прикрепленный файл  0.5.0.1_mod10_hashpass.rar ( 3.85 мегабайт ) Кол-во скачиваний: 2
Остальные версии можно найти в моей шаре на хабе MyDC

Как правильно обновляться...
...с оригинальной версии на mod:
Первым делом конвертируем базу из бинарного формата в xml. Делать это нужно на оригинальной версии, поскольку скрипт использует для конвертирования API хаба. Затем останавливаем хаб, открываем файл cfg/Profiles.xml, и добавляем профиль для незарегистрированных юзеров:
Длиннокод
Код
    <Profile>
        <Name>Unreg</Name>
        <Permissions>00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0
0000000000000000000</Permissions>
    </Profile>
После этого можно обновлять бинарники и запускать хаб. Новые настройки добавятся в конфиг автоматически при первом же сохранении настроек. Поскольку оригинальная PtokaX имеет весьма подлый алгоритм сохранения настроек, в котором, к тому же, имеется один нехороший баг, рекомендуется после первого же запуска пробежаться по настройкам, и исправить все, что не понравится. И да, не следует забывать, что имена виндовых библиотек в оригинальной версии могут отличаться от таковых в mod.

Если Вы обновляетесь с версии 0.4.x.x, работавшей под Windows, у Вас может возникнуть еще одна проблема: в списке зарегистрированных юзеров обнаружится большое число юзеров с одним и тем же ником, но в разных регистрах. При удалении каждого повторяющегося юзера, GUI-версия PtokaX будет выдавать сообщение. Если Вам лень клацать кнопку "OK" 10500 раз, можете убить птоку диспетчером задач, и использовать для первого запуска консольную версию - она удалит дублирующихся юзеров тихо, а сообщения об удалении сохранит в файл system.log

...с PtokaX 0.5.0.0 mod3 на PtokaX 0.5.0.1 mod:
Останавливаем хаб, добавляем в настройки профиль незарегистрированных юзеров (см. предыдущий пункт), запускаем хаб. Всё big_smile.gif

...с mod на оригинальную версию:
Останавливаем хаб, удаляем из конфига профиль незарегистрированных юзеров. После этого можно обновлять бинарники и запускать хаб - PtokaX сама сконвертирует базу регистраций в бинарный формат, а также удалит все ненужные (и даже некоторые нужные bad_smile.gif ) настройки.

...с обычной версии на версию, хеширующую пароли:
Просто заменяем бинарники, и запускаем хаб. При запуске все пароли будут хешированы автоматически.

...с версии, хеширующей пароли, на обычную версию:
Останавливаем хаб, заменяем бинарники, удаляем базу регистраций, запускаем хаб, и просим всех юзеров зарегистрироваться по-новой. Ну да, а Вы что думали? Расшифровать хешированные пароли невозможно. Именно по этой причине включение хеширования паролей производится таким извращенным способом.


Версия, хранящая пароли в зашифрованном виде:Прикрепленный файл  0.5.0.1_mod11_hashpass.rar ( 3.84 мегабайт ) Кол-во скачиваний: 12

Как это работает
Пароли хранятся в виде
Код
|<Хэш пароля в hexadecimal-формате>
Символ | в начале пароля нужен для того, чтобы PtokaX могла отличить шифрованные пароли от нешифрованных. Если при загрузке базы какие-либо пароли не соответствуют данному формату, они автоматически хешируются. Это позволяет не париться при переходе на шифрованную базу и при добавлении аккаунтов прямо в XML-файл.

Следует помнить, что хешированные пароли расшифровать нельзя. Т.е вы не сможете сконвертировать базу обратно. Никак не сможете. СОВСЕМ никак.

Также следует помнить, что зарегистрированных юзеров теперь нельзя редактировать с помощью PXControl, PRA, и им подобных. И да, если Ваш скрипт регистрации запрашивает старый пароль при его изменении, Вам придется прикрутить к нему библиотеку sha2.

В архиве только exe'шник, все остальное берем из основного дистрибутива.


Скрипт для конвертирования бинарной базы обратно в XML:
Прикрепленный файл  GetBaseBack.lua ( 1.22 килобайт ) Кол-во скачиваний: 102


Если Вы переходите на данную версию с более новой, хранящей настройки и список скриптов в файлах .pxt, то Вам будет полезен конвертер:
Прикрепленный файл  settings_back.lua ( 7.42 килобайт ) Кол-во скачиваний: 27


TODO
По-человечески исправить отрисовку GUI. Думаю, многие заметили, что внешний вид окна оригинальной птоки сильно портится если по нему провести окном другого приложения. Сильнее всего эффект заметен в Windows 7 на упрощенных темах оформления. Связано это с тем, что PPK не до конца осилил создание GUI с помощью чистого WinAPI. Проблема в том, что я знаю WinAPI еще хуже, поэтому я даже не представляю, как это исправить. Поэтому я поступил следующим образом - убрал свойство WS_CLIPCHILDREN главного окна. После этого глюки с перерисовкой дочерних элементов исчезли, но они стали сильно мигать при изменении размеров окна.

Перенести из PtokaX 0.5.0.0 mod 4 (этот мод никогда не выкладывался, поскольку я не закончил его) событие IsRegistered(). Оно используется для хранения аккаунтов во внешних БД, и в вышеназванной модификации вполне себе работало. Но в версии 0.5.0.1 PPK так отрефакторил ту часть кода, что добавить его стало некуда. Возможно, когда-нибудь я таки решусь на переделку.

Исправить странные глюки в работе функции SendToNonisolated. Иногда при изменении прав профилей сообщения, отправленные с помощью этой функции начинают получать все юзеры, включая изолированных. Причину пока не выяснил.

P.S. Не забывайте сообщать о найденных ошибках

Версии, основанные на PtokaX 0.5.0.0
mod 3
Исправлено: При изменении настроек главного бота или ОпЧата из GUI, бот со старым ником оставался в списке юзеров до перезапуска хаба.
Изменено: Профиль по умолчанию для юзеров, регистрируемых с помощью GUI.
Добавлено: Альтернативный синтаксис для функции регистрации бота: Core.RegBot(sNick, sMyINFOString, bHaveKey). Полная проверка синтаксиса $MyINFO не производится.
Добавлено: Возможность отключения сжатия zlib. Отключается на вкладке "Больше настроек".
Изменено: Отключение проверки ключа вынесено в настройки. В связи с этим был удален ключ командной строки /nokeycheck.
Исправлено: Незначительные исправления в языковом файле.

Изменения в библиотеках:
Устранено мелькание окна консоли при вызове функций os.execute и io.popen.
mod 2
Исправлено: Самодеятельность TinyXML, касающаяся обработки пустых символов. Несколько пустых символов подряд заменялись одним пробелом. По непонятной причине неразрывный пробел также считался пустым символом.
Добавлено: Функции Core.GetDCStats, Core.GetNetStats и Core.GetMemStats.
Добавлено: Консольная версия PtokaX, хранящая пароли в зашифрованном (SHA-256) виде.
Добавлено: Функция print. В GUI-версии функция выводит текст в окно ошибок скриптов, в консольной - в главный чат юзерам с профилем Master.
Добавлено: Сообщения об ошибках скриптов отправляются юзерам с профилем Master.
Исправлено: Пропущенные строки в языковом файле.

Изменения в библиотеках:
В библиотеке Lua параметры LUA_PATH_DEFAULT и LUA_CPATH_DEFAULT изменены на более каноничные, что позволит избежать проблем при подключении некоторых библиотек.
Из Lua удалены костыли, добавленные для совместимости с библиотеками Lua-AIO. В связи с этим были удалены библиотеки iup, tcps и udps.
Заменена библиотека iconv.
Добавлены библиотеки sha1 и sha2.
mod 1
Изменено: Для 32-разрядной версии метод вызова функций изменен на cdecl, что позволило испльзовать библиотеки, предназначенные для Lua-AIO и RusHub
Изменено: Положение и размеры кнопок на вкладке "Статистика"
Изменено: Отключено открытие скрипта по двойному клику в списке. Глубокого смысла в этом нет, просто мне так удобнее big_smile.gif
Исправлено: Доведен до ума файл русской локализации
Изменено: Настройки по умолчанию. Строковые параметры переведены на русский
Изменено: Список стран IP-To-Country: Добавлены коды стран, названия стран переведены на русский
Добавлено: В никах запрещены символы от \0 до \31
Добавлено: Блокировка неизвестных команд. Отключается на вкладке "Дополнительно"
Добавлено: Проверка прав доступа для команд !stats и !memstats
Добавлено: События BadPassArrival и ValidateDenideArrival
Добавлено: Параметр bZPipe, отображающий поддержку юзером сжатия. Код для Core.GetUserData - 64
Изменено: При сохранении настроек в файл записываются все параметры, а не только те, значения которых отличаются от значений по умолчанию
Добавлено: Возможность отключения приветствия (Этот хаб работает под управлением...). Включается на вкладке "Дополнительно" Имя параметра в настройках - ShowWelcome, ID для SetMan.(S/G)etBool - 57
Изменено: К черту бинарный бред. Список зарегистрированных юзеров снова хранится в файле XML
Исправлено: Ошибка IPToCountry - первый и последний адрес диапазона не считались его частью
Исправлено: При нажатии кнопки "Принять" настройки не сохранялись в файл (подозреваю, что кое-кто считает это фичей, а не багом big_smile.gif)

Прикрепленный файл  ptokax_0.5.0.0_mod3_x86.rar ( 8.69 мегабайт ) Кол-во скачиваний: 284
Прикрепленный файл  ptokax_0.5.0.0_mod3_x64.rar ( 4.79 мегабайт ) Кол-во скачиваний: 92
Прикрепленный файл  ptokax_0.5.0.0_mod3_src.zip ( 1.06 мегабайт ) Кол-во скачиваний: 52


Консольная версия, хранящая пароли в зашифрованном виде:Прикрепленный файл  ptokax_0.5.0.0_mod3_hashpass_sha2.rar ( 1.79 мегабайт ) Кол-во скачиваний: 7

Предыдущая версия, шифрующая пароли алгоритмом MD5:Прикрепленный файл  PtokaX_console_hashpass.rar ( 278.28 килобайт ) Кол-во скачиваний: 11


Дополнительную информацию можно найти во втором сообщении данной темы
Go to the top of the page
+Quote Post
6 страниц V  « < 3 4 5 6 >  
Начать новую тему
Ответов
PPA
сообщение 12.1.2015, 8:48
Сообщение #82


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




alex82 привет!
Ты ведь хорошо в коде птохи разбираешься
подскажи как правильнее на уровне С++ встроить вот такой скрипт

:~/src/PtokaX/scripts$ cat ctm2hub.lua
function UnknownArrival(tUser, sData)
if sData:sub(1,7) == "$MyNick" then
Core.SendToUser(tUser, "$Error CTM2HUB|")
end
end

хочется нативно поддержкать команду блокировки ddos
в verli он ужен добавлен.
может и ты добавишь к себ в мод поддержку этого расширения?

Данную фишку придумал RoLex и она поддерживается в клиентах FlylinkDC++ 5xx и 4xx
алгоритм такой

https://code.google.com/p/flylinkdc/source/detail?r=18063#

Добавлена поддержка команды CTM2HUB (RoLex) (Часть 1)

HUB1 = атакующий хаб который не проверяет запрос CTM
HUB2 = атакуемый хаб
HUB2.ADDR = адрес атакуемого хаба

DC1 = атакующий бот который отсылает левые CTM на HUB1
DC2 = обычный юзер на HUB1

DC1 -> HUB1 $ConnectToMe DC2 HUB2.ADDR|
HUB1 -> DC2 $ConnectToMe DC2 HUB2.ADDR|

DC2 не находит HUB2.ADDR в черном списке и продолжает работу с запросом CTM

DC2 -> HUB2 socket_connect(HUB2.ADDR) + $MyNick DC2|$Lock ABC|
HUB2 -> DC2 $Error CTM2HU

DC2 добавляет HUB2.ADDR в черный список и закрывает соединение

DC1 -> HUB1 $ConnectToMe DC2 HUB2.ADDR|
HUB1 -> DC2 $ConnectToMe DC2 HUB2.ADDR|

DC2 находит HUB2.ADDR в черном списке и игнорит запрос CTM


Go to the top of the page
+Quote Post
alex82
сообщение 14.1.2015, 21:44
Сообщение #83


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




PPA

В файле DcCommands.cpp есть довольно странный кусок кода, отвечающий за обработку команды $MyNick:
Раскрывающийся текст
Код
void clsDcCommands::MyNick(User * pUser, char * sData, const uint32_t &ui32Len) {
    if((pUser->ui32BoolBits & User::BIT_IPV6) == User::BIT_IPV6) {
        int imsgLen = sprintf(msg, "[SYS] IPv6 $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP);
        if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick") == true) {
            clsUdpDebug::mPtr->Broadcast(msg, imsgLen);
        }

        Unknown(pUser, sData, ui32Len);
        return;
    }

    if(ui32Len < 10) {
        int imsgLen = sprintf(msg, "[SYS] Short $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP);
        if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick1") == true) {
            clsUdpDebug::mPtr->Broadcast(msg, imsgLen);
        }

        Unknown(pUser, sData, ui32Len);
        return;
    }

    sData[ui32Len-1] = '\0'; // cutoff pipe

    User * pOtherUser = clsHashManager::mPtr->FindUser(sData+8, ui32Len-9);

    if(pOtherUser == NULL || pOtherUser->ui8State != User::STATE_IPV4_CHECK) {
        int imsgLen = sprintf(msg, "[SYS] Bad $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP);
        if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick2") == true) {
            clsUdpDebug::mPtr->Broadcast(msg, imsgLen);
        }

        Unknown(pUser, sData, ui32Len);
        return;
    }

    strcpy(pOtherUser->sIPv4, pUser->sIP);
    pOtherUser->ui8IPv4Len = pUser->ui8IpLen;
    pOtherUser->ui32BoolBits |= User::BIT_IPV4;

    pOtherUser->ui8State = User::STATE_ADDME;

    pUser->Close();
/*
    int imsgLen = sprintf(msg, "<%s> Found IPv4: %s =)|", clsSettingManager::mPtr->sPreTexts[clsSettingManager::SETPRETXT_HUB_SEC], pOtherUser->sIPv4);
    if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick3") == true) {
        UserSendCharDelayed(pOtherUser, msg, imsgLen);
    }
*/
}
Если я понимаю правильно, PPK задумал проверять поддержку IPv4 таким хитрожопым способом. В связи с чем у меня к тебе как к разработчику DC-клиентов есть ответный вопрос: а есть ли смысл в этой функции? Хоть в одном клиенте реализована такая проверка?

А если все-таки добавлять расширение протокола, то сделать это можно где-то здесь:
Код
    if(pOtherUser == NULL || pOtherUser->ui8State != User::STATE_IPV4_CHECK) {
        int imsgLen = sprintf(msg, "[SYS] Bad $MyNick (%s) from %s (%s) - user closed.", sData, pUser->sNick, pUser->sIP);
        if(CheckSprintf(imsgLen, 1024, "clsDcCommands::MyNick2") == true) {
            clsUdpDebug::mPtr->Broadcast(msg, imsgLen);
        }

        Unknown(pUser, sData, ui32Len);
        return;
    }


Спасибо сказали:
Go to the top of the page
+Quote Post
PPA
сообщение 14.1.2015, 22:02
Сообщение #84


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(alex82 @ 14.1.2015, 21:44) *
Если я понимаю правильно, PPK задумал проверять поддержку IPv4 таким хитрожопым способом. В связи с чем у меня к тебе как к разработчику DC-клиентов есть ответный вопрос: а есть ли смысл в этой функции? Хоть в одном клиенте реализована такая проверка?


Спасибо.
Погуляю в том месте под отладкой..
Поддержка реализована пока только у меня FlylinkDC++ 5xx и 4xx
т.е. все юзера которые сидят на хабе со свежими флаями автоматом перестанут учавствовать в ddos-е

На стороне сервера это поддерживается в новых версиях verlihub
https://github.com/Verlihub/verlihub-1.0.0/...proto.cpp#L2358
почему-бы это не поддержать и в ptokax-mod big_smile.gif




Go to the top of the page
+Quote Post
alex82
сообщение 14.1.2015, 22:08
Сообщение #85


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




По поводу расширения $Error я и так понял bad_smile.gif . Вопрос был про определение поддержки IPv4 при помощи команды $MyNick.
Go to the top of the page
+Quote Post
PPA
сообщение 15.1.2015, 8:15
Сообщение #86


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(alex82 @ 14.1.2015, 22:08) *
По поводу расширения $Error я и так понял bad_smile.gif . Вопрос был про определение поддержки IPv4 при помощи команды $MyNick.


Про IPv4 я вообще не в теме ) обычно все хотят поддержку IPv6
а 4 из коробки всегда был.

Go to the top of the page
+Quote Post
Артём
сообщение 15.1.2015, 9:55
Сообщение #87


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Цитата(PPA @ 15.1.2015, 8:15) *
обычно все хотят поддержку IPv6

а разве её нет?
или это было написано про Flylink? big_smile.gif
Go to the top of the page
+Quote Post
PPA
сообщение 15.1.2015, 11:26
Сообщение #88


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(Артём @ 15.1.2015, 9:55) *
а разве её нет?
или это было написано про Flylink? big_smile.gif


Ага. я про клиента )
У меня дома нет настоящего ipv6 и не начем отлаживаться в слепую - не хочется ковырять.
также вроде airdc++ умеет из коробки
Для флая ip6 пока не сильно актуально там есть другие более важные баги.

По поводу сервера у птохи я тоже не проверял
только заметил что у него это сделано не эффективно по памяти
https://github.com/pavel-pimenov/PtokaX/blo...ore/User.h#L291
резервирует 46 байт (даже если IP6 не нужен) на каждого юзера + хранит адрес в буковках

Go to the top of the page
+Quote Post
Артём
сообщение 15.1.2015, 12:19
Сообщение #89


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Цитата(PPA @ 15.1.2015, 11:26) *
У меня дома нет настоящего ipv6

[offtop]у меня есть, но роутер не поддерживает, хотя можно кастомными прошивками поддержку сделать, но нет желания кастомить прошивки и кошмарить роутер, а вообще, есть люди(естественно админы, а не обычные "прохожие") у которых это есть, почему к ним не обращаешься?[/offtop]

[offtop]
Цитата
Для флая ip6 пока не сильно актуально там есть другие более важные баги.

не только баги, но и иссуи с запросами добавления новых, полезных вещей, которые пока игнорируются тобой big_smile1.gif хотя может они и не такие важные, по сравнению с тэгами цветов и жирноты текста в чатике [/offtop]
Go to the top of the page
+Quote Post
PPA
сообщение 15.1.2015, 12:55
Сообщение #90


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(Артём @ 15.1.2015, 12:19) *
не только баги, но и иссуи с запросами добавления новых, полезных вещей, которые пока игнорируются тобой big_smile1.gif хотя может они и не такие важные, по сравнению с тэгами цветов и жирноты текста в чатике [/offtop]


Скажите номера issue которые беспокоят лично вас.
если я их смогу поправить - сделаю.
а цвета и жирность в чате давно сделаны и вроде работают - никто не жалуется big_smile.gif
Go to the top of the page
+Quote Post
Артём
сообщение 15.1.2015, 13:31
Сообщение #91


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




Цитата(PPA @ 15.1.2015, 12:55) *
Скажите номера issue которые беспокоят лично вас.
если я их смогу поправить - сделаю.
а цвета и жирность в чате давно сделаны и вроде работают - никто не жалуется big_smile.gif


Да я уже и весь форум Flylink исписал этими issue, да и в ЛС писал, но что-то игнорируются, да и там не поправлять, а добавлять нужно))))
Да и тема эта не Flylink'а как бы, не хочу здесь оффтопить/флудить не по теме.
Go to the top of the page
+Quote Post
PPA
сообщение 29.1.2015, 16:08
Сообщение #92


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Привет.
alex82 подскажи зачем в птохе в методе bool clsDcCommands::MyINFODeflood 2 куска DeFloodCheckForFlood на MyINFO
https://github.com/pavel-pimenov/PtokaX/blo...mands.cpp#L1982
https://github.com/pavel-pimenov/PtokaX/blo...mands.cpp#L1990

+ заведены пары переменных типа
ui16MyINFOs и ui16MyINFOs2
ui64MyINFOsTick и ui64MyINFOsTick2
SETSHORT_MYINFO_ACTION и SETSHORT_MYINFO_ACTION2
...

?
Go to the top of the page
+Quote Post
Reanimator
сообщение 30.1.2015, 14:57
Сообщение #93


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 27.12.2009
Из: Красноярска
Пользователь №: 5 495
Спасибо сказали: 0 раз




Есть вопрос? Ubuntu 12.04_х64 ptokax mod 9, прочитал все коменты,поправил и пересобрал ptokax...Все работает пока нормально но,профилю Master птока весь чат загадила за сутки непонятными цифрами примерно с 10 минутным интервалом,как то это можно исправить или есть какая то команда чтоб убрать этот флуд?
- [18:24:56
<Krasmediafiles> 5 15
- [18:24:56] <Krasmediafiles> 244 15
- [18:24:56] <Krasmediafiles> -12 18
- [18:24:56] <Krasmediafiles> 300 94
- [18:24:56] <Krasmediafiles> 276 37
- [18:24:56] <Krasmediafiles> 336 55
- [18:24:56] <Krasmediafiles> 345 81
- [18:24:56] <Krasmediafiles> 344 68
- [18:34:57] <Krasmediafiles> 114 15
- [18:34:57] <Krasmediafiles> 5 15
- [18:34:57] <Krasmediafiles> 244 15
- [18:34:57] <Krasmediafiles> -12 18
- [18:34:57] <Krasmediafiles> 300 93
- [18:34:57] <Krasmediafiles> 272 37
- [18:34:57] <Krasmediafiles> 337 55
- [18:34:57] <Krasmediafiles> 345 81
- [18:34:57] <Krasmediafiles> 345 68
- [18:44:56] <Krasmediafiles> 114 15
- [18:44:56] <Krasmediafiles> 5 15
- [18:44:56] <Krasmediafiles> 252 15
- [18:44:56] <Krasmediafiles> -12 18
- [18:44:56] <Krasmediafiles> 307 94
- [18:44:56] <Krasmediafiles> 273 37
- [18:44:56] <Krasmediafiles> 337 55
- [18:44:56] <Krasmediafiles> 345 81
- [18:44:56] <Krasmediafiles> 345 68]

До этого ставил deb-пакет 0.4.1.2 такого не наблюдалось.
P.S. собирал так...
Открыть

cd ptokax
make
и сборка в deb-пакет
checkinstall -D
cd /root
ldconfig
Go to the top of the page
+Quote Post
Reanimator
сообщение 31.1.2015, 13:00
Сообщение #94


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 27.12.2009
Из: Красноярска
Пользователь №: 5 495
Спасибо сказали: 0 раз




Отключил все скрипты кроме locale.lua флуд исчез!Дело не в птоке а в каком то скрипте,буду включать по очереди и смотреть какой флудит.Всем спасибо!
P.S. Флудил в чат скрипт HubBanner 2.01 by alex82 API2 (PtokaX 0.4.x.x)!!!!!!!!!!!!!!!!!
Go to the top of the page
+Quote Post
alex82
сообщение 31.1.2015, 21:04
Сообщение #95


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




PPA, потому что в птоке две настройки антифлуда MyINFO, которые можно настроить по-разному:
Прикрепленный файл  2015_01_31_195548.png ( 2.86 килобайт ) Кол-во скачиваний: 164

для многих других типов антифлуда также имеется по две независимые настройки.

Reanimator, этот прикол возникает из-за того, что в PtokaX mod в отличие от PtokaX имеется функция print, и если автор скрипта забыл удалить вывод отладочных сообщений с помощью этой функции, при переходе на PtokaX mod скрипт начнет флудить.


Спасибо сказали:
Go to the top of the page
+Quote Post
PPA
сообщение 6.2.2015, 9:39
Сообщение #96


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(alex82 @ 31.1.2015, 21:04) *
PPA, потому что в птоке две настройки антифлуда MyINFO, которые можно настроить по-разному:


Спасибо!
Cлучайно не знаешь еще почему сделано вот так

CODE
#ifdef _WIN32
pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1);
#else
pNickList = (char *)realloc(pOldBuf, ui32NickListSize+NICKLISTSIZE+1);
#endif

#ifdef _WIN32
pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
#else
pRangeBan->sBy = (char *)malloc(szByLen+1);
#endif


У тебя не было желания в моде добавиь функции-обертки типа ppk_alloc и ppk_realock ppk_free
хотя это усложнит слияние - может ты сможешь уговорить PPK так сделать
и он раскопипащен по всей птохе - не лень ведь было так трахаться.... с #ifdef

HeapAlloc

C:\git\PtokaX\core\colUsers.cpp(56): pNickList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, NICKLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(69): pZNickList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(80): pOpList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, OPLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(93): pZOpList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(106): pMyInfos = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, MYINFOLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(117): pZMyInfos = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZMYINFOLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(137): pMyInfosTag = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, MYINFOLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(148): pZMyInfosTag = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZMYINFOLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(167): pUserIPList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, IPLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(181): pZUserIPList = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZLISTSIZE);
C:\git\PtokaX\core\colUsers.cpp(939): pNewRecTime->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, curUser->ui8NickLen+1);
C:\git\PtokaX\core\DcCommands.cpp(4138): cmdSearch->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\eventqueue.cpp(118): pNewEvent->sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\GlobalDataQueue.cpp(45): OpListQueue.pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256);
C:\git\PtokaX\core\GlobalDataQueue.cpp(58): UserIPQueue.pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256);
C:\git\PtokaX\core\GlobalDataQueue.cpp(83): GlobalQueues[ui8i].pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256);
C:\git\PtokaX\core\GlobalDataQueue.cpp(84): GlobalQueues[ui8i].pZbuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, 256);
C:\git\PtokaX\core\GlobalDataQueue.cpp(247): pNewItem->pCommand1 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen1+1);
C:\git\PtokaX\core\GlobalDataQueue.cpp(266): pNewItem->pCommand2 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen2+1);
C:\git\PtokaX\core\GlobalDataQueue.cpp(868): pNewItem->pData = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szDataLen+1);
C:\git\PtokaX\core\GlobalDataQueue.cpp(1063): ((QueueItem *)pQueueItem)->pCommand1 = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1209): Ban->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1236): Ban->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1256): Ban->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1380): RangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1399): RangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1766): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1870): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1900): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(1992): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2022): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2074): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2098): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2147): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2177): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2237): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2374): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2404): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2500): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2530): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2582): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2605): pBan->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2669): pBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2699): pBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2965): pRangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(2995): pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(3085): pRangeBan->sReason = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szReasonLen > 255 ? 256 : szReasonLen+1);
C:\git\PtokaX\core\hashBanManager.cpp(3115): pRangeBan->sBy = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szByLen+1);
C:\git\PtokaX\core\hashRegManager.cpp(94): pReg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szRegNickLen+1);
C:\git\PtokaX\core\hashRegManager.cpp(109): pReg->ui8PassHash = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64);
C:\git\PtokaX\core\hashRegManager.cpp(123): pReg->sPass = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szRegPassLen+1);
C:\git\PtokaX\core\hashRegManager.cpp(868): pCurReg->ui8PassHash = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64);
C:\git\PtokaX\core\IP2Country.cpp(102): ui32RangeFrom = (uint32_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(117): ui32RangeTo = (uint32_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(132): ui8RangeCI = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32Size * sizeof(uint8_t));
C:\git\PtokaX\core\IP2Country.cpp(288): ui128IPv6RangeFrom = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(303): ui128IPv6RangeTo = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(318): ui8IPv6RangeCI = (uint8_t *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ui32IPv6Size * sizeof(uint8_t));
C:\git\PtokaX\core\LanguageManager.cpp(42): sTexts[szi] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szTextLen+1);
C:\git\PtokaX\core\LuaScript.cpp(111): pScriptBot->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\LuaScript.cpp(129): pScriptBot->sMyINFO = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szWantLen);
C:\git\PtokaX\core\LuaScript.cpp(189): pScriptTimer->sFunctionName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\LuaScript.cpp(275): pScript->sName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNameLen+1);
C:\git\PtokaX\core\LuaScriptManager.cpp(172): ppScriptTable = (Script **)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, (ui8ScriptCount+1)*sizeof(Script *));
C:\git\PtokaX\core\ProfileManager.cpp(415): ppProfilesTable = (ProfileItem **)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (ui16ProfileCount+1)*sizeof(ProfileItem *));
C:\git\PtokaX\core\ProfileManager.cpp(440): pNewProfile->sName = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\ResNickManager.cpp(62): pReservedNick->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNickLen+1);
C:\git\PtokaX\core\serviceLoop.cpp(686): curUser->pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededLen+1);
C:\git\PtokaX\core\SettingManager.cpp(142): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 18);
C:\git\PtokaX\core\SettingManager.cpp(183): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16MOTDLen+1);
C:\git\PtokaX\core\SettingManager.cpp(571): sMOTD = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16MOTDLen+1);
C:\git\PtokaX\core\SettingManager.cpp(979): sTexts[szTxtId] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\SettingManager.cpp(1156): sPreTexts[SETPRETXT_HUB_SEC] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16TextsLens[SETTXT_BOT_NICK]+1);
C:\git\PtokaX\core\SettingManager.cpp(1220): sPreTexts[SETPRETXT_MOTD] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1271): sPreTexts[SETPRETXT_HUB_NAME_WLCM] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1326): sPreTexts[SETPRETXT_HUB_NAME] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1388): sPreTexts[SETPRETXT_REDIRECT_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededLen);
C:\git\PtokaX\core\SettingManager.cpp(1430): sPreTexts[SETPRETXT_REG_ONLY_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1487): sPreTexts[SETPRETXT_SHARE_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1584): sPreTexts[SETPRETXT_SLOTS_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1675): sPreTexts[SETPRETXT_HUB_SLOT_RATIO_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1763): sPreTexts[SETPRETXT_MAX_HUBS_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1866): sPreTexts[SETPRETXT_NO_TAG_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1935): sPreTexts[SETPRETXT_TEMP_BAN_REDIR_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1998): sPreTexts[SETPRETXT_PERM_BAN_REDIR_ADDRESS] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2049): sPreTexts[SETPRETXT_NICK_LIMIT_MSG] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2239): sPreTexts[SETPRETXT_HUB_BOT_MYINFO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2371): sPreTexts[SETPRETXT_OP_CHAT_HELLO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2400): sPreTexts[SETPRETXT_OP_CHAT_MYINFO] = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNeededMem);
C:\git\PtokaX\core\TextFileManager.cpp(104): char * sMSG = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szChatLen);
C:\git\PtokaX\core\TextFileManager.cpp(187): pNewTxtFile->sText = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, textfile.size+2);
C:\git\PtokaX\core\TextFileManager.cpp(205): pNewTxtFile->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, strlen(textfile.name)-3);
C:\git\PtokaX\core\UdpDebug.cpp(111): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen);
C:\git\PtokaX\core\UdpDebug.cpp(165): pNewDbg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, u->ui8NickLen+1);
C:\git\PtokaX\core\UdpDebug.cpp(254): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen);
C:\git\PtokaX\core\UdpDebug.cpp(302): pNewDbg->sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szNameLen+1);
C:\git\PtokaX\core\UdpDebug.cpp(392): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen);
C:\git\PtokaX\core\UdpDebug.cpp(566): char * sMsg = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen);
C:\git\PtokaX\core\User.cpp(526): pUserBan->sMessage = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, iMessLen+1);
C:\git\PtokaX\core\User.cpp(885): pSendBuf = (char *)HeapAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, szAllignLen);
C:\git\PtokaX\core\User.cpp(940): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 64);
C:\git\PtokaX\core\User.cpp(1044): pRecvBuf = (char *)HeapAlloc(clsServerManager::hRecvHeap, HEAP_NO_SERIALIZE, szAllignLen);
C:\git\PtokaX\core\User.cpp(1304): pSendBuf = (char *)HeapAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, szAllignLen);
C:\git\PtokaX\core\User.cpp(1432): sNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui8NewNickLen+1);
C:\git\PtokaX\core\User.cpp(1492): sMyInfoOriginal = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoLen+1);
C:\git\PtokaX\core\User.cpp(1578): u->sMyInfoLong = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoLongLen+1);
C:\git\PtokaX\core\User.cpp(1613): u->sMyInfoShort = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, ui16NewMyInfoShortLen+1);
C:\git\PtokaX\core\User.cpp(1644): sVersion = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\User.cpp(1673): sLastChat = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\User.cpp(1707): sLastPM = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\User.cpp(1742): sLastSearch = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\User.cpp(1783): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szLen+1);
C:\git\PtokaX\core\User.cpp(1803): pLogInOut->pBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, 512);
C:\git\PtokaX\core\User.cpp(2691): pNewToCmd->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szCommandLen+1);
C:\git\PtokaX\core\User.cpp(2715): pNewToCmd->sToNick = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, to->ui8NickLen+1);
C:\git\PtokaX\core\User.cpp(2766): pNewcmd->sCommand = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, szCommandLen+1);
C:\git\PtokaX\core\User.cpp(2826): sOldData = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sz8NewDataLen+1);
C:\git\PtokaX\core\utility.cpp(965): char * sMSG = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sData.size()+64);
C:\git\PtokaX\core\utility.cpp(1180): return ::HeapAlloc(clsServerManager::hLuaHeap, 0, szNewSize);
C:\git\PtokaX\core\utility.cpp(1367): clsServerManager::pGlobalBuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, clsServerManager::szGlobalBufferSize);
C:\git\PtokaX\core\ZlibUtility.cpp(43): pZbuffer = (char *)HeapAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE | HEAP_ZERO_MEMORY, ZBUFFERLEN);



realloc

C:\git\PtokaX\core\colUsers.cpp(439): pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(472): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(506): pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32NickListSize+NICKLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(536): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(566): pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32OpListSize+OPLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(718): pMyInfos = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosSize+MYINFOLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(758): pMyInfosTag = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosTagSize+MYINFOLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(801): pMyInfosTag = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosTagSize+MYINFOLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(825): pMyInfos = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32MyInfosSize+MYINFOLISTSIZE+1);
C:\git\PtokaX\core\colUsers.cpp(877): pUserIPList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, ui32UserIPListSize+IPLISTSIZE+1);
C:\git\PtokaX\core\DcCommands.cpp(4105): cmdSearch->sCommand = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, cmdSearch->ui32Len+szLen+1);
C:\git\PtokaX\core\GlobalDataQueue.cpp(319): OpListQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen);
C:\git\PtokaX\core\GlobalDataQueue.cpp(358): UserIPQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen);
C:\git\PtokaX\core\GlobalDataQueue.cpp(978): pQueue.pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen);
C:\git\PtokaX\core\hashRegManager.cpp(149): sPass = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, szNewLen+1);
C:\git\PtokaX\core\hashRegManager.cpp(167): sPass = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPass, szNewLen+1);
C:\git\PtokaX\core\hashRegManager.cpp(187): ui8PassHash = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPass, 64);
C:\git\PtokaX\core\IP2Country.cpp(157): ui32RangeFrom = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(170): ui32RangeTo = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(183): ui8RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint8_t));
C:\git\PtokaX\core\IP2Country.cpp(234): ui32RangeFrom = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(245): ui32RangeTo = (uint32_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint32_t));
C:\git\PtokaX\core\IP2Country.cpp(256): ui8RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32Size * sizeof(uint8_t));
C:\git\PtokaX\core\IP2Country.cpp(343): ui128IPv6RangeFrom = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(356): ui128IPv6RangeTo = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(369): ui8IPv6RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * sizeof(uint8_t));
C:\git\PtokaX\core\IP2Country.cpp(430): ui128IPv6RangeFrom = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(441): ui128IPv6RangeTo = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * (sizeof(uint8_t)*16));
C:\git\PtokaX\core\IP2Country.cpp(452): ui8IPv6RangeCI = (uint8_t *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, ui32IPv6Size * sizeof(uint8_t));
C:\git\PtokaX\core\LanguageManager.cpp(78): sTexts[szi] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szTextLen+1);
C:\git\PtokaX\core\LanguageManager.cpp(132): sTexts[szi] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szLen+1);
C:\git\PtokaX\core\LuaScriptManager.cpp(174): ppScriptTable = (Script **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)oldbuf, (ui8ScriptCount+1)*sizeof(Script *));
C:\git\PtokaX\core\ProfileManager.cpp(387): ppProfilesTable = (ProfileItem **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldTable, ui16ProfileCount*sizeof(ProfileItem *));
C:\git\PtokaX\core\ProfileManager.cpp(417): ppProfilesTable = (ProfileItem **)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldTable, (ui16ProfileCount+1)*sizeof(ProfileItem *));
C:\git\PtokaX\core\ProfileManager.cpp(578): ppProfilesTable[iProfile]->sName = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldName, szLen+1);
C:\git\PtokaX\core\serviceLoop.cpp(688): curUser->pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, sOldBuf, szNeededLen+1);
C:\git\PtokaX\core\SettingManager.cpp(573): sMOTD = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldMOTD, ui16MOTDLen+1);
C:\git\PtokaX\core\SettingManager.cpp(981): sTexts[szTxtId] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldText, szLen+1);
C:\git\PtokaX\core\SettingManager.cpp(1158): sPreTexts[SETPRETXT_HUB_SEC] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubSec, ui16TextsLens[SETTXT_BOT_NICK]+1);
C:\git\PtokaX\core\SettingManager.cpp(1222): sPreTexts[SETPRETXT_MOTD] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldMotd, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1273): sPreTexts[SETPRETXT_HUB_NAME_WLCM] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldWelcome, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1328): sPreTexts[SETPRETXT_HUB_NAME] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubName, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1390): sPreTexts[SETPRETXT_REDIRECT_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldRedirAddr, szNeededLen);
C:\git\PtokaX\core\SettingManager.cpp(1432): sPreTexts[SETPRETXT_REG_ONLY_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldRegOnlyMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1489): sPreTexts[SETPRETXT_SHARE_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldShareLimitMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1586): sPreTexts[SETPRETXT_SLOTS_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldSlotsLimitMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1677): sPreTexts[SETPRETXT_HUB_SLOT_RATIO_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubSlotLimitMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1765): sPreTexts[SETPRETXT_MAX_HUBS_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubLimitMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1868): sPreTexts[SETPRETXT_NO_TAG_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldNoTagMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(1937): sPreTexts[SETPRETXT_TEMP_BAN_REDIR_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldTempBanRedirMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2000): sPreTexts[SETPRETXT_PERM_BAN_REDIR_ADDRESS] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldPermBanRedirMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2051): sPreTexts[SETPRETXT_NICK_LIMIT_MSG] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldNickLimitMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2241): sPreTexts[SETPRETXT_HUB_BOT_MYINFO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldHubBotMyinfoMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2373): sPreTexts[SETPRETXT_OP_CHAT_HELLO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldOpChatHelloMsg, szNeededMem);
C:\git\PtokaX\core\SettingManager.cpp(2402): sPreTexts[SETPRETXT_OP_CHAT_MYINFO] = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldOpChatMyInfoMsg, szNeededMem);
C:\git\PtokaX\core\User.cpp(1046): pRecvBuf = (char *)HeapReAlloc(clsServerManager::hRecvHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen);
C:\git\PtokaX\core\User.cpp(1267): pSendBuf = (char *)HeapReAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignTxtLen);
C:\git\PtokaX\core\User.cpp(1306): pSendBuf = (char *)HeapReAlloc(clsServerManager::hSendHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szAllignLen);
C:\git\PtokaX\core\User.cpp(1785): pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, pOldBuf, szLen+1);
C:\git\PtokaX\core\User.cpp(1805): pLogInOut->pBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, pOldBuf, 512);
C:\git\PtokaX\core\User.cpp(2047): clsUsers::mPtr->pNickList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, clsUsers::mPtr->ui32NickListSize+NICKLISTSIZE+1);
C:\git\PtokaX\core\User.cpp(2202): clsUsers::mPtr->pOpList = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, clsUsers::mPtr->ui32OpListSize+OPLISTSIZE+1);
C:\git\PtokaX\core\User.cpp(2659): cur->sCommand = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, cur->ui32Len+szCommandLen+1);
C:\git\PtokaX\core\utility.cpp(1178): return ::HeapReAlloc(clsServerManager::hLuaHeap, 0, pData, szNewSize);
C:\git\PtokaX\core\utility.cpp(1402): clsServerManager::pGlobalBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, clsServerManager::szGlobalBufferSize);
C:\git\PtokaX\core\utility.cpp(1430): clsServerManager::pGlobalBuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)sOldBuf, clsServerManager::szGlobalBufferSize);
C:\git\PtokaX\core\ZlibUtility.cpp(86): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize);
C:\git\PtokaX\core\ZlibUtility.cpp(161): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize);
C:\git\PtokaX\core\ZlibUtility.cpp(217): sOutData = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szOutDataSize+1);
C:\git\PtokaX\core\ZlibUtility.cpp(259): pZbuffer = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, szZbufferSize);
C:\git\PtokaX\core\ZlibUtility.cpp(316): sOutData = (char *)HeapReAlloc(clsServerManager::hPtokaXHeap, HEAP_NO_SERIALIZE, (void *)pOldBuf, uiOutDataSize);



Go to the top of the page
+Quote Post
alex82
сообщение 8.2.2015, 9:00
Сообщение #97


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1406 раз




PPA, уговорить это маловероятно. У PPK много подобных странностей - и бесконечные #ifdef _WIN32 при выделении памяти, и явные указания размеров массивов и строк вместо использования sizeof (потому что это якобы ускоряет компиляцию), и функция CheckSprintf (возможно, это просто рудимент, оставшийся с тех времен, когда птока собиралась в придурковатом компиляторе от Borland, и там функция sprintf действительно могла косячить).


Спасибо сказали:
Go to the top of the page
+Quote Post
PPA
сообщение 15.3.2015, 22:23
Сообщение #98


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




В версии 5.0.3 птоха стала рубить клиентов которые используют NAT Traversal
у себя на хабе пофиксил так
https://github.com/pavel-pimenov/PtokaX/com...1c515d405b6e091

клиенты дописывают к номеру порту N, NS, R, RS

[Outgoing][94.242.221.159:411] $ConnectToMe Gramm 80.92.105.240:51179NS MikeKMV|
<MikeKMV> [21:33:43] <FlyBot> Your client sent incorrect port in connection request!

https://github.com/pavel-pimenov/flylinkdc-...mdchub.cpp#L786
https://github.com/pavel-pimenov/flylinkdc-...mdchub.cpp#L715

так-же отослал ошибку PPK - может он тоже поправит
Go to the top of the page
+Quote Post
Артём
сообщение 15.3.2015, 23:35
Сообщение #99


Наруто на аваторке
***********

Группа: Пользователи
Сообщений: 2 606
Регистрация: 11.10.2008
Из: Харькова
Пользователь №: 771
Спасибо сказали: 774 раза




PPA, ты ошибся темами, здесь моды от alex82 big_smile.gif
Go to the top of the page
+Quote Post
PPA
сообщение 16.3.2015, 1:48
Сообщение #100


Участник
**

Группа: Пользователи
Сообщений: 36
Регистрация: 6.2.2009
Из: Липецк
Пользователь №: 2 131
Спасибо сказали: 8 раз




Цитата(Артём @ 15.3.2015, 23:35) *
PPA, ты ошибся темами, здесь моды от alex82 big_smile.gif


почему ошибся? думаешь ему не интересно знать на какие грабли уже наступили другие? )
или он не планируется обновляться до 5.0.3 ?
Go to the top of the page
+Quote Post
fabelum
сообщение 14.6.2015, 20:32
Сообщение #101


Абсолютный новичок


Группа: Пользователи
Сообщений: 5
Регистрация: 9.12.2013
Пользователь №: 12 227
Спасибо сказали: 0 раз




Мда... Судя по-всему не интересно и не планирует.
Жаль.
Go to the top of the page
+Quote Post

6 страниц V  « < 3 4 5 6 >
Ответить в данную темуНачать новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Перехват выполнения бана(ов) PtokaX
Возможно ли?
0 MIKHAIL 1 220 1.8.2022, 10:31 Посл. сообщение: MIKHAIL
No new Topic has attachmentsУстановка хаба PtokaX 0.5.2.2 на роутер под прошивкой LEDE 2017
DC++ сервер в роутере
15 мамин_парень 18 281 29.1.2021, 8:02 Посл. сообщение: мамин_парень
No new Topic has attachmentsPtokaX 0.5.2.1 Mod
Модификация PtokaX от alex82
17 alex82 22 304 22.8.2019, 12:27 Посл. сообщение: SergSat
No New Posts Ptokax 0.5.0.2
Crash-14.11.2014-01.11.48.log
8 Drakula 13 403 6.6.2019, 15:09 Посл. сообщение: avalon
No New Posts Topic has attachmentsПрошивка LEDE 17.01.4 для 740n v4,v5 c PtokaX 0.5.0.1
Готовая прошивка с поддержкой сервера DC++, все влезло в 4мб ))
1 мамин_парень 6 400 10.3.2018, 15:29 Посл. сообщение: мамин_парень
No New Posts Ptokax, opendchub (DC++) - Сборка пакета для OpenWRT, LEDE 2017
Пакеты хабов для прошивки роутера
0 мамин_парень 5 577 29.8.2017, 7:00 Посл. сообщение: мамин_парень
No new Topic has attachmentsАнтиреклама для PtokaX
API1, API2 | Скрипт антирекламы для чата и лички
39 Damaks 56 877 9.8.2017, 14:26 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsPtokaX
Описание. Публикация новых версий
94 Svyat 186 650 11.4.2017, 23:08 Посл. сообщение: Alexey
No new Topic has attachmentsPtokaX в OpenWrt (Linux)
Ребята как собрать под эту систему?
21 мамин_парень 29 614 10.4.2017, 15:19 Посл. сообщение: мамин_парень
No New Posts Автозапуск PtokaX на Rassberry Pi?
Не могу запустить
13 Sezam 15 664 7.11.2016, 9:14 Посл. сообщение: Saymon21
No New Posts Доска обьявлений для Ptokax 0.5.0.x
3 NightmareUA 8 491 11.8.2016, 16:22 Посл. сообщение: Ksan
No New Posts FreeBSD 11.0 & PtokaX
Проблема подключения в клиенте PtokaX по имени
5 nsd7 8 981 22.4.2016, 3:47 Посл. сообщение: Saymon21
No New Posts От: PtokaX 0.5.2.1 Mod
От темы с ID: 5784
0 Alexey 4 542 21.4.2016, 18:16 Посл. сообщение: Alexey
No New Posts Перенос базы пользователей с RusHub на PtokaX
3 Angel_D 8 908 5.12.2015, 2:11 Посл. сообщение: Saymon21
No new ВАЖНО: Topic has attachmentsСборка Ptokax 0.4.1.1 В Debian & Ubuntu
Руководство по установке
248 mariner 243 141 16.5.2015, 18:39 Посл. сообщение: KT315

 



RSS Сейчас: 27.11.2024, 1:08