Вопросы по теме 'buffer-overflow'

Как предотвратить Scanf, вызывающий переполнение буфера в C?
Я использую этот код: while ( scanf("%s", buf) == 1 ){ Как лучше всего предотвратить возможное переполнение буфера, чтобы можно было передавать строки произвольной длины? Я знаю, что могу ограничить строку ввода, например, позвонив:...
107454 просмотров
schedule 24.12.2022

Адрес возврата переполнения буфера имеет значение 00
Я просто пытался заставить переполнение буфера работать на OSX (10.6) в следующей программе; Мне нужно заставить foo выполняться, переполняя буфер. #include <string.h> #include <stdio.h> void foo() { printf("hacked!"); } int...
3882 просмотров
schedule 28.08.2022

Использование Ruby для фаззинга FTP-сервера
Эй, я новичок в Ruby и пытаюсь учиться, портируя некоторые проги с одного языка на другой. Прямо сейчас я работаю над фаззером FTP на Ruby, который отражает этот perl-скрипт: use Net::FTP; $target = "192.168.37.128"; $buffer = "A\x20"; $buffer .=...
1326 просмотров
schedule 17.09.2022

Направление стека и переполнение буфера
В чем заключается смысл записи переменных стека в восходящем стеке в нисходящем стеке? Например, если у меня есть char buf [200], скажем, по адресу памяти 0x400. Когда я пишу в этот массив, я буду писать от 0x400 до 0x600, что соответствует...
381 просмотров
schedule 12.04.2022

Вопрос с защитой от разрушения стека и переполнением буфера
Я занимаюсь исследованием переполнения буфера, и мне было интересно, как работает защита от разрушения стека. у меня есть этот код: int main( ) { char Buf[16]; printf(“Digite o seu nome: ”); gets(Buf); printf(“%s”,Buf); return...
2632 просмотров
schedule 29.03.2022

Получение SIGILL при попытке выполнить атаку переполнения буфера
Я работаю над своим проектом переполнения буфера для своего класса безопасности, я думаю, что у меня все настроено правильно, но когда я запускаю его, я получаю: Program received signal SIGILL, Illegal Instruction. 0x08048500 in main(argc=4854718,...
4277 просмотров
schedule 06.07.2023

Не удалось получить корневую оболочку при загрузке функции execl()
#include <stdio.h> #include <unistd.h> #include <string.h> int good(int addr) { printf("Address of hmm: %p\n", addr); } int hmm() { printf("Win.\n"); execl("/bin/sh", "sh", NULL); } extern char **environ; int...
1241 просмотров
schedule 20.12.2023

Почему этот адрес памяти% fs: 0x28 (fs [0x28]) имеет случайное значение?
Я написал кусок кода C, разобрал его, а также прочитал регистры, чтобы понять, как программа работает на ассемблере. int test(char *this){ char sum_buf[6]; strncpy(sum_buf,this,32); return 0; } Часть моего кода, которую я...
24202 просмотров
schedule 16.02.2024

Переполнение буфера чисел Армстронга
В настоящее время я пытаюсь создать программу, которая печатает все номера армстронга до определенного числа. Я получаю странную ошибку при попытке запустить это. Пишет переполнение буфера. Часть, вызывающая это, кажется, находится в main()....
140 просмотров
schedule 09.01.2023

Как работают сани NOP?
Я не могу найти хороший источник, который отвечает на этот вопрос. Я знаю, что nop sled — это метод, используемый для обхода рандомизации стека при атаке с переполнением буфера, но я не могу понять, как это работает. Какой простой пример...
50837 просмотров
schedule 08.02.2023

Переполнение буфера работает в gdb, но не без него
Я использую 32-разрядную версию CentOS 6.4 и пытаюсь вызвать переполнение буфера в программе. В GDB это работает. Вот результат: [root@localhost bufferoverflow]# gdb stack GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6_4.1) Copyright (C)...
45003 просмотров

Системная функция и стек
У меня есть вопрос о системном вызове Linux System() и стеке. Предположим, что у нас есть: #include <stdio.h> #include <stdlib.h> int main(int argc, char* argv[]) { char buff[] = "/usr/bin/ls" system(buff); return 0; }...
464 просмотров
schedule 16.06.2023

Разрушение стека
Итак, я работаю над заданием для класса безопасности, и задание состоит в том, чтобы использовать переполнение стека для вызова функции oopsDidISmashTheStack, которая никогда не использовалась в программе. #include <stdio.h> #include...
293 просмотров
schedule 25.03.2024

Почему eip не меняется при попытке переполнения буфера?
Я пытаюсь играть с переполнением буфера. Я не понимаю, что здесь происходит со значением eip. Вот код C: void copy(char *arg) { char msg[256]; strcpy(msg,arg); } Сборка для него: 0x804847d <copy+25>: call 0x8048368...
3711 просмотров

Не удается получить доступ к обратному адресу на x86-32
Я пытаю счастья с переполнением буфера, однако я застрял в одной точке. Я перезаписываю обратный адрес, чтобы EIP указывал на адрес nop салазок моего шеллкода. Однако при запуске ret я получаю сообщение об ошибке: Cannot access memory at...
1693 просмотров
schedule 01.09.2022

проблемы с ret2eax
У меня возникла проблема при попытке перезаписать сохраненный обратный адрес. Вот мой код: 1 #include <stdio.h> 2 #include <string.h> 3 4 void foo(char *source) 5 { 6 char buf[64]; 8 printf("buf address: %p\n",...
417 просмотров
schedule 08.07.2022

Может ли переполнение буфера стека привести к повреждению кучи?
Может ли переполнение буфера стека вызвать проблемы с повреждением кучи без переполнения адреса возврата? Если да, то можете ли вы привести пример?
438 просмотров

Не получать корневую оболочку при эксплуатации переполнения буфера
Я изучаю эксплойты переполнения буфера в двоичных файлах Linux x86. Я выполняю классическое разрушение стека, чтобы создать корневую оболочку в виртуальной машине Ubuntu 12.04, отключив ASLR и скомпилировав двоичный файл, отключив бит NX и стековые...
5080 просмотров
schedule 28.11.2022

Как взломанное приложение могло внедрить вредоносный код?
Теоретически это довольно просто, достаточно знать размер буфера или адрес памяти, по которому будет выполняться процессор, и написать инструкции для выполнения кода в конце заполненного буфера или с указанного адреса. Но когда у меня когда-либо...
85 просмотров
schedule 27.08.2022

GCC генерирует Canary или нет?
моя версия gcc — 4.8.2, а операционная система — Ubuntu 14.04 (64-разрядная версия). Я обнаружил, что иногда gcc автоматически генерирует канарейку для защиты от переполнения буфера, а иногда нет, почему? case для генерации canary: когда SIZE...
9946 просмотров