|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Дек 17, 2003 23:12:11 Здрав будьте!!! Короче в аттаче исходник виря и вот как я его понимаю: в начале допустим было cs:100h, допустим cs=1245h. В 100h модифицируем под переход на вирус, но первым же делом восстанавливаем три байта исходного кода. Далее мы корректируем ds, на величину add_to_ds. Что же происходит, если мы нашли файл с размером 401 байт, то в параграфах это 26 (с округлением и inc ax). В будущем переход на вирус для данного фай- ла будет равен jmp 9d01, вот один из вопросов почему вместо перехода на 413 байт получается переход на, аж 40193 байт! Может размер считывается не как 191h, а в обратной последовательности 9101h? Это про смещение, а вот про коррекцию. Если судить по следующему коду: mov byte ptr add_to_ds,al ;1900h mov byte ptr add_to_ds+1,ah То мы уже будем находиться не в cs=1245,а в сs= 1245+ +1900=3145h. На кой икс на менять cs, вместо того, что- бы остаться в адресе 1245: последий байт файла? Итак. Повторюсь главный вопрос это: зачем менять зна- чение cs и не продалжать оставаться в прежнем прыгая на конец файла и как лежит размер в DTA в обратной или нормальной последовательности? 56150131__vandal.ASM |