![]() |
eXeL@B —› Вопросы новичков —› Не понятный вызов функции Dll |
Посл.ответ | Сообщение |
|
Создано: 09 августа 2009 10:11 · Личное сообщение · #1 Есть exe файл, в нем динамически подгружается длл, следующий код вызывает функции из этой длл: CODE:008C8797 mov eax, [ebp+var_4] CODE:008C879A mov eax, [eax+4] CODE:008C879D push eax CODE:008C879E mov eax, [eax] CODE:008C87A0 call dword ptr [eax+70h] но вот дело в том, что в длл всего 5 функций, которые экспортируются(смотрел IDA и dllExp), а call dword ptr [eax+70h] указывает никак не начало одной из этих 5-ти фукнций: Group_List.dll:01C2DB52 add dword ptr [esp+4], 0FFFFFF34h Group_List.dll:01C2DB5A jmp loc_1C3682C .... .... Group_List.dll:01C3682C loc_1C3682C: ; CODE XREF: Group_List.dll:01C2DB5Aj Group_List.dll:01C3682C push ebp Group_List.dll:01C3682D mov ebp, esp Group_List.dll:01C3682F add esp, 0FFFFFFECh Group_List.dll:01C36832 push ebx Group_List.dll:01C36833 push esi Group_List.dll:01C36834 push edi Group_List.dll:01C36835 xor eax, eax Group_List.dll:01C36837 mov [ebp-14h], eax Как такое может быть или я что-то недопонимаю? Это так компилятор заоптимизировал или защита такая? ![]() |
|
Создано: 09 августа 2009 10:52 · Поправил: Neo32 · Личное сообщение · #2 |
|
Создано: 09 августа 2009 12:12 · Поправил: AVladislav · Личное сообщение · #3 |
|
Создано: 09 августа 2009 13:04 · Поправил: Neo32 · Личное сообщение · #4 |
|
Создано: 12 августа 2009 13:05 · Поправил: Crawler · Личное сообщение · #5 AVladislav Если тебе известен базовый адрес загрузки длл, а также известны смещения всех функций (предположим, я не знаю, какие именно длл используются), то отсюда вытекает, что ты можешь посчитать адрес функции в памяти. Что же мешает вызывать эти функции? Я тебе могу вызвать функцию из длл так, что ты никогда не догадаешься, что же и как именно я вызвал. Я могу, например, вообще украсть часть данных из функции и переместить в exe, исполнить эту часть непосредственно в загрузочном файле, а потом уже передать управление куда-нибудь в середину функции (это stolen bytes называется). Можно вообще вызывать функции из длл по хэшу от имени. Это не оптимизация. ----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. ![]() |
|
Создано: 12 августа 2009 14:58 · Личное сообщение · #6 |
![]() |
eXeL@B —› Вопросы новичков —› Не понятный вызов функции Dll |