shellcode(2)
-
Offset 풀이
원래 다른 오버플로우 문제들은 다 실행파일을 줬는데 이 문제는 공유 라이브러리 형식으로 된 문제를 주네요? 우선 분석부터 해보겠습니다. v5에 main함수 인자 개수를 대입합니다. 그리고 문자열 하나를 출력 후 gest로 char형 배열 s를 입력받습니다. 그리고 select_func라는 함수에 s의 주소 값을 인자로 넣어 호출합니다. select_func() 함수는 무슨 기능의 함수인지 IDA로 보겠습니다. 함수 포인터인 v3를 선언하고, two로 초기화 해줍니다. 그리고 dest에 우리가 입력한 문자열을 담은 s를 0x1F(10진수로 31)만큼 복사해줍니다. dest가 "one"이면 v3를 one으로 바꿉니다. 그리고 v3() 함수를 호출해서 v3의 리턴 값을 리턴합니다. 이 함수가 끝인 줄 알고 I..
2021.07.14 -
basic_exploitation_000 풀이
#include #include #include #include void alarm_handler() { puts("TIME OUT"); exit(-1); } void initialize() { setvbuf(stdin, NULL, _IONBF, 0); setvbuf(stdout, NULL, _IONBF, 0); signal(SIGALRM, alarm_handler); alarm(30); } int main(int argc, char *argv[]) { char buf[0x80]; initialize(); printf("buf = (%p)\n", buf); scanf("%141s", buf); return 0; } basic_exploitation_000.c 파일의 소스코드입니다. main문부터 차근차근..
2021.07.11