Измерение кинетического червя   ::   Николаенко Андрей

Страница: 80 из 102

Если исправить синтаксические ошибки и описания функций было относительно просто, то копаться в логике программы, которая может и не иметь оной – безнадежное дело. Однако Петя хорошо помнил о Кинетическом Черве, и теперь не сомневался, что это очередное испытание в его квесте.

Сначала он, ругнув сам себя, прицепил к компьютеру запасной винчестер и скопировал на него все свои файлы. Это следовало сделать еще перед первым запуском программы, ведь она вполне могла стереть весь винчестер. Потом он запустил отладчик и принялся трассировать программу с самого начала. Что она делала, оставалось абсолютно непонятным. Большая часть выполняемых ею инструкций была бессмысленной. Единственное, что Петя мог понять – сбой в работе происходил оттого, что программа производила запись в собственный сегмент кода. Такое часто бывает, если программа содержит скрытую ошибку… либо в самомодифицирующихся программах. Если это первый случай, то Пете не стоило даже надеяться отыскать ошибку, не зная хотя бы общей логики работы программы. Если же второй… то программе не позволяет модифицировать свой код операционная система. Значит, надо попробовать запустить программу в нулевом – привилегированном кольце защиты…

Уже поздно ночью Петя закончил отлаживать код оболочки нулевого кольца. Изменять исходный текст программы он не решился, да и вряд ли бы из этого вышло что-то путное. Вместо этого он сделал небольшую оболочку, в которую «заворачивалась» программа и которая брала на себя обработку всех некорректных действий с памятью.

Когда все было готово, он опять запустил программу.

|< Пред. 78 79 80 81 82 След. >|

Java книги

Контакты: [email protected]