Программирование на C++ глазами хакера




Сжатие запускаемых файлов - часть 3


Теперь, когда вы запускаете сжатую программу, сначала заработает разархи­ватор, который разожмет бинарный код программы и аккуратно поместит его в памяти компьютера. Как только этот процесс закончится, разархиватор передаст управление вашей программе.

Некоторые считают, что из-за расходов на распаковку программа будет ра­ботать медленней!!! Я бы сказал, что вы не заметите разницу. Даже если и будут какие-то потери, то они будут неощутимы (по крайней мере, на со­временных компьютерах). Это происходит потому, что архивация хорошо оптимизирована под двоичный код. И по сути дела, распаковка происходит только один раз и в дальнейшем никакого влияния на работу программы не оказывает. В результате потери в скорости из-за сжатия будут неощутимы.

Программа без сжатия перед началом выполнения все равно грузится в па­мять. В случае сжатого кода во время загрузки происходит разархивирование кода. В данном способе есть две стороны: происходят затраты времени на распаковку, но программа меньше занимает места на диске и быстрее считывается с него. Жесткий диск — одно из самых медленных звеньев персо­нального компьютера, поэтому, чем меньше надо загружать, тем быстрее программа может приступить к выполнению. Именно вследствие этого итоговая потеря в скорости запуска программы незначительная.

При нормальном программировании с использованием всех "навороченных" возможностей типа визуальности и объектного программирования код полу­чается большим, но его можно сжать специальным архиватором на 60 - 70%. А писать такой код намного легче и быстрее.

Еще одно "за" использование сжатия — заархивированный код труднее взломать, потому что не каждый Disassembler сможет прочитать упакован­ные команды. Так что помимо уменьшения размера вы получаете защиту, способную остановить большинство взломщиков. Конечно же, профессио­нала этим не отпугнешь. Но взломщик средней руки не будет мучиться со сжатым двоичным кодом.

Примечание
На компакт - диске в папке \ Demo \ Chapter 1\ Screens 1 вы можете найти файлы приведенных цветных рисунков.

 




Содержание  Назад  Вперед