Вопрос № 38981: Почему послу выполнения этого кода:
jmp dword ptr cs:[Off_move]
в программе которая изложена ниже, мы переходим не сегмент 0BF00h
.286
cseg SEGMENT
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h
Begin:
jmp ...
Вопрос № 38.981
Почему послу выполнения этого кода:
jmp dword ptr cs:[Off_move]
в программе которая изложена ниже, мы переходим не сегмент 0BF00h
Отправлен: 30.03.2006, 17:26
Вопрос задал: Platon (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 4)
Отвечает: Лысков Игорь Витальевич
Здравствуйте, Platon!
Так команда jmp dword ptr cs:[Off_move] и делает косвенный межсегментный
переход на адрес, хранимый по адресу cs:[Off_move], причем смещение
хранится по указанному адресу, а сегмент по адресу cs:[Off_move+2]
PS Обрати внимание на "словечко" dword после jmp-а
--------- Удачи!
Ответ отправил: Лысков Игорь Витальевич (статус: Студент)
Ответ отправлен: 30.03.2006, 17:57
Отвечает: Пан Павел Константинович
Здравствуйте, Platon!
Как поживаете?
> В программе которая изложена ниже, мы переходим не сегмент 0BF00h
>> Этот вопрос я понел двояко т.е.
1. Почему мы переходим не на сегмент 0BF00h?
2. Почему мы переходим на сегмент 0BF00h?
Ответ к первому вопросу:
Я пропустил вашу программу через отладчик и у меня всё работало нормально т.е.
был переход на сегмент 0BF00h после выполнения команды jmp dword ptr cs:[Off_move].
Ответ к второму вопросу:
сегмент 0BF00h - это сегмент седьмой страницы дисплея, туда происходит как я понимаю копирование тела вируса, почему? Этим сегментом практически не пользуются программы, следовательно мы не затрём код какой-нибудь программы.
С, Уважением MnEm0n!C.
--------- Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 4-ый класс)
Ответ отправлен: 31.03.2006, 19:38 Оценка за ответ: 5