
다음 코드는 bank.c 소스 코드이다.우리의 목표는 secret.txt를 읽는 것이다.case 2를 보면 user_balance가 50000 이상이어야 secret.txt를 읽을 수 있다. 어떻게 해야 user_balance가 50000 이상이 되게 할 수 있을까?먼

다음 코드는 list.c 소스 코드이다.해당 프로그램은 ls 명령어를 실행하는 역할을 한다.아무 것도 입력하지 않고 엔터를 누르면 현재 디렉토리 내 파일들이 출력된다.우리의 목표는 secret.txt를 읽는 것이다.cmd에서 secret.txt를 읽으려면 cat sec
다음 코드는 입력된 사용자 ID를 기반으로 특정 로그 파일에 로그인 시간을 기록하고, 다른 사용자의 로그를 읽을 수 있도록 설계되어있다.주어진 프로그램에서는 파일 이름이 ./logs/<사용자ID>.txt 형식으로 생성된다. 중요한 점은 snprintf 함수가 사용
echo1.c에 작성된 코드 gdb를 이용하여 main함수를 disassemble 해보자. 그럼 echo함수의 return address는 0x40123d인 것을 알 수 있다. 우리는 이 echo함수의 return address를 print_secret함수의 시

echo2.c는 이렇게 구성되어 있다. main함수를 disassemble하여 echo함수의 return address를 구해보자.echo함수의 return address는 0x401296인 것을 알 수 있다.print_secret함수의 시작 주소는 0x4011a6인

guess.c 코드다.이전과 달리 BOF가 일어날 수 있는 곳이 main 함수다.main함수의 scanf("%s", input);에서 BOF가 발생한다.따라서 strcmp(input, passcode)에서 input과 passcode가 같으면 print_secret함수

fund.c 코드다. (길다..)쭈욱 살펴보니 print_secret()함수를 호출하는 코드는 없다.그렇다면 우리는 print_secret()함수의 시작 주소와 어떤 함수의 return address을 알아내야 한다.그렇다면 어떤 함수의 return address를 알

이번 Lab3의 목표는 ROP를 사용하여 secret.txt를 읽는 것이다. Pwntools에서 ROP()함수를 제공하므로, 우리는 gadget 정보를 얻을 수 있다. 또한, p64()와 u64()라는 새로운 개념이 나온다. 아래 코드를 보면 두 개념을 쉽게 이해할