Каждый программист по сути своей – хакер. Ведь первоначально хакингом называли поиск искусного и неочевидного решения. Понимание принципов программирования помогает находить уязвимости, а навыки обнаружения уязвимостей помогают создавать программы, поэтому многие хакеры занимаются тем и другим одновременно. Интересные нестандартные ходы есть как в техниках написания элегантных программ, так и в техниках поиска слабых мест. С чего начать? Чтобы перезаписывать память с помощью переполнения буфера, получать доступ к удаленному серверу и перехватывать соединения вам предстоит программировать на Си и ассемблере, использовать шелл-код и регистры процессора, познакомиться с сетевыми взаимодействиями и шифрованием и многое другое. Как бы мы ни хотели верить в чудо, программное обеспечение и компьютерные сети, от которых зависит наша повседневная жизнь, обладают уязвимостями. Мир без хакеров – это мир без любопытства и новаторских решений. ( Джон Эриксон )
Хакинг – это искусство творческого решения задач, подразумевающее нестандартный подход к сложным проблемам и использование уязвимостей программ. Часто бывает трудно разобраться в методах хакинга, потому что для этого нужны широкие и глубокие знания. Автор не учит применять известные эксплойты, а объясняет их работу и внутреннюю сущность. Вначале читатель знакомится с основами программирования на C, ассемблере и языке командной оболочки, учится исследовать регистры процессора. А усвоив материал, можно приступать к хагингу – перезаписывать память с помощью переполнения буфера, получать доступ к удаленному серверу, скрывая свое присутствие, и перехватывать соединения TCP. Изучив эти методы, можно взламывать зашифрованный трафик беспроводных сетей, успешно преодолевая системы защиты и обнаружения вторжений. Книга дает полное представление о программировании, машинной архитектуре, сетевых соединениях и хакерских приемах. С этими знаниями ваши возможности ограничены только воображением. Материалы для работы с этим изданием имеются в виде загрузочного диска Ubuntu Linux, который можно скачать и использовать, не затрагивая установленную на компьютере ОС.
Это не каталог эксплойтов, а учебное пособие по основам хакинга, построенное на примерах. В нем подробно рассказано, что должен знать каждый хакер и, что важнее, о чем должен быть осведомлен каждый специалист по безопасности, чтобы принять меры, которые не позволят хакеру совершить успешную атаку. От читателя потребуется хорошая техническая подготовка и полная сосредоточенность, особенно при изучении кода примеров. Но это очень интересно и позволит многое узнать. О том, как создавать эксплойты с помощью переполнения буфера или форматных строк, как написать собственный полиморфный шеллкод в отображаемых символах, как преодолевать запрет на выполнение в стеке путем возврата в libc, как перенаправлять сетевой трафик, прятать открытые порты и перехватывать соединения TCP, как расшифровывать данные беспроводного протокола 802.11b с помощью атаки FMS. Автор смотрит на хакинг как на искусство творческого решения задач. Он опровергает распространенный негативный стереотип, ассоциируемый со словом «хакер», и ставит во главу угла дух хакинга и серьезные знания.