Re: ArcheAge Опкоды
Ну вот. О чём я собственно и говорил.
|
Re: ArcheAge Опкоды
В продолжении темы опкодов, немного о клиентских пакетах.
(примеры не с актуальной вресии, адреса отличаются) Вопрос обхода фемиды, приведения исходника в божеский вид и обработку 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 |
Re: ArcheAge Опкоды
Забавно читать :) Эти "откровения" можно почерпнуть из книги Inside the C++ Object Model или просто из практики реверса.
Цитата:
Цитата:
Цитата:
Цитата:
ЗЫ: Сам я пока не ковырял АА, всё в раздумьях — стоит ли она того или просто запастись попкорном :) |
Re: ArcheAge Опкоды
Цитата:
Данная заметка для тех, кто не успел набрать практику реверса, но жаждит получить клиентские опкоды. Цитата:
Цитата:
Цитата:
|
Re: ArcheAge Опкоды
Оффтоп, но:
Цитата:
|
Re: ArcheAge Опкоды
Мне нужно чтоб некоторые вещи были массовыми.
|
Re: ArcheAge Опкоды
Я без практики реверса вытащил все пакеты и оп коды + реверснул структуры с помощи иды
|
Re: ArcheAge Опкоды
Тема заглохла?
А я вот вытащил опкоды клиентские. И собрал все вытащенные опкоды в кучу. Выложил тут: https://github.com/MadHacker666/aainfo А вот C2W выкладывать пока не стал. почти 300 пакетов. Озвереть можно руками собирать коды, а автоматизировать... Вообще как оказалось можно. Потом примерно десяток пакетов надо будет руками допилить. В основной массе конструкторов опкод пишется сразу после vtable. Список C2W пакетов выложу если в паблике появится больше информации о протоколе. Ну или ещё чего нибудь интересное. |
Re: ArcheAge Опкоды
MadHacker, не мог бы ты дать клиент без Themida так как увы но очень мешает работать.
|
Re: ArcheAge Опкоды
А я её не снимал. Мне она не мешает.
|
Текущее время: 08:19. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot