РЕЦЕНЗИИ
Бурдаев О. В., Иванов М. А., Тетерин И. И. Ассемблер в задачах защиты информации. М.: Кудиц-образ, 2004. - 544 с.
Языки высокого уровня сейчас применяются при создании практически любых программ, включая написание ядер ОС и криптографических систем. Однако некоторые задачи зачастую эффективнее и, как ни странно для многих это звучит, проще реализуются на ассемблере. Кроме того, в ряде случаев, таких, как взлом программ и защита от взлома, ассемблеру просто нет реальной альтернативы.
Рецензируемая книга, судя по названию, призвана стать учебником по использованию ассемблера для обеспечения безопасности. Она состоит из шести глав.
Первая посвящена программированию на ассемблере в среде MS-DOS. Авторы кратко описывают архитектуру микропроцессора 8086, важнейшие прерывания DOS, создание резидентных программ и т. п.
Вторая глава носит прежде всего теоретический характер: здесь разбираются различные алгоритмы защиты информации, включая CRC-коды и системы шифрования RC4, AES, GATE, а также обсуждаются смежные темы, например способы генерации псевдослучайных чисел.
В третьей главе авторы касаются сразу двух тем: способов противодействия анализу алгоритмов работы программ (в частности, с целью взлома защиты) и методов создания вирусов и антивирусов.
Четвертая и пятая главы посвящены программированию на ассемблере в ОС Linux и Windows соответственно.
В последней, шестой главе речь идет о низкоуровневой оптимизации программ для микропроцессоров Pentium и более поздних.
В пяти приложениях содержатся исходные тексты нескольких больших примеров программ.
Несмотря на значительное количество полезной информации, назвать эту публикацию удачной я не решусь. И вот почему: авторы так и не смогли определиться, что же, собственно говоря, они хотят поведать читателю. Скажем, материал первой главы (без малого сто страниц!) не может использоваться ни как учебник по программированию на ассемблере, поскольку он слишком сжат, ни как справочник: сейчас почти все программы пишутся под Windows или Linux, но никак не под DOS. Кроме того, целесообразность самого наличия подобной главы в книге о защите информации вызывает большие сомнения: ведь обеспечение безопасности - задача явно не для новичков, а профессионалы этим материалом уже владеют.
Вторая глава имеет самое прямое отношение к защите информации (это и контроль целостности данных, и их шифрование), однако собственно к ассемблеру - никакого. Представленные алгоритмы с успехом могут быть реализованы на любом языке программирования. Тем не менее полезность этой главы сомнений не вызывает.
Совершенно по теме написана третья глава, но она весьма поверхностна (что неудивительно: ее объем меньше 50 страниц) и представляет интерес почти исключительно для новичка в этой области. Между тем именно в области взлома программ и защиты от такового, а также при создании вирусов ассемблеру равных нет и быть не может.
Две следующие главы, как и первая, слишком сжаты, чтобы служить учебником для начинающих, и слишком поверхностны, чтобы представлять значительный интерес для профессионалов.
Наконец, шестая глава может весьма заинтересовать читателя, знакомого с ассемблером и стремящегося добиться максимальной эффективности своих программ. Однако оптимизация - это тема для совершенно отдельного разговора, не имеющего прямого отношения к вопросам безопасности.
С моей точки зрения, книга может быть полезна тем, кто уже освоил первоначальные навыки программирования на ассемблере, а дальше либо желает разобраться с основными алгоритмами проверки целостности данных и их шифрования, либо хочет понять, как добиться от процессора максимальной производительности.