본문 바로가기

Wargame/etc

(2)
[ROP_32bit] ropasaurusrex 본 문제는 2013년도 pCTF의 문제이다. 해당 문제는 간단한 풀이만 작성되어 있으며, 해당 기법에 대해 공부하고 싶다면 아래 링크를 참고하기 바란다. 2022.07.10 - [Dreamhack/Wargame] - [Wargame] basic_rop_x86 1. 바이너리 파일 2. 풀이 (1) 보호 기법을 확인한다. 32bit 프로그램으로, NX와 ASLR이 적용되어 있음을 알 수 있다. (2) 바이너리를 실행해보면 입력받은 후, WIN이라는 문자열을 출력하고 종료된다. 아래 사진은 임의로 dasfsd를 입력한 결과이다. (3) IDA를 이용하여, 디컴파일한다. sub_80483F4 함수에서 buf에 입력값을 받아온다. buf의 크기가 136byte인데, 256byte만큼 입력받아오기 때문에 BOF취약..
[ROP_64bit] codegate2018 Qual BaskinRobbins31 1. 바이너리 파일 2. 바이너리 분석 본 글은 ghidra 툴을 이용하여, 분석하였다. ( 아래는 main에 대한 코드만 넣어두었다. 좀 더 자세한 사항은 디컴파일하여 확인해 보는 것을 추천한다. ) 해당 바이너리는 베스킨라빈스31게임과 비슷한 것으로, 횟수 31에서 입력한 값만큼 차감하면서 0이 되면 loss하는 게임이다. 단, 입력값은 1~3중에 입력해야 하는 조건이 존재한다. your_turn() : 사용자가 입력한 값을 필터링하는 함수이다. my_turn() : 컴퓨터가 입력하는 값을 의미하는 함수이다. - 남은 기회가 4일 경우, 컴퓨터가 이기게 된다. - 남은 기회가 0미만 3이상일 경우, 남은 기회에서 -1 된다. - 남은 기회가 1~3일 경우, 컴퓨터가 이기게 된다. undefined8 ..