Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Ассемблер? Это просто! Учимся программировать


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Assembler (Ассемблер)

Выпуск № 1065
от 19.09.2008, 20:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 304, Экспертов: 18
В номере:Вопросов: 1, Ответов: 1

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>


Вопрос № 143922: Здравствуйте, уважаемые эксперты. Возникли некоторые теоретические вопросы по главе 13 "Поиск и считывание файлов". 1. В самом начале главы 13.1.1. автор пишет: "Как вы уже знаете, файлы типа СОМ загружаются в первый сво...

Вопрос № 143.922
Здравствуйте, уважаемые эксперты.
Возникли некоторые теоретические вопросы по главе 13 "Поиск и считывание файлов".
1. В самом начале главы 13.1.1. автор пишет:
"Как вы уже знаете, файлы типа СОМ загружаются в первый свободный сегмент, и их код располагается по смещению 100h. Следовательно, нам нужно будет сохранить в теле нашего вируса первые три байта "файла-жертвы", записать вирус в "хвост" файла и, вместо сохранённых трёх байт, установить команду jmp на начало кода нашего вируса (т.е. передать ему управление)".
Вот, ума не приложу, почему "следовательно"?, откуда такой вывод? Нет же никакой взаимосвязи между "следовательно" и "кодом, располагающимся по смещению 100h". И почему нужно обязательно сохранять именно три байта, с чем именно это связано? Может, есть, конечно, такое правило, что нужно сохранять только 3 байта и ни байтом больше, но до 13 главы я о нём ничего у автора не чит ал.
2. В главе 13.1.2. автор, объясняя PSP и DTA, пишет:
"По адресу 80h находится по умолчанию DTA. ... проблема в том, что по этому адресу (80h) располагается изначально командная строка. ... Дело в том, что когда мы попробуем искать первый файл, то затрём командную строку (L_C:/S/U). Получается что "программа-жертва", к которой мы "подцепились", не сможет прочитать те параметры, которые ей передал пользователь. В данном случае - это (L_/S/U ".
Не понимаю, как мы затрём DTA "программы-жертвы", у ней же свой PSP, а у нашего вируса другой. Мы же хотим прицепиться в "хвост" "программы-жертвы", т.е. после её PSP и областей кода и данных. Как я представляю себе, сначала идёт PSP "программы-жертвы" (100h), затем сама собственно "программа-жертва" (код и данные), пусть их размер будет, например, 90h. Тогда общий размер "программы-жертвы" будет равен 100h (PSP)+90h (код и данны е)=190h. Значит, если мы цепляемся в "хвост" "программы-жертвы", то наш вирус начнётся со 191h. Причём со 191h начнётся наш PSP, отличный от PSP "программы-жертвы". Таким образом, с 191h до 290h будет находится PSP нашего вируса, а уже после 290h начнутся код и данные нашего вируса. Так как же при таком раскладе, если он, конечно, правильный, мы затрём DTA?!
Отправлен: 14.09.2008, 19:41
Вопрос задал: Aistesis (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Zetasm
Здравствуйте, Aistesis!

1. 3 байта - это размер памяти занимемой командой jmp, котурую вирус запишет по смещению 100h(в файле это первые 3 первых байта).

2. У программы может быть только один PSP. Внедренный в программу вирус не имеет своего PSP.

0000h - 00FFh : PSP программы жертвы
0100h - 0102h : jmp <начало кода вируса>
0103h - xxxxh : тело программы жертвы (xxxx = размер файла com - 1)
xxxxh - yyyyh : тело вируса (код + данные + 3 сохраненных байта зараженной программы)

Приложение:

Ответ отправил: Zetasm (статус: 2-ой класс)
Ответ отправлен: 14.09.2008, 20:12
Оценка за ответ: 4


Вы имеете возможность оценить этот выпуск рассылки.
Нам очень важно Ваше мнение!
Оценить этот выпуск рассылки >>

Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2008, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале

∙ Версия системы: 5.3 RC 2 от 09.09.2008

Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное