Сейчас на форуме: (+6 невидимых) |
![]() |
eXeL@B —› Вопросы новичков —› Не могу понять,как образуется адрес функции. |
Посл.ответ | Сообщение |
|
Создано: 14 августа 2010 03:44 · Личное сообщение · #1 Утро доброе.Наткнулся на интересную статью,как оказалось,очень старую,но актуальную - http_://www.codenet.ru/progr/asm/overflow.php И вот такой кусочек текста: ---------------------------------------------------------------------- ---------------------------------------------------------------------- - Import Directory from "KERNEL32.DLL": name table at 0xf03c, address table at 0xf0e0 // Что за листинг такой ?! hint name ---- ---- 0 CloseHandle 0 CreateFileA 0 ExitProcess ... Так как Image Base у нашей программы - 0x400000, то адрес для вызова ExitProcess равен 0x400000 + 0xf0e0 + 8 = 0x40f0e8. Значит используем инструкцию CALL [40f0e8h]. C помощью ассемблера узнаём, что она компилируется в последовательность байтов 0xff 0x15 0xe8 0xf0 0x40 0x00. Значит переписываем функцию main следующим образом ---------------------------------------------------------------------- --------------------------------------------------------------------- Работали с программой PEBrowser.Скачал её с wasm-a,иду в imports -> KERNEL32.DLL -> ExitProcess - Выдается какой-то референс на 0х40118Е.В итоге,так и не понял,каким образом они достали эти два числа после имейдж бейз(какое-то имя таблицы и,как я понял,её же и адрес после имени... Программы в Интернете можно приобрести только по платной основе,крякнутых версий не найти,а так либо смс отправляй,либо малварь приобретай. Из отладчиков использую Олю. P.S. : И как скомпилировать потом функциб в ассемблере/отладчике в последовательность этих байт ? (Сам процесс был явно опущен). ![]() |
|
Создано: 18 августа 2010 17:00 · Поправил: Crawler · Личное сообщение · #2 Про переполнение стека в 9х давно неактуально ![]() Почитай, как осуществляется вызов функции. Таблица имен, таблица адресов, а не "имя таблицы, ее же адрес". Там же не "name OF table", a "name table" написано ![]() CALL [40f0e8h] - что тут непонятного? взяли и прибавили смещение к имэдж бэйс, а потом вызвали функцию по указателю, который в памяти. "Как скомпилировать функцию в последовательность этих байт" А это что? Code:
----- Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей. ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Не могу понять,как образуется адрес функции. |