Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > Tools

Важная информация

Tools Обсуждение программ для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.04.2011, 14:58   #41
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Чем больше опкодов появляется в паблике, тем сильнее защиту делает близзард
LordJZ вне форума   Ответить с цитированием
Старый 28.04.2011, 15:50   #42
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Ага, ясно.
Ну тем не менее я потихоньку допишу хотя бы минимально функциональный код, может что получится из открытого проекта.
Предполагается что список опкодов и все скрипты - парсеры опкодов будут вшешними. Следовательно движок один, а уж опкоды каждый сам у себя приводит в актуальное состояние.
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
LordJZ (28.04.2011)
Старый 28.04.2011, 20:49   #43
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну я могу отдать на растерзание свой zPktViewer, сорцы всмысле. времени сейчас им заниматься нет совсем...
только как у вас с delphi?

Йоха, я смотрю дизайн вьювера никак не хочет меняться как я его придумал 500 тыщ лет назад, а он всё такой же прям как с нортон командером
RomanRom2 вне форума   Ответить с цитированием
Старый 28.04.2011, 21:37   #44
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
Йоха, я смотрю дизайн вьювера никак не хочет меняться как я его придумал 500 тыщ лет назад, а он всё такой же прям как с нортон командером
ну да, я просто прикинул другие варианты, как-то места мало остается под остальные окна. Ничего толкового в общем не придумал. Завтра на работе если не будет особо дел, то доделаю хотя бы простое чтение чтение файла и может быть хекс вью.
Язык с++, фреймворк - WTL, есть желающие присоединиться к разработке ?
Йоха вне форума   Ответить с цитированием
Старый 28.04.2011, 22:28   #45
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
но он не актуальный на данный момент ? я там глянул на опкоды, они все старые
Мой PacketViewer под 3.3.5а если вы об этом. Смысла что-то писать под катаклизм я на вижу.
TOM_RUS вне форума   Ответить с цитированием
Старый 04.05.2011, 09:53   #46
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Сделал загрузку имен опкодов из внешнего файла.
Файл ищется в папке с программой в подпапке равному номер билда
Номер билда берется их заголовка pkt файла.
Например открываем сниф от билда 13623, сама программа находится в папке c:\packetview.
Будет загружен файл c:\packetview\13623\opcodes.txt
Если для опкода нет символьного представления, то выводится просто его значение

ЗЫ, в догонку вопрос, какой контейнер лучше использовать вместо std::vector для составления индекса pkt файла.
Просто при открытии больших снифов (порядка 160000 пакетов) возникает задержка при формировании индекса. Насколько я помню vector делает перемещения памяти для того что бы все данные располагались единым блоком. Мне это не нужно, от контейнера требуется 2 вещи - быстрая вставка в конец списка и произвольный доступ к элементам посредством оператора [].
К сожалению в STL не силен, знаю так основы.
Миниатюры
Нажмите на изображение для увеличения
Название: screen.jpg
Просмотров: 711
Размер:	116.1 Кб
ID:	905  

Последний раз редактировалось NeatElves; 04.05.2011 в 11:21.
Йоха вне форума   Ответить с цитированием
Старый 04.05.2011, 10:45   #47
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

поидее std::deque должен подойти

Последний раз редактировалось alien; 04.05.2011 в 12:09.
alien вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Йоха (04.05.2011)
Старый 04.05.2011, 11:03   #48
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

во! то что надо, теперь открытие любых файлов осуществляется почти мгновенно!

Последний раз редактировалось Йоха; 04.05.2011 в 11:54.
Йоха вне форума   Ответить с цитированием
Старый 05.05.2011, 12:56   #49
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

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

И как лучше отдавать пакет в луа код ? просто как последовательность байт ? В луа есть возможности для анализа массива байт ?
А, посмотрел на пример у топикстартера, лучше реализовать функции для чтения данных из пакета:
Код:
Read8  - число 8бит
Read16
Read32
Read64
ReadPG - пакованый GUID
ReadString
какие еще "элементарные" типы данных понадобятся ?

Последний раз редактировалось Йоха; 05.05.2011 в 13:14.
Йоха вне форума   Ответить с цитированием
Старый 05.05.2011, 14:50   #50
Lordronn
Умный
 
Регистрация: 17.06.2010
Сообщений: 397
Сказал(а) спасибо: 58
Поблагодарили 55 раз(а) в 38 сообщениях
Lordronn Скоро придёт к известности
По умолчанию

Bool
Guid
Vector2
Vector3
Vector4
PackedVector
PacketQuaternion

UintBool - по другому не знаю как назвать. Близы используют в некоторых пакетах 4 байта для передачи да или нет, а не бул.

Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 40 сообщение(ий)):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.
Lordronn вне форума   Ответить с цитированием
Старый 05.05.2011, 14:57   #51
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

PackedVector это разница между будущем и текущем векторами, просто так его читать нельзя

Йоха, а вы только на С++ пишете?

Последний раз редактировалось LordJZ; 05.05.2011 в 15:01.
LordJZ вне форума   Ответить с цитированием
Старый 05.05.2011, 15:15   #52
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

В общем ясно, это надо допилить по ходу дела. Сейчас допишу элементарное взаимодействие со скриптами.

В целом архитектура вырисовывается такая, для работы программы требуются 2 файла:
opcodes.txt
parsers.lua

оба файла загружаются из папки соответсвующей номеру билда снифа (берется из заголовка pkt файла)
формат opcodes.txt:
Код:
опкод, текстовое_представление_опкода, имя_функции_для_парсинга
опкод может быть как в десятичной системе, так и в шестьнадцатеричной. Для последней число должно начинаться с "0x"
например:
Код:
0x8581, CMSG_WORLD_TELEPORT, cmsg_world_teleport
для этого примера файл parsers.lua должен содержать функцию cmsg_world_teleport
Код:
function cmsg_world_teleport()
// тут написать собственно сам парсер пакета
end
внутри lua функции доступен объект "packet" который используется для чтения данных из пакета, например:
Код:
function cmsg_world_teleport()
  packet.Read8()
  packet.Read32()
end
ну и конечно какой-нибудь объект для вывода отпарсеной информации в окно программы, название пока не придумал
Йоха вне форума   Ответить с цитированием
Старый 05.05.2011, 15:17   #53
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

к своему парсеру я тоже собирался луа прикручивать. еще есть PascalScript и оно вроде как даже по главнее будет, но отдавая себе отчет в том, что вьюверы будут еще и что бы как то стандартизировать и унифицировать формат "плагинов"-"парсеров", я бы выбрал луа. грубо говоря один и тот же парсер какого нить опкода, написанный на луа (скажем SMSG_CHAR_ENUM.lua) одинаково хавался бы всеми вьюверами, и моим, и йохавским, и томаруса и еще чьим угодно.
RomanRom2 вне форума   Ответить с цитированием
Старый 05.05.2011, 16:23   #54
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Йоха, а вы только на С++ пишете?
на с++, на придурашном языке 1С (это слава богу в прошлом), на ассемблере, на делфи немного (давно не практиковался)
ах да, забыл добавить - еще на бейсике -)))) со школы его не забуду

Добавлено через 3 минуты
Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
как то стандартизировать и унифицировать формат "плагинов"-"парсеров", я бы выбрал луа. грубо говоря один и тот же парсер какого нить опкода, написанный на луа (скажем SMSG_CHAR_ENUM.lua) одинаково хавался бы всеми вьюверами, и моим, и йохавским, и томаруса и еще чьим угодно.
ну тут как мне кажется стандартизации подлежат только объекты которые будут предоставляться скриптам типа того что я описал выше, для чтения данных из пакета и для вывода информации обратно в программу

Добавлено через 1 час 1 минуту
Цитата:
Сообщение от Lordronn Посмотреть сообщение
UintBool - по другому не знаю как назвать. Близы используют в некоторых пакетах 4 байта для передачи да или нет, а не бул.
ну для этого можно использовать Read32
Йоха вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
LordJZ (05.05.2011)
Старый 05.05.2011, 18:24   #55
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Еще из луа пригодилась бы возможность распаковывать zlib'нутые данные.
То есть к функциям чтения добавить функцию распаковки.
alien вне форума   Ответить с цитированием
Старый 05.05.2011, 19:25   #56
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Еще из луа пригодилась бы возможность распаковывать zlib'нутые данные.
То есть к функциям чтения добавить функцию распаковки.
ну это не проблема, добавляется легко
Йоха вне форума   Ответить с цитированием
Старый 12.05.2011, 08:40   #57
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

build 12340
XML замечательно описывает формат пакета ( не считая условий )

Про JSON такого сказать не получится, но он и не для этого предназначается(может я его и не так использую...?)

Ипользуя XML можно организовать чтение пакетов, или кодогенератор...да и зрительно просто песня
может сообразим какой нить формат описания данных?
зы текущий XML формат позаимствован у TOM_RUS

Последний раз редактировалось Minimajack; 12.05.2011 в 09:04.
  Ответить с цитированием
Старый 12.05.2011, 10:36   #58
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

LoopLength не достаточно. попробуйте описать в xml пакет 00А9. если получится, то можно смело пользовать xml.
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 11:55   #59
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Код:
<Definition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Opcode="SMSG_COMPRESSED_UPDATE_OBJECT">
    <Fields xsi:type="Compress" DataType="gz" >
        <Fields xsi:type="DynamicLoop" Name="UpdateObject" DataType="UInt32">
            <Fields xsi:type="Switch" DataType="Byte">
                <Fields xsi:type="Case" Value="0">
                    <Fields xsi:type="Simple" Name="ObjGuid" DataType="Guid"/>
                    <Fields xsi:type="Struct" DataType="WoWObjectUpdate"/>
                </Fields>
                <Fields xsi:type="Case" Value="1">
                    <Fields xsi:type="Struct" DataType="MovementInfo"/>
                </Fields>
                <Fields xsi:type="Case" Value="2">
                    <Fields xsi:type="Simple" Name="ObjGuid" DataType="Guid"/>
                    <Fields xsi:type="Simple" Name="ObjectType" DataType="Byte"/>
                    <Fields xsi:type="Struct" DataType="MovementInfo"/>
                    <Fields xsi:type="Struct" DataType="WoWObjectUpdate"/>
                </Fields>
                <Fields xsi:type="Case" Value="3">
                    <Fields xsi:type="Simple" Name="ObjGuid" DataType="Guid"/>
                    <Fields xsi:type="Simple" Name="ObjectType" DataType="Byte"/>
                    <Fields xsi:type="Struct" DataType="MovementInfo"/>
                    <Fields xsi:type="Struct" DataType="WoWObjectUpdate"/>
                </Fields>
                <Fields xsi:type="Case" Value="4">
                    <Fields xsi:type="DynamicLoop" Name="NumbRangeObject" DataType="UInt32">
                        <Fields xsi:type="Simple" Name="ObjGuid" DataType="Guid"/>
                    </Fields>
                </Fields>
                <Fields xsi:type="Case" Value="5">
                    <Fields xsi:type="DynamicLoop" Name="NumbNearObject" DataType="UInt32">
                        <Fields xsi:type="Simple" Name="ObjGuid" DataType="Guid"/>
                    </Fields>
                </Fields>
            </Fields>
        </Fields>
    </Fields>
</Definition>

Последний раз редактировалось Minimajack; 12.05.2011 в 12:04.
  Ответить с цитированием
Старый 12.05.2011, 13:23   #60
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну это понятно, а где собсно самое интересное то?
где чтение блоков данных в завимости от флагов? где чтение и разбор битовой маски? где собсно разбор MovementInfo? не обязательно всё, ключевые моменты.
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 13:31   #61
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
ну это понятно, а где собсно самое интересное то?
где чтение блоков данных в завимости от флагов? где чтение и разбор битовой маски? где собсно разбор MovementInfo? не обязательно всё, ключевые моменты.
к сожалению нормально разобрать этот пакет у меня не получается( точнее ее часть с созданием объекта... где то не доглядел)
как приду на работу ( 30 мин ), скину парочку основных моментов, в общем то из-за них и начал, т.к. не всем может быть понятно такое описание.
  Ответить с цитированием
Старый 12.05.2011, 13:52   #62
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

разобрать пакет не проблема, он давно разобран, спрашивай что непонятно.
проблема описать это для вьювера и использовать в нем то, что описал.
RomanRom2 вне форума   Ответить с цитированием
Старый 12.05.2011, 14:25   #63
TOM_RUS
MaNGOS Dev
 
Регистрация: 11.03.2010
Сообщений: 468
Сказал(а) спасибо: 0
Поблагодарили 514 раз(а) в 163 сообщениях
TOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небесTOM_RUS Как свет с небес
По умолчанию

Пакет:
Код:
0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00
Структура:
Код:
uint32 flags;
if(flags & 0x1)
   uint32 value1;
if(flags & 0x2)
   uint32 value2;
Описание в XML:
Код:
<Definition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Opcode="CMSG_TEST_ACTION">
    <Fields xsi:type="ConditionMultiple" Name="Condition2" DataType="UInt32">
        <Fields xsi:type="ConditionCheck" Name="Condition2Field1" DataType="UInt32" ConditionType="And" ConditionValue="1">
            <Fields xsi:type="Simple" Name="ConditionCheckField1" DataType="UInt32"/>
        </Fields>
        <Fields xsi:type="ConditionCheck" Name="Condition2Field2" DataType="UInt32" ConditionType="And" ConditionValue="2">
            <Fields xsi:type="Simple" Name="ConditionCheckField2" DataType="UInt32"/>
        </Fields>
    </Fields>
</Definition>
Код:
Opcode: CMSG_TEST_ACTION
Condition2: 3
ConditionCheck: type And, value 1
ConditionCheckField1: 4
ConditionCheck: type And, value 2
ConditionCheckField2: 8

Последний раз редактировалось TOM_RUS; 12.05.2011 в 14:38.
TOM_RUS вне форума   Ответить с цитированием
Старый 12.05.2011, 14:59   #64
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

пока только обычные Condition
Код:
                <Struct xsi:type="Struct" StructName="MovementInfo">
                    <Fields xsi:type="Simple" Name="UpdateFlags" DataType="Byte"/>
                    <Fields xsi:type="Condition" ConditionType="8" variable="UpdateFlags" ConditionValue="32"> //ConditionType::And
                        <Fields xsi:type="Simple" Name="Flags" DataType="UInt32"/>
                        <Fields xsi:type="Simple" Name="Flags2" DataType="UInt32"/>
                        <Fields xsi:type="Simple" Name="TimeStamp" DataType="UInt32"/>
                        <Fields xsi:type="Simple" Name="Position" DataType="Coords3"/>
                        <Fields xsi:type="Simple" Name="Facing" DataType="Single"/>
                        <Fields xsi:type="Condition" ConditionType="8" variable="Flags" ConditionValue="512">
                            <Fields xsi:type="Struct" DataType="TransportInfo"/>
                        </Fields>
                    </Fields>
                     .....
                </Struct>
  Ответить с цитированием
Старый 13.05.2011, 11:52   #65
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Lordronn Посмотреть сообщение
Vector2
Vector3
Vector4
PackedVector
PacketQuaternion
1 вопрос : какой тип (применительно к с++) имеют вышеперечисленные данные ?

2 вопрос - float используется где-нибудь ?

Последний раз редактировалось Йоха; 13.05.2011 в 12:07.
Йоха вне форума   Ответить с цитированием
Старый 13.05.2011, 12:06   #66
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

2 - да, используется...
__________________
Konctantin вне форума   Ответить с цитированием
Старый 13.05.2011, 12:13   #67
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Йоха Посмотреть сообщение
1 вопрос : какой тип (применительно к с++) имеют данные ?
2 вопрос - float используется где-нибудь ?
PackedVector = размер DWord, потом распаковка
Vector3 = размер 3* DWord , грубо говоря 3 float - x,y,z ...
остальные пока не встретил...
  Ответить с цитированием
Старый 01.06.2011, 11:12   #68
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

надумал собрать, что то вроде, парсера-конструктора структуры пакетов...
то есть - при выводе пакета, выводить hex, отпарсенные данные и структуру пакета с возможностью изменения.
Думаю реально, но как это можно удобно представить...так как хотелось бы ввести побольше плюшек для лентяев как я...
кто то пытался такое соорудить?
остановился на тулбаре, деревом структуры пакета и панелью для изменения( настройки ) узла. Не знаю куда втулить вложенные структуры...или отдельной панелью...или вообще отдельно хранить и при надобности использовать...часто ли в пакетах присутствуют повторяющиеся структуры?
ps вообще хочется размять мозги...скучно стало
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
Konctantin (01.06.2011), Lordronn (02.06.2011)
Старый 01.06.2011, 11:53   #69
Konctantin
RuDB Dev
 
Аватар для Konctantin
 
Регистрация: 01.02.2010
Адрес: localhost
Сообщений: 592
Сказал(а) спасибо: 323
Поблагодарили 283 раз(а) в 122 сообщениях
Записей в дневнике: 2
Konctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всемKonctantin Это имя известно всем
По умолчанию

Спасибо за идею
__________________
Konctantin вне форума   Ответить с цитированием
Старый 02.06.2011, 15:45   #70
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

черновое расположение


желательна "здоровая" критика
  Ответить с цитированием
Старый 03.06.2011, 17:02   #71
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

"если структуры пакета можно представить в виде дерева, то почему бы и результаты разбора так не отображать..."
Экономия, при написании вывода. Думаю в структуре выделить пунктик и под необходимость вывода элементов.
Вложение 1001
пока что, только фейковый разбор( структура еще не редактируется)...но это только пока

Последний раз редактировалось Minimajack; 10.09.2011 в 03:17.
  Ответить с цитированием
Старый 03.06.2011, 18:53   #72
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

мне не нравится колонка direction. зачем она? я поэтому и сделал в своем вьювере слева отображаются клиентские, справа серверные опкоды. по мне так как то нагляднее.

далее, как ни крути - хочется видеть хекс и парсинг ОДНОВРЕМЕННО, а не через закладки. ну, опять же - имхо.

парсинг в виде дерева - здраво. наверное. время покажет.
RomanRom2 вне форума   Ответить с цитированием
Старый 03.06.2011, 19:15   #73
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от RomanRom2 Посмотреть сообщение
мне не нравится колонка direction. зачем она? я поэтому и сделал в своем вьювере слева отображаются клиентские, справа серверные опкоды. по мне так как то нагляднее.

далее, как ни крути - хочется видеть хекс и парсинг ОДНОВРЕМЕННО, а не через закладки. ну, опять же - имхо.

парсинг в виде дерева - здраво. наверное. время покажет.
все колонки настраиваемые...то есть сортировка, группировка, скрытие и т.п.
а поподробнее можно почему так нагляднее (опять же есть группировка...но результат будет не тот конечно), Возможно слева ввести дополнительную панель и по кнопочке разбросать...
хекс и парсинг...да пришлось на вкладочки - ибо место ограниченное.Либо уменьшить шрифт, либо делить одну вкладку по горизонтали, либо придумать кнопочку настройки "Отображения" - это надо подумать( имхо лучший вариант, но жесткий ).
можно увидеть скриншот парсера?
  Ответить с цитированием
Старый 03.06.2011, 20:43   #74
LordJZ
Супер-модератор
 
Аватар для LordJZ
 
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
LordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранитаLordJZ Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
все колонки настраиваемые...то есть сортировка, группировка, скрытие и т.п.
а поподробнее можно почему так нагляднее (опять же есть группировка...но результат будет не тот конечно), Возможно слева ввести дополнительную панель и по кнопочке разбросать...
хекс и парсинг...да пришлось на вкладочки - ибо место ограниченное.Либо уменьшить шрифт, либо делить одну вкладку по горизонтали, либо придумать кнопочку настройки "Отображения" - это надо подумать( имхо лучший вариант, но жесткий ).
можно увидеть скриншот парсера?
Мой «классический» парсер выглядит вот так: http://dl.dropbox.com/u/9241118/pack...r-overview.gif
Но я вижу мало смысла в Hex View. Подумываю о вынесении во вкладки Hex View и Parsed View.
LordJZ вне форума   Ответить с цитированием
Старый 03.06.2011, 23:22   #75
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Если посмотреть на первый скрин темы то там уже была идея с выводом структурой )
alien вне форума   Ответить с цитированием
Старый 04.06.2011, 00:20   #76
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от alien Посмотреть сообщение
Если посмотреть на первый скрин темы то там уже была идея с выводом структурой )
Ух....даже расположение панелей получилось похоже
вывод( как и парсинг ) - происходит исключительно за счет описания структуры пакета. Если у тебя аналогично - значит мыслим в одном направлении. Кстати как проект живет?
Пока 3 варианта хранения:
  1. использовать XML - как возможно-перспективный (экспорт-импорт)
  2. хранить сериализованное описание в бд - имхо, самый удобный
  3. в файлах - реализовано сейчас
  Ответить с цитированием
Старый 04.06.2011, 09:58   #77
RomanRom2
WowCore Dev
 
Аватар для RomanRom2
 
Регистрация: 31.03.2010
Сообщений: 468
Сказал(а) спасибо: 73
Поблагодарили 106 раз(а) в 70 сообщениях
RomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всемRomanRom2 Это имя известно всем
По умолчанию

ну собственно я ничего нового не скажу, просто приведу скриншот июля далекого 2007го: http://wowcore.ru/downloads/zPktViewer.png

Цитата:
Сообщение от LordJZ Посмотреть сообщение
Но я вижу мало смысла в Hex View. Подумываю о вынесении во вкладки Hex View и Parsed View.
это можно сделать раздвигающимся, как это модно сейчас. кликаешь на как бы бордюр "окна" и оно схлопывается. кликаешь снова - раскрывается. таким образом хекс можно убрать, кому не надо. но херс и парсер ДОЛЖНЫ быть на одном экране!
имхо
RomanRom2 вне форума   Ответить с цитированием
Старый 10.06.2011, 12:11   #78
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

расположение панелей для изменения структуры...
правая панель пока пустует(для описание элемента и его настройки)
добавил схематическое изображение циклам...
вот думаю все в одну кучу валить или разбивать на подменю? Логично циклы объединить, структуры впихнуть, но и лишние клики тоже не хочется делать
Вложение 1005

Последний раз редактировалось Minimajack; 10.09.2011 в 03:17.
  Ответить с цитированием
Старый 21.06.2011, 23:37   #79
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

не прошло и пол года...остановился на вложенных структурах.
Понемногу правлю тулбар....после очередной правки оказалось - наследование кривоватое ...буду переписывать (не хочется - что бы после удаления сложных структур - удалялись вложенные или ненужные драг-н-дроп нормальный прикрутить)
Вложение 1010
пока скрестил комбобокс+дерево...не нравится...буду скрещивать комбобокс с меню...

Последний раз редактировалось Minimajack; 10.09.2011 в 03:17.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Parser 4.x.x ANTOMA Tools 3 10.12.2010 18:15
MaNGOS баг-трекер (разработка) KiriX WWW 34 26.10.2010 12:45
wdb-parser Konctantin Tools 0 23.08.2010 11:14
[git] Командная разработка Hantet Новичкам 3 06.07.2010 09:01
Глобальный FAQ (разработка) Konctantin Новичкам 6 14.03.2010 10:46


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


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot