У меня есть следующая функция. Исполняемый файл работает нормально. В командной строке, после того, как программа запущена, я вхожу \x0037337331
, значение B устанавливается как B: 0x31333337
Оператор C: IF не срабатывает, когда ожидается
Любые советы о том, как я бы вызвать, чтобы открыть log.txt
int play() {
int a;
int b;
char buffer[010];
a = 0x41414141;
b = 0x42424242;
if (write(STDOUT_FILENO, "For a moment, nothing happened. Then, after a second or so, nothing continued to happen.\n> ", 91) < 0) {
perror("write");
}
if (read(STDIN_FILENO, &buffer, 0xC) < 0) {
perror("read");
}
if (a == 31337) {
system(buffer);
}
else if (b == 1337) {
readfile("log.txt");
}
else {
printf("B: 0x%08x\n", b);
}
}
'char buffer [010];' - достаточно 8 символов? –
намек на то, что сказал @EdHeal, проверьте систему номеров. –
I *** Предположим, что целью упражнения является создание переполнения буфера? Вы были участником * долгого времени и задавали много вопросов, теперь я думал, что вы должны знать [как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask)? Измените свой вопрос, чтобы уточнить цель и что программа должна делать с введенными вами данными. –