Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 11.08.2016, 22:26   #91
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
ScythLab, оО, у меня такого в списке экспорта нет. буду смотреть распакованную.
лучше начинать играться на HF/GoD, тогда всё будет, а дальше уже переходить на последние хроники

Цитата:
Сообщение от xixi Посмотреть сообщение
Нафиг смотреть список экспорта? В иде находите функцию и считайте оффсет.
чтобы найти эти функции, нужно вначале понять как они "выглядят", а для этого на первых порах нужны экспортные функции
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 13.08.2016, 23:37   #92
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
лучше начинать играться на HF/GoD, тогда всё будет, а дальше уже переходить на последние хроники
так я и играюсь с хф(рпг) и такого нет. сегодня наконец окажусь дома, гляну что там в анпакеутой длл.
Smwr вне форума   Ответить с цитированием
Старый 20.08.2016, 05:51   #93
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
В либе например есть интересные методы User::AddBuff/HaveBuff/ClearBuff, в них видно, что в User хранится список (FArray) бафов (MagicSkillUniqueKey).
учитывая, что в хф этого нет, а в годе есть - скорее всего это не то что я ищу.

и вот что еще не понятно - в хф таблица методов user не экспортируется, как её можно достать?

Последний раз редактировалось Smwr, 21.08.2016 в 12:49.
Smwr вне форума   Ответить с цитированием
Старый 22.08.2016, 10:43   #94
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
учитывая, что в хф этого нет, а в годе есть - скорее всего это не то что я ищу.
Да ты прав, эти методы появились только в GoD, значит нужно искать в другом месте, попробуй покопай пакет MagicEffectIcons (0х85), там где-то должен быть обработчик этого пакета, если найдешь его, то скорей всего найдешь где хранятся бафы.

Цитата:
и вот что еще не понятно - в хф таблица методов user не экспортируется, как её можно достать?
Для начала нужно найти созданный объект User, дальше просматриваешь его VMT (Virtual method table), и в Ida изучаешь, что делает каждый метод :-)
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 22.08.2016, 15:16   #95
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Чем дальше в лес.....

Цитата:
Сообщение от ScythLab Посмотреть сообщение
Для начала нужно найти созданный объект User, дальше просматриваешь его VMT (Virtual method table), и в Ida изучаешь, что делает каждый метод :-)
VMT первый член? У объекта User первый член - 0...

Цитата:
Сообщение от ScythLab Посмотреть сообщение
попробуй покопай пакет MagicEffectIcons (0х85), там где-то должен быть обработчик этого пакета, если найдешь его, то скорей всего найдешь где хранятся бафы.
За наводку спасибо, как то пропустил этот пакет, но... где таблица обработчиков, какой объект обрабатывает? UNH?
Там же, если я всё правильно понимаю, порядок вызовов такой: DispatchNetworkQueue->ТотСамыйОбработчик->UGameEngine::OnXXX?
Взял для примера OnUserInfo, то ли Идой пользоваться не умею, то ли в упор не вижу, откуда она вызывается.

Всё таки, вроде нашёл обработчик. Имя правда немного другое.
Код:
.text:203EF5B0 sub_203EF5B0    proc near               ; DATA XREF: sub_20479CD0+CC3o
.text:203EF5B0
.text:203EF5B0 var_44          = byte ptr -44h
.text:203EF5B0 var_24          = dword ptr -24h
.text:203EF5B0 var_20          = dword ptr -20h
.text:203EF5B0 var_1C          = dword ptr -1Ch
.text:203EF5B0 var_18          = dword ptr -18h
.text:203EF5B0 var_14          = dword ptr -14h
.text:203EF5B0 var_10          = dword ptr -10h
.text:203EF5B0 var_C           = dword ptr -0Ch
.text:203EF5B0 var_4           = dword ptr -4
.text:203EF5B0 arg_0           = dword ptr  8
.text:203EF5B0 arg_4           = dword ptr  0Ch
.text:203EF5B0
.text:203EF5B0                 push    ebp
.text:203EF5B1                 mov     ebp, esp
.text:203EF5B3                 push    0FFFFFFFFh
.text:203EF5B5                 push    offset SEH_203EF5B0
.text:203EF5BA                 mov     eax, large fs:0
.text:203EF5C0                 push    eax
.text:203EF5C1                 mov     large fs:0, esp
.text:203EF5C8                 sub     esp, 38h
.text:203EF5CB                 push    ebx
.text:203EF5CC                 push    esi
.text:203EF5CD                 push    edi
.text:203EF5CE                 mov     [ebp+var_10], esp
.text:203EF5D1                 xor     ebx, ebx
.text:203EF5D3                 mov     [ebp+var_4], ebx
.text:203EF5D6                 mov     [ebp+var_14], ebx
.text:203EF5D9                 mov     ecx, ?GL2Console@@3PAVUL2ConsoleWnd@@A ; UL2ConsoleWnd * GL2Console
.text:203EF5DF                 mov     eax, [ecx]
.text:203EF5E1                 mov     edx, [eax+31Ch]
.text:203EF5E7                 call    edx
.text:203EF5E9                 lea     eax, [ebp+var_14]
.text:203EF5EC                 push    eax
.text:203EF5ED                 push    offset asc_205098C8 ; "h"
.text:203EF5F2                 mov     ecx, [ebp+arg_0]
.text:203EF5F5                 mov     edx, [ecx+48h]
.text:203EF5F8                 push    edx
.text:203EF5F9                 mov     eax, [ebp+arg_4]
.text:203EF5FC                 call    sub_203D9BA0
.text:203EF601                 add     esp, 0Ch
.text:203EF604                 mov     edi, eax
.text:203EF606                 movsx   eax, word ptr [ebp+var_14]
.text:203EF60A                 lea     eax, [eax+eax*2+1]
.text:203EF60E                 push    eax
.text:203EF60F                 lea     ecx, [ebp+var_44]
.text:203EF612                 call    ??0L2ParamStack@@QAE@H@Z ; L2ParamStack::L2ParamStack(int)
.text:203EF618                 mov     byte ptr [ebp+var_4], 1
.text:203EF61C                 movsx   eax, word ptr [ebp+var_14]
.text:203EF620                 cdq
.text:203EF621                 push    edx
.text:203EF622                 push    eax
.text:203EF623                 lea     ecx, [ebp+var_44]
.text:203EF626                 mov     esi, ?PushBack@L2ParamStack@@QAEH_J@Z ; L2ParamStack::PushBack(__int64)
.text:203EF62C                 call    esi ; L2ParamStack::PushBack(__int64)
.text:203EF62E                 mov     [ebp+var_18], ebx
.text:203EF631
.text:203EF631 loc_203EF631:                           ; CODE XREF: sub_203EF5B0+DDj
.text:203EF631                 movsx   ecx, word ptr [ebp+var_14]
.text:203EF635                 cmp     [ebp+var_18], ecx
.text:203EF638                 jge     short loc_203EF68F
.text:203EF63A                 mov     [ebp+var_1C], ebx
.text:203EF63D                 mov     [ebp+var_20], ebx
.text:203EF640                 mov     [ebp+var_24], ebx
.text:203EF643                 lea     edx, [ebp+var_24]
.text:203EF646                 push    edx
.text:203EF647                 lea     eax, [ebp+var_20]
.text:203EF64A                 push    eax
.text:203EF64B                 lea     ecx, [ebp+var_1C]
.text:203EF64E                 push    ecx
.text:203EF64F                 push    offset aDhd     ; "dhd"
.text:203EF654                 mov     edx, [ebp+arg_0]
.text:203EF657                 mov     eax, [edx+48h]
.text:203EF65A                 push    eax
.text:203EF65B                 mov     eax, edi
.text:203EF65D                 call    sub_203D9BA0
.text:203EF662                 add     esp, 14h
.text:203EF665                 mov     edi, eax
.text:203EF667                 mov     eax, [ebp+var_1C]
.text:203EF66A                 cdq
.text:203EF66B                 push    edx
.text:203EF66C                 push    eax
.text:203EF66D                 lea     ecx, [ebp+var_44]
.text:203EF670                 call    esi ; L2ParamStack::PushBack(__int64)
.text:203EF672                 movsx   eax, word ptr [ebp+var_20]
.text:203EF676                 cdq
.text:203EF677                 push    edx
.text:203EF678                 push    eax
.text:203EF679                 lea     ecx, [ebp+var_44]
.text:203EF67C                 call    esi ; L2ParamStack::PushBack(__int64)
.text:203EF67E                 mov     eax, [ebp+var_24]
.text:203EF681                 cdq
.text:203EF682                 push    edx
.text:203EF683                 push    eax
.text:203EF684                 lea     ecx, [ebp+var_44]
.text:203EF687                 call    esi ; L2ParamStack::PushBack(__int64)
.text:203EF689                 add     [ebp+var_18], 1
.text:203EF68D                 jmp     short loc_203EF631
.text:203EF68F ; ---------------------------------------------------------------------------
.text:203EF68F
.text:203EF68F loc_203EF68F:                           ; CODE XREF: sub_203EF5B0+88j
.text:203EF68F                 mov     ecx, ?GL2Console@@3PAVUL2ConsoleWnd@@A ; UL2ConsoleWnd * GL2Console
.text:203EF695                 mov     edx, [ecx]
.text:203EF697                 lea     eax, [ebp+var_44]
.text:203EF69A                 push    eax
.text:203EF69B                 mov     edx, [edx+320h]
.text:203EF6A1                 call    edx
.text:203EF6A3                 movsx   eax, word ptr [ebp+var_14]
.text:203EF6A7                 push    eax
.text:203EF6A8                 push    offset aReceiveAbnorma ; "(Receive)AbnormalStatusUpdatePacket : %"...
.text:203EF6AD                 mov     ecx, ?GNetworkLog@@3PAVFOutputDevice@@A ; FOutputDevice * GNetworkLog
.text:203EF6B3                 mov     edx, [ecx]
.text:203EF6B5                 push    edx
.text:203EF6B6                 call    ?Logf@FOutputDevice@@QAAXPB_WZZ ; FOutputDevice::Logf(wchar_t const *,...)
.text:203EF6BC                 add     esp, 0Ch
.text:203EF6BF                 mov     byte ptr [ebp+var_4], bl
.text:203EF6C2                 lea     ecx, [ebp+var_44]
.text:203EF6C5                 call    ??1L2ParamStack@@QAE@XZ ; L2ParamStack::~L2ParamStack(void)
.text:203EF6CB                 xor     al, al
.text:203EF6CD                 mov     ecx, [ebp+var_C]
.text:203EF6D0                 mov     large fs:0, ecx
.text:203EF6D7                 pop     edi
.text:203EF6D8                 pop     esi
.text:203EF6D9                 pop     ebx
.text:203EF6DA                 mov     esp, ebp
.text:203EF6DC                 pop     ebp
.text:203EF6DD                 retn
.text:203EF6DD sub_203EF5B0    endp

Что в нём происходит непонятно, особенно
Код:
.text:203EF68F                 mov     ecx, ?GL2Console@@3PAVUL2ConsoleWnd@@A ; UL2ConsoleWnd * GL2Console
.text:203EF695                 mov     edx, [ecx]
.text:203EF697                 lea     eax, [ebp+var_44]
.text:203EF69A                 push    eax
.text:203EF69B                 mov     edx, [edx+320h]
.text:203EF6A1                 call    edx
По идее, где то внутри, должен быть вызов APawn::UpdateAbnormalState(APawn *this, float), потому что ничего похожего со словом Abnormal больше нету, но либо чего то неэкспортируемого или вообще хз, этот call edx меня вводит в ступор.

Хотя, внутри UpdateAbnormalState тоже ничего хорошего - там вроде как оперируются видимые эффекты, так что это либо всё таки обработчик не тот (ну есть однозначный ShortBuffStatusUpdate, но хз используется ли он или, и там тоже call edx ведущий не понятно куда), либо хз.

Последний раз редактировалось Smwr, 22.08.2016 в 17:00.
Smwr вне форума   Ответить с цитированием
Старый 22.08.2016, 17:10   #96
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

DispatchNetworkQueue просматривает список доступных пакетов, дальше по Id пакета из специального массива со ссылками на обработчики (UGameEngine::OnXXX) вызывает нужный метод. У меня такое ощущение, что обработкой 0х85 пакета занимается не экспортируемый обработчик.


Цитата:
Код:
.text:203EF69B                 mov     edx, [edx+320h]
.text:203EF6A1                 call    edx
Обычно таким образом вызываются функции из VMT, т.е. в Ida ты нигде не увидишь прямой вызов на интересующую тебя экспортируемую функцию.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от:
Старый 22.08.2016, 18:06   #97
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от ScythLab Посмотреть сообщение
DispatchNetworkQueue просматривает список доступных пакетов, дальше по Id пакета из специального массива со ссылками на обработчики (UGameEngine::OnXXX) вызывает нужный метод. У меня такое ощущение, что обработкой 0х85 пакета занимается не экспортируемый обработчик.
Перед Onxxx пакет должен быть дизасемблированн, ведь в Onxxx параметры передаются уже в виде сформированного ParamStack и т.п.
По идее, там ведь где то должен быть какой нибудь switch-case, в котором по id вызывается соответствующая функция-дизасемблер? Как бы найти, где происходит обработка id?
Других вариантов попасть в нее не вижу, тк таблицу методов обработчиков UGameEngine и методов предварительно разбирающих пакет я и подавно без понятия где брать.

Запустил таки клиент под ольгой на w7, пока немного осваиваюсь, позже попробую повешать брейкпоинтов.
Smwr вне форума   Ответить с цитированием
Старый 22.08.2016, 19:01   #98
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

UNetworkHandler::Tick в цикле вызывает DispatchNetworkQueue, полученный пакет с помощью FL2ReplayManager::AddPacketData преобразовывается в L2ParamStack, потом идет вызов OnXxx.

PS. Это справедливо для стандартного клиента, если имеется защита, то может быть дополнительный функционал по шифрованию/подмене данных, вплоть до того, что AddNetworkQueue и DispatchNetworkQueue вообще не используются.
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
Старый 22.08.2016, 22:09   #99
Местный
 
Аватар для Yegor
 
Регистрация: 05.04.2009
Сообщений: 1,436
Сказал Спасибо: 306
Имеет 122 спасибок в 98 сообщенях
Yegor пока неопределено
По умолчанию

Цитата:
Сообщение от Smwr Посмотреть сообщение
Запустил таки клиент под ольгой на w7

Поделитесь пожалуйста рецептом.
__________________
Продажа чистых аккаунтов 4G, L2 EU, AARu, AA EU, Aion EU, Tera RU, Tera EU (ICQ 594297609)
Продажа VK авторег аккаунтов (ICQ 594297609)
Yegor вне форума   Ответить с цитированием
Старый 23.08.2016, 12:20   #100
Пользователь
 
Регистрация: 14.07.2016
Сообщений: 59
Сказал Спасибо: 6
Имеет 10 спасибок в 9 сообщенях
Smwr на пути к лучшему
По умолчанию

Цитата:
Сообщение от Yegor Посмотреть сообщение
Поделитесь пожалуйста рецептом.
сборка odbg110 9in1 for Themida + phantom (http://prntscr.com/c9992s).
я не аттачусь, а запускаю л2 из ольги(додумался так сделать только когда дошёл до этой сборки, поэтому она может быть и не принципиальна и сойдет обычная).
Smwr вне форума   Ответить с цитированием
За это сообщение Smwr нажился спасибкой от:
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


Часовой пояс GMT +4, время: 03:07.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!