Как его переполняют.
Ну например если ввести пользовательский ввод со scanf (не введя сколько символов нужно ввести) то говорят что может переполнить буфер. А как хакеры взламывают переполняя его? На языке програмирования не будет действовать компьютер же его не понимает. А что остаётся? Скопировать кракозябры перекомпилированного файла которые можно посмотреть командой cat и названием испольняемого файла?
Другие языки программирования и технологии
Вопрос к программистам про переполнение буфера.
1. Надо знать архитектуру процессора (в первую очередь, стек, вызов подпрограмм, возврат из подпрограмм) и ассемблер этого процессора.
2. Надо понимать, как в языке C/C++ (подавляющее большинство атак производится на программы, написанные на этих языках) выделяется память для переменных.
Если буфер является локальной не статической переменной, то место под него выделяется в стеке ВЫШЕ хранящегося в этом же стеке адреса возврата из подпрограммы. Потому один из простейших вариантов атаки:
1. В качестве данных передаём набор команд процессора (вредоносный код), который записывается в буфер.
2. Используя переполнение буфера, меняем записанный в стеке адрес возврата на адрес начала вредоносного кода в буфере.
3. При выходе из подпрограммы, заполнявшей буфер, происходит переход на наш вредоносный код.
2. Надо понимать, как в языке C/C++ (подавляющее большинство атак производится на программы, написанные на этих языках) выделяется память для переменных.
Если буфер является локальной не статической переменной, то место под него выделяется в стеке ВЫШЕ хранящегося в этом же стеке адреса возврата из подпрограммы. Потому один из простейших вариантов атаки:
1. В качестве данных передаём набор команд процессора (вредоносный код), который записывается в буфер.
2. Используя переполнение буфера, меняем записанный в стеке адрес возврата на адрес начала вредоносного кода в буфере.
3. При выходе из подпрограммы, заполнявшей буфер, происходит переход на наш вредоносный код.
Простенький работающий пример "атаки" и к чему может приводить переполнение буфера - на большинстве компиляторов сработает:
https://www.ideone.com/ZeTpe4
Здесь то-же самое, но удобнее поиграть:
https://onlinegdb.com/B1sv8fflD
Введите первым шагом логин-пароль:
petya 012345ABCDEFG
вторым:
ABCDEF G
Казалось бы вполне обычный код - проверяем юзера и пароль в "таблице" логинов и паролей, даём 3 попытки. Однако из-за переполнения - мы 1ым шагом убиваем следующую за нами пару логин-пароль, а вторым шагом его уже и вводим и получаем "доступ". Не зная изначального верного логина и пароля (vasya и pup)
И это не ошибка алгоритма и вызова сравнений - там всё в порядке, а ошибка именно из-за переполнения. В этом легко убедиться вводя значения меньше 6 символов.
ЗЫЖ Да там вместо %d лучше-бы %ld использовать, но не суть.
Кст. на одной из олимпиад по программированию в школе была очень похожая плюха в предоставляемом коде. Надо было найти одну уязвимость, а по факту их было две.

https://www.ideone.com/ZeTpe4
Здесь то-же самое, но удобнее поиграть:
https://onlinegdb.com/B1sv8fflD
Введите первым шагом логин-пароль:
petya 012345ABCDEFG
вторым:
ABCDEF G
Казалось бы вполне обычный код - проверяем юзера и пароль в "таблице" логинов и паролей, даём 3 попытки. Однако из-за переполнения - мы 1ым шагом убиваем следующую за нами пару логин-пароль, а вторым шагом его уже и вводим и получаем "доступ". Не зная изначального верного логина и пароля (vasya и pup)
И это не ошибка алгоритма и вызова сравнений - там всё в порядке, а ошибка именно из-за переполнения. В этом легко убедиться вводя значения меньше 6 символов.
ЗЫЖ Да там вместо %d лучше-бы %ld использовать, но не суть.
Кст. на одной из олимпиад по программированию в школе была очень похожая плюха в предоставляемом коде. Надо было найти одну уязвимость, а по факту их было две.

Нет
Похожие вопросы
- Вопрос к программистам...
- !! Вопрос для программистов (Нужен совет)
- Вопрос к программистам :)
- ПОСЛЕДНИЙ ВОПРОС ДЛЯ ПРОГРАММИСТОВ :) {не пугайтесь объёма мини статьи для новичков эта мини ст будет полезна}
- Вопрос исключительно программистам!
- Вопрос к "программистам" со стажем, жалеете ли вы что выбрали проффесию программист?
- Вопрос для программистов!
- Вопросы к программистом
- Вопрос к программистам, подскажите номер специальности..
- Вопрос ХОРОШИМ программистам !!!
Сможешь подсказать книги по этому хотелось бы узнать про это.