02-19-2014, 02:58 PM
Ну вот. О чём я собственно и говорил.
ArcheAge Опкоды
|
02-19-2014, 02:58 PM
Ну вот. О чём я собственно и говорил.
02-21-2014, 09:19 AM
В продолжении темы опкодов, немного о клиентских пакетах.
(примеры не с актуальной вресии, адреса отличаются) Вопрос обхода фемиды, приведения исходника в божеский вид и обработку RTTI оставим в стороне. Имеется - список vtable для всех пакетов. Требуется вытащить ID. Выбираем понравившийся клиентский пакет. Код: 396D3A54 0003 struct X2::CAEnterWorldPacket: struct X2::ClientToAuthPacket, struct INetPacket; [SI] Код: .rdata:396D3A50 ; struct X2::CAEnterWorldPacket: struct X2::ClientToAuthPacket, struct INetPacket; [SI] O: 0, A: 0 (Class Informer) Второй пишет в поток тип пакета, метод один и тот же для всех пакетов (запомните это, упомяну ещё раз). Третий пишет все остальные данные пакета. На данный момент это не интересно. Интересны 2 ссылки на vtable. Очевидно, что одна из них (а в нашем случае, так вообще обе) указывают сюда из конструктора. Код: .text:39365BB4 mov ds:dword_15CC4[esi], ecx И вот что у нас выходит - конструктор инлайнится и он не в 100% случаев такой тривиальный. Запись опкода может идти сразу, а может через пару инструкций. К слову серверные пакеты конструируются так же, но потом складываются в очень удобную табличку, откуда достаются в один проход скрипта (А то как складываются, заслуживает отдельной статьи на тему "почему разработчикам надо вовремя отрывать руки?"). Желающие могут руками протыкать все пакеты и составить список, ну или придумать что повеселее. У меня скрипт для сборки клиентских пакетов не получился. Есть ещё вариантик, может кому покажется более простым. Помните второй метод? Который тип пакета пишет. Код: .text:390196E0 sub_390196E0 proc near ; DATA XREF: .rdata:3968F718o
02-21-2014, 10:34 AM
Забавно читать
![]() Цитата:К слову о методах. Первый возвращает класс пакета (я табличку выше постил).Если ты о "dd offset const X2::CAEnterWorldPacket", то это не метод, а ссылка на RTTI класса. Цитата:Интересны 2 ссылки на vtable. Очевидно, что одна из них (а в нашем случае, так вообще обе) указывают сюда из конструктора.Да, потому что в конструкторе в указатель объекта записывается ссылка на его тип. Цитата:Пакет создаётся на стеке и сразу уходит в обработку.boost::bind Цитата:Есть ещё вариантик, может кому покажется более простым.А вот тут вопрос — этот метод вызывается для всех пакетов при регистрации, или при обработке пакета? Если первое, то можно сдампить, если второе, то надо ждать, пока все пакеты пройдут ![]() ЗЫ: Сам я пока не ковырял АА, всё в раздумьях — стоит ли она того или просто запастись попкорном ![]()
02-21-2014, 10:50 AM
luxtau Написал:Забавно читатьЗабавно читать подобные комментарии. Данная заметка для тех, кто не успел набрать практику реверса, но жаждит получить клиентские опкоды. luxtau Написал:Если ты о "dd offset const X2::CAEnterWorldPacket", то это не метод, а ссылка на RTTI класса.Я кажется вполне русским языком написал, что первый метод в vtable. luxtau Написал:boost::bindМаловероятно. Просто создаётся на стеке и уходит в сериализатор. Они все унаследованы от базы клиент серверных пакетов своего типа. luxtau Написал:А вот тут вопрос — этот метод вызывается для всех пакетов при регистрации, или при обработке пакета? Если первое, то можно сдампить, если второе, то надо ждать, пока все пакеты пройдутПри отправке пакета на сервер. Естественно пока все пройдут а ещё и дубликаты убирать.
02-21-2014, 11:00 AM
Оффтоп, но:
Цитата:Данная заметка для тех, кто не успел набрать практику реверса, но жаждит получить клиентские опкоды.А зачем? Чисто философский вопрос — зачем толпы скрипт-киддисов? Не логичнее ли заняться либо эмулятором, либо приватными/платными вещами типа JF, AA bot или что-то в этом роде?
02-21-2014, 11:35 AM
Мне нужно чтоб некоторые вещи были массовыми.
02-21-2014, 05:08 PM
Я без практики реверса вытащил все пакеты и оп коды + реверснул структуры с помощи иды
03-12-2014, 03:27 PM
Тема заглохла?
А я вот вытащил опкоды клиентские. И собрал все вытащенные опкоды в кучу. Выложил тут: https://github.com/MadHacker666/aainfo А вот C2W выкладывать пока не стал. почти 300 пакетов. Озвереть можно руками собирать коды, а автоматизировать... Вообще как оказалось можно. Потом примерно десяток пакетов надо будет руками допилить. В основной массе конструкторов опкод пишется сразу после vtable. Список C2W пакетов выложу если в паблике появится больше информации о протоколе. Ну или ещё чего нибудь интересное.
03-12-2014, 03:35 PM
MadHacker, не мог бы ты дать клиент без Themida так как увы но очень мешает работать.
03-12-2014, 04:00 PM
А я её не снимал. Мне она не мешает.
|
« Предыдущая | Следующая »
|
Возможно похожие темы ... | |||||
Тема | Автор | Ответы | Просмотры | Последний пост | |
Исследование базы ArcheAge | 138 | 85,271 |
11-09-2023, 05:17 PM Последний пост: ShannonAAEMU |
||
Archeage client 24.04.13 | 6 | 6,598 |
07-03-2022, 08:08 AM Последний пост: anthemis |
||
Эмулятор ArcheAge | 1 | 3,374 |
06-04-2021, 07:35 PM Последний пост: anthemis |
||
Archeage 1.2 РУ клиент | 1 | 3,086 |
04-29-2021, 08:52 PM Последний пост: anthemis |
||
Собираю команду для создания сервера Archeage | 60 | 41,142 |
03-21-2021, 10:05 AM Последний пост: anthemis |
||
Будем заниматься ArcheAge? | 105 | 44,944 |
02-15-2021, 06:08 AM Последний пост: anthemis |
||
[WTB] Archeage gamigo server files | 0 | 3,147 |
08-20-2020, 10:20 AM Последний пост: Sparkle |
||
ArcheAge Pack Tool | 9 | 20,587 |
09-11-2019, 09:56 AM Последний пост: nikes |
||
archeage emu files | 4 | 6,760 |
08-21-2018, 01:21 AM Последний пост: JeyFrey |
||
Площадка продажи покупки игровых ценностей ArcheAge | 0 | 3,356 |
08-18-2018, 10:35 PM Последний пост: nbgr |