Рейтинг темы:
  • 2 Голос(ов) - 3 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Piercing Shark - сниффер пакетов
#1
Приветствую всех!

В виду того, что PointShark так и не исправили, пришлось брать дело в свои руки и запилить на базе MapleShark - сниффер пакетов к игре Piercing Blow и Point Blank с версией 1.x - 3.x

[Изображение: QZ7D.png]

Как и в оригинальном MapleShark поддерживаются скрипты для разбора пакетов. Так же, в их API были добавлены методы чтения Unicode строк:

[SRC="csharp"] string AddUnicodeString(string name, int sizeOf);
string AddPaddedUnicodeString(string name, int length);
[/SRC]


C формы Data можно копировать данные в буфер обмена двумя способами:

CTRL + C - копирует hex:

Код:
58 00 61 00 76 00 69 00 65 00 72 00 43 00 6F 00 6D 00 6D 00 61 00 6E 00 64 00 65 00 72 00

CTRL + B - копирует подготовленный массив байт:

Код:
var data = new byte[]
{
    0x58, 0x00, 0x61, 0x00, 0x76, 0x00, 0x69, 0x00, 0x65, 0x00, 0x72, 0x00, 0x43, 0x00, 0x6f, 0x00,
    0x6d, 0x00, 0x6d, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x64, 0x00, 0x65, 0x00, 0x72, 0x00,
};

Написание скриптов

Последняя версия: 1.0.0.2 (Изменения)
Предыдущая версия: 1.0.0.1 (Изменения)

VirusTotal PiercingShark 1.0.0.2.7z
VirusTotal PiercingShark 1.0.0.1.7z
VirusTotal PiercingShark.7z

Для запуска требуется .NET Framework 4.6.1 и WinPcap.


Файлы вложений
.7z   PiercingShark.7z (Размер: 397.01 KB / Загрузок: 253)
.7z   PiercingShark 1.0.0.1.7z (Размер: 397.68 KB / Загрузок: 224)
.7z   PiercingShark 1.0.0.2.7z (Размер: 398.26 KB / Загрузок: 667)
Ответ
#2
Если вы пишете сервер под более старые клиенты:

http://pb.nfinitygames.com
http://pb.ongame.com.br
http://pb.kaybo1.com
... Ещё есть? kappa

Говорите, я постараюсь добавить их поддержку.
Ответ
#3
PROGRAMMATOR, а как же 4game.ru ? Big Grin
_____________________________
В стати, локальный порт не отображает всех подключений vpn,
что бы его выбрать, Config.xml -> Interface > прописать <
Ответ
#4
Там Frost. Smile
Ответ
#5

Не мог бы ты помочь?
Как реализовать стринг и можно ли как то упростить?
PROTOCOL_BASE_GET_SYSTEM_INFO_ACK
Ответ
#6
Упростить всегда есть что:

[SRC="csharp"]servers = Struct.AddByte("Count Server");

for (i = 0; i < servers; i++)
{
Struct.StartNode("Server");

Struct.AddInt("Available"); // Это не Id
Struct.AddInt("Ip"); // Совсем забыл за IP, добавлю позже AddIP Smile
Struct.AddShort("Port");
Struct.AddByte("Type");
Struct.AddShort("Max Count Player");
Struct.AddInt("Online");

Struct.StartNode("Channels");
for (j = 0; j < 10; j++)
{
Struct.AddByte("Type");
}
Struct.EndNode(true); // Каналы true - раскрыто

Struct.EndNode(false); // Сервер false - свёрнуто
}
[/SRC]


Текст, если не Unicode:

[SRC="csharp"]length = Struct.AddShort("ShopUrl Length");
Struct.AddPaddedString("ShopUrl", length);
[/SRC]
Ответ
#7
Awiion Написал:PROGRAMMATOR, а как же 4game.ru ? Big Grin
_____________________________
В стати, локальный порт не отображает всех подключений vpn,
что бы его выбрать, Config.xml -> Interface > прописать <

whether the same pb.kaybo login with pb.ru?
Can you give me a structure CM_LOGIN to pb.kaybo
Ответ
#8
В первом посте добавлена информация по написанию скриптов для разбора структуры пакетов. Wink
Ответ
#9
crayonnet,

Код:
i3NetworkPacket::WriteData(&v269, &v235, 5u); // Client Version (1.15.37)
i3NetworkPacket::WriteData(&v269, &v227, 1u);
i3NetworkPacket::WriteData(&v269, &v254, 1u); // Login Length
i3NetworkPacket::WriteData(&v269, &v255, 1u); // Password Length
i3NetworkPacket::WriteData(&v269, (const void *)(v59 + 1944), v254); // Login
i3NetworkPacket::WriteData(&v269, (const void *)(v59 + 2009), v255); // Password
i3NetworkPacket::WriteData(&v269, (const void *)(v59 + 2080), 8u); // MAC address
i3NetworkPacket::WriteData(&v269, &v256, 1u);
i3NetworkPacket::WriteData(&v269, (const void *)(v236 + 6), 4u); // IP
i3NetworkPacket::WriteData(&v269, &v234, 8u);
i3NetworkPacket::WriteData(&v269, &v245, 0x20u); // md5_file("UserFileList.dat")
Ответ
#10
Вышла новая версия с исправлениями и доработками. Первый пост обновлен.

В API чтения структуры добавлены методы:

[SRC="csharp"]// В PB дата представляет собой целое число в формате yyMMddHHmm
AddDate(string name);
AddIP(string name);
[/SRC]


Доработана форма редактирования скриптов, теперь можно обновить структуру не закрывая редактор.

Редактор скриптов

Обновлена форма Properties, теперь в списке подсвечивается указанный тип (AddType(name)) для выбранного элемента. Так же добавлены новые типы данных.

Подсвеченный тип float для структуры AddFloat

P.S. Возможно, был исправлена проблема с отображением сетевого интерфейса в окне настройки. Небыло у меня данный проблемы, но я убрал пару проверок, может поможет. kappa

Если у вас была прошлая версия, то достаточно заменить PiercingShark.exe.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)