Вопросы по теме '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 просмотров
schedule
02.05.2023
Системная функция и стек
У меня есть вопрос о системном вызове 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 просмотров
schedule
29.05.2022
Не удается получить доступ к обратному адресу на 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 просмотров
schedule
24.03.2022
Не получать корневую оболочку при эксплуатации переполнения буфера
Я изучаю эксплойты переполнения буфера в двоичных файлах 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 просмотров
schedule
01.10.2022