1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. JonMagon
    Desmond Hume <form method="post"> <input type="text" name="userid"> <input type="submit"> </form> <?php if (!isset($_POST["userid"])) return; include("packet_class.php"); $GetUserRolesArg = new WritePacket(); $GetUserRolesArg -> WriteUInt32(-1); // always $GetUserRolesArg -> WriteUInt32(intval($_POST["userid"])); // userid $GetUserRolesArg -> Pack(0xD49); if (!$GetUserRolesArg -> Send("localhost", 29400)) // send to gamedbd return; $GetUserRolesRes = new ReadPacket($GetRoleBase); // reading packet from stream $GetUserRolesRes -> ReadPacketInfo(); // read opcode and length $GetUserRolesRes -> ReadUInt32(); // always $GetUserRolesRes -> ReadUInt32(); // retcode $count = $GetUserRolesRes -> ReadCUInt32(); for ($i = 0; $i < $count; $i++) { $roleid = $GetUserRolesRes -> ReadUInt32(); $rolename = $GetUserRolesRes -> ReadUString(); echo "[{$roleid}] {$rolename}<br>"; } ?> По поводу реткода, здесь есть для retcode == 4 эксепшн (из аута). simple listing roles from first post worked but with this php code for me if i wrote account id and submitted then nothing happened except the refresh, whats wrong? [1.4.2 v27] простые роли листинга из первого поста работал, но с этим кодом PHP для меня, если я написал идентификатор учетной записи и представил тогда ничего не произошло , за исключением обновления , что не так ? Класс для работы с пакетами закинь в папку со скриптом http://mmorpg-devs.ru/threads/packet-class-pw.17789/
    Сообщение от: JonMagon, 15 июл 2016 в разделе: PW Web
  2. JonMagon
  3. JonMagon
  4. JonMagon
  5. JonMagon
    Как это обычно бывает. Один расказал другому, тот расказал ещё кому-то, в итоге на каком-то шаге появился интересный человек, который бегает по всем серверам и устраивает такую, кхм, "атаку". Суть бага: пакет GetSavedMsg (0xD9) из gdeliveryd можно вызывать хоть сотню раз в секунду через OOG, при этом каждый раз он шлёт 0xD8 в gamedbd и пересылает обратно ответ клиенту, при правильном подборе условий (кол-во сохранённых сообщений в тет-а-тет и скорость отправки пакетов) это заставляет сервер генерировать такие объёмы трафика, что он досит сам себя. Решение — заглушить обработчик пакета GetSavedMsg. Побочный эффект — нельзя будет получить историю беседы тет-а-тет (кто-то этим пользуется?). 1. Открываем gdeliveryd в IDA 2. Переходим в функцию GNET::GetSavedMsg::Process [IMG] [IMG] [IMG] 3. Заменяем push ebp на retn [IMG] Меняем первый байт на C3 [IMG] [IMG] 4. Сохраняем изменения [IMG] [IMG] 5. Загружаем на сервер
    Автор темы: JonMagon, 11 июл 2016, ответов - 3, в разделе: PW Фиксы
  6. JonMagon
  7. JonMagon
  8. JonMagon
  9. JonMagon
  10. JonMagon
  11. JonMagon
  12. JonMagon
  13. JonMagon
  14. JonMagon
  15. JonMagon
  16. JonMagon
  17. JonMagon
    О да, это то что надо. Только вот с кодировкой беда теперь точно. т.к. md5(соль,true); отдаем строку "v��M�M�dz����ҧ�" я вытащил хеш из бд не указав кодировку utf-8 все сошлось, но если вытаскивать указав utf-8 (mysql_query("SET NAMES 'utf8'");) то вместо � нужные символы. Вообще вопрос, где я не указал кодировку urf-8 в php (mb_internal_encoding("UTF-8"); есть)? Огромное спасибо всем! Вытаскиваешь из базы данных пароль, клеешь новый пароль — сравниваешь. Я ещё не видел, чтобы руками доставали пароль из бд и в бинарном виде пытались его засунуть как текстовую переменную. о_____О Я так и делаю: <?php mb_internal_encoding("UTF-8"); $link = mysql_connect('localhost', 'root', '5574793'); mysql_select_db ("pw") or die ("Невозможно открыть $db"); mysql_query("SET NAMES 'utf8'"); $query = "SELECT * FROM users WHERE name=\"admin\""; $result = mysql_query ( $query ); $n = mysql_num_rows ( $result ); for ( $i=0; $i<$n; $i++ ) { $row = mysql_fetch_array($result); $Salt = $row[name].$row[idnumber]; $Salt = md5($Salt, true); echo "Хеш из БД: $row[passwd]<br>Пароль: $row[idnumber]<br>Логин+Пароль хеш: $Salt"; } mysql_close ( $link ); ?> Ответ получаю: Хеш из БД: vÈçM®M¢Ç³í²‘ÌÒ§£ Пароль: 5574793 Логин+Пароль хеш: v��M�M�dz����ҧ� Сравниваю... Не сходится Убираю из кода "mysql_query("SET NAMES 'utf8'");" все работает как надо Хеш из БД: v��M�M�dz����ҧ� Пароль: 5574793 Логин+Пароль хеш: v��M�M�dz����ҧ� но убирать это нельзя т.к. будут проблемы с русскими символами из БД Что у тебя делают русские символы в бд?
    Сообщение от: JonMagon, 26 май 2016 в разделе: PW Вопросник
  18. JonMagon
    Но проблемка в том что в БД хеш храниться в непонятной мне кодировке или "шифре" который просто не вытащить от туда. Какой кодировке? Это вообще бинарные данные. Аргумент true в md5() заставляет отдать хеш в сыром виде, не преобразовывая в текстовый. О да, это то что надо. Только вот с кодировкой беда теперь точно. т.к. md5(соль,true); отдаем строку "v��M�M�dz����ҧ�" я вытащил хеш из бд не указав кодировку utf-8 все сошлось, но если вытаскивать указав utf-8 (mysql_query("SET NAMES 'utf8'");) то вместо � нужные символы. Вообще вопрос, где я не указал кодировку urf-8 в php (mb_internal_encoding("UTF-8"); есть)? Огромное спасибо всем! Вытаскиваешь из базы данных пароль, клеешь новый пароль — сравниваешь. Я ещё не видел, чтобы руками доставали пароль из бд и в бинарном виде пытались его засунуть как текстовую переменную. о_____О
    Сообщение от: JonMagon, 26 май 2016 в разделе: PW Вопросник
  19. JonMagon
  20. JonMagon