Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Копаем клиент (http://mangos.ytdb.ru/forumdisplay.php?f=35)
-   -   WDB Cache (http://mangos.ytdb.ru/showthread.php?t=202)

Konctantin 10.03.2010 11:51

WDB Cache
 
WBD - это файлы в которых кешируется сетевой трафик передаваемый сервером клиенту. Но wdb-cache не содержит все данные, а только часть их.

Структура WBD следующая:
Заголовок:
  • Signature - byte[4] (перевернутая строка) Подпись кеша (описание ниже).
  • Version - uint Билд игрового клиента.
  • Lenguage - byte[4] (перевернутая строка) языковый пакет.
  • RowLenght - uint пока точно неизвестно, так как нет практического применения.
  • unk1 - uint
  • Client Cache Version - uint (версия кеша игрового клиента)
Данные:
Тут идет последовательность байт которые надо считывать в определенном порядке по заранее известной структуре.
Саму структуру можно посмотреть тут http://wiki.ytdb.ru/index.php/Wdb_struct

PS. Вобще-то саму строку можно представить в виде структуры:
Код:

uint Entry
uint EntrySize
byte[EntrySize]

Каждый файл кеша имеет свою подпись, по ней и определяется сама структура:
Код:

Файл                        Подпись

CreatureCache.wdb        WMOB
GameObjectCache.wdb        WGOB
QuestCache.wdb                WQST
ItemCache.wdb                WIDB
ItemNameCache.wdb        WNDB
ItemTextCache.wdb        WITX
NPCCache.wdb                WNPC
PageTextCache.wdb        WPTX
WOWCache.wdb                WRDN


LordJZ 10.03.2010 13:54

uint32 unk2 = Client Cache Version

SergiK_KilleR 10.03.2010 17:55

Цитата:

Сообщение от Konctantin (Сообщение 1126)
RowLenght - uint пока точно неизвестно, так как нет практического применения.

могу предположить что это длина строки wdb-шки (я не сужу по названию поля)...
если в wdb-шке есть поля типа string, то сложно определить конец этого поля и начало следующего, особенно если следующее поле тоже типа string. Я как-то выкручивался в такой ситуации с помощью значения RowLenght, но не помню, помогло ли мне это.

Konctantin 10.03.2010 18:09

нет, вряд ли, строка тут стандартная сишная с 0 в конце, так что вряд ли

MVersion 12.03.2010 20:44

Есть библиотечка wdbc https://code.launchpad.net/~wdbc-commits/+junk/main .
Кое какие файлы умеет открывать, свои форматы при знании языка и структуры тоже несложно добавлять.

Также dbc читает.

Konctantin 13.03.2010 13:39

Ну при работе с бинарными файлами библиотеки не надо, достаточно знать структуру. В принципе у каждого свои методы и способы.

Toxa 03.01.2011 17:54

Как открывать эти бинарные файлы?

Склеено
Гугл = .bin это скомпиленный проект (полностью рабочий модуль программы), который обратно открыть, в теории, конечно возможно, но на практике лучше не стоит. Полученный код будет на ассемблере, а ресурсы в зашифрованном виде. Это с учетом того, если после компиляции не применялись программы шифровки и замены исходного кода, потому что если применялись то шанс раскрыть чуть выше чем 0,001%

HuntsMan 09.03.2011 22:22

А может ли последняя строка не полностью быть? Просто пытаюсь читать creaturecache.wdb, все читается нормально, но последняя запись обрывается на имени. Пробывал чистый кеш с офа (почистил, зашел, вышел, открыл), но все тоже самое :(
И RowLenght это кол-во записей в wdb?

HuntsMan 20.03.2011 23:14

В gameobjectcache.wdb (4.0.6) кол-во полей data увеличили до 32. Тоже самое и в снифах. Поправьте на wiki.ytdb.ru кому не трудно, а то там регистрация закрыта :(

LordJZ 20.03.2011 23:19

Когда YTDB будет поддерживать 4.0.6, тогда и поправят :)

HuntsMan 21.03.2011 05:44

Цитата:

Сообщение от LordJZ (Сообщение 20157)
Когда YTDB будет поддерживать 4.0.6, тогда и поправят :)

Она поддерживает 4.0.3? :)

virusav 21.03.2011 08:37

Официально 335а.

HuntsMan 21.03.2011 11:59



Текущее время: 08:11. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS