Вопрос № 143592: Вопрос по рассылке Калашникова №17(запись вируса в конец файла). Код в приложении. То что строка 1 заносит в стек число 1203h понятно, но почему offset Get_IP дает 203, а не 1203 неясно......
Вопрос № 143.592
Вопрос по рассылке Калашникова №17(запись вируса в конец файла). Код в приложении. То что строка 1 заносит в стек число 1203h понятно, но почему offset Get_IP дает 203, а не 1203 неясно...
Приложение:
Отправлен: 10.09.2008, 18:25
Вопрос задал: Draft3 (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Airyashov
У меня 0. в стек число = offset Get_IP может код всей программы посмотреть.
Некоторые, возможно, скажут: "Все равно ничего не понял! Зачем мы это делаем?" Ничего страшного . Когда мы в следующем выпуске про вирус запишемся
в хвост какого-нибудь файла, вы увидите, что к чему. Сейчас просто смотрите, как мы "играем" с адресами...
Такой прием называется "дельта" смещение. При загрузке в память программа не знает по какому адресу её загрузила система, а знать ей нужно. С помощью этого метода получается текущий адрес, а уже все остальные нужные для работы программы адреса будут расчитаны относительно текущего, к примеру 20-ю байтами ниже находится начало
программы, а сотней байт выше находится её хвост.
Чтобы корректно получить нужное число, Вам нужно перед этим кодом поставить к примеру DB 1000h dup(90h); вместо какого-то файла этого размера. 90h - это код команды NOP ничего не делает, только место занимает, т.к. Вас просили представить.
Теперь представим , что мы находимся в хвосте какого-то файла, размером 1000h байт (смотрите на смещения в скобках).
Удачи!
--------- Итерация от человека, рекурсия — от Бога (Питер Дойч)
Ответ отправил: Зенченко Константин Николаевич (статус: Профессор) Украина, Киев Тел.: +380979536619 Адрес: Украина г.Киев ---- Ответ отправлен: 11.09.2008, 13:10