Информационная безопасность

       

Бесполезный Perl и общая теория улучшения мира


Арсений Чеботарев,

Как-то недавно покупал я на Петровке книжку по Perl, и один пипл спросил, как может сейчас пригодиться perl здравомыслящему человеку. Насчет здравомыслящих не знаю, а кое-кому пригодится - и даже очень…

Расскажу вам историю о том, как использовать старый как мир perl для такой же извечной задачи - реверса исходного кода.

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

Зачем это может быть нужно? Зачем ломать код? Первый (и никогда не соответствующий действительности) мотив - исправление ошибок в неправильно работающих программах. Обычно единственной исправляемой "ошибкой" оказывается требование ввести серийный номер - ну, или что-то в этом роде.

Вторая, более реальная причина - желание вскрыть механизм вредоносного кода (типа вируса или троянского коня), дабы впоследствии построить против него защиту. Вариация: вы вскрываете код трояна с целью проследить, куда и что он отправляет, и получить таким образом возможность либо вычислить пимпера, либо, по крайней мере, "пропатчить" его трафик. Смешная ситуация: удаленный хакер троянит ваш комп - и вместо списка файлов видит ваш портрет в ASCII-графике :-).

Третий мотив - уже совсем реальный - это собственно "evaluation purposes". Постоянное созерцание кода, ковыряние во всяком бинарном хламе - от ассемблера до псевдокода Java - сделает из вас законченного Code Warriora'а и, помимо прочего, поможет писать быстрые, надежные и безопасные программы.



Содержание раздела