-
Notifications
You must be signed in to change notification settings - Fork 1
gnull/buffer-overflow
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
## Не забыть отключить randomize_va_space ## 1. Ассемблер x86, AT&T - Основные команды, порядок операндов: mov, lea, jmp add, sub, xor, and, or, not... - Регистры: %eax, %ebx, %ecx, %edx %esp, %ebp %eip - Адресация: mov $123, %eax mov %ebx, %ecx mov 123, %eax mov 4(%eax), %ebx - Суффиксы b,w,l - Стек в линукс выровен по long(4 байта на x86) 2. Системный вызов в Линукс [./syscall/] - Передача параметров и возвращаемое значение - int $0x80 - Показать пример 3. Соглашение о вызове cdecl - Аргументы кладутся в стек в обратном порядке - Результат возвращается в %eax(если результат целый и не больше 4-х байт) - Стек очищает вызывающая функция 4. Стек, кадр стека. - Назначение регистра %ebp - Команды push, pop, call, leave, ret 5. Пример стека [./stack_frame/] - Показать исходник и вывод objdump - Разобрать по шагам как изменяются значения регистров и стек 6. Переполнения буффера [./overflow/] - Рассказать как переполнение может повлиять на ход выполнения программы - Рассказать, что такое shellcode - Показать шеллкод для hello world! [./overflow/shellcode-hello/] - Показать в дебаггере переполнение и выполнение шеллкода
About
A Tutorial on Buffer Overflows
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published