2. Что такое программирование, взлом и зачем изучать эти темы
Какие языки программирования полезны для взлома?
Поскольку программирование имеет важное значение для взлома, и хакер - это тот, кто нарушает протокол или безопасность приложения, который запрограммирован на определенном языке программирования и взломает приложение. Хакеру необходимо понять логику этого приложения, найти недостаток и использовать его. Поэтому хакер должен изучить пару языков программирования, чтобы выполнить свою задачу. Поэтому рассмотрим важные языки программирования для хакеров и где их применять. Существует множество компьютерных языков, но для хакерства требуется мало, так как в большинстве случаев это зависит от цели...
Простейший пример атаки через переполнение буфера
Посмотрим на конкретном примере, как работает взлом программы через так называемое "переполнение буфера". Возьмём простейшую программу на Си, которая запрашивает у пользователя пароль и выполняет те или иные действия в зависимости от того, правильный ли пароль был введён: Компилируем и проверяем, что программа работает корректно: Итак, наш crackme выдаёт сообщение "Access allowed" только в случае, если был указан суперсекретный пароль Qwerty123. Но что будет, если введённая строка окажется слишком длинной? Вот те раз! Программа вылетела с ошибкой "stack smashing detected"...