완료됨
접근을 어떻게 해야할까요
// gcc -o main main.c -Wl,-z,norelro
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <unistd.h>
#include <fcntl.h>
uint64_t arr[64] = {0};
void initialize() {
setvbuf(stdin, NULL, _IONBF, 0);
setvbuf(stdout, NULL, _IONBF, 0);
for (int i = 0; i < 64; i++)
arr[i] = 1ul << i;
}
void print_menu() {
puts("1. XOR two values");
puts("2. Print one value");
printf("> ");
}
void xor() {
int32_t i, j;
printf("Enter i & j > ");
scanf("%d%d", &i, &j);
arr[i] ^= arr[j];
}
void print() {
uint32_t i;
printf("Enter i > ");
scanf("%d", &i);
printf("Value: %lx\n", arr[i]);
}
void win() {
system("/bin/sh");
}
int main() {
int option, i, j;
initialize();
while (1) {
print_menu();
scanf("%d", &option);
if (option == 1) {
xor();
} else if (option == 2) {
print();
} else {
break;
}
}
return 0;
}
xor 함수에서 OOB로 접근해보려했는데 잘 안되네요 bss여서 그런가.. 접근법좀 알려주세요..ㅠ
#pwnable
작성자 정보