오래 못 할 짓 하지 않기
[ 워게임 ] 64. Reversing : Adventure 본문
728x90
이것도 인자가 있어야 한다.
Line 11 : 첫번째 인자의 길이가 5여야 한다 && Hello여야 한다.
Line 15 : 입력을 받아서 s에 넣는다.
Line 18: agrv랑 s랑 같은지 비교하여 최종 판단.
우리가 확인해야하는 곳은 아래 3번째 줄에 있는 _strncmp이다.
해당 함수를 call하는 주소는 0x0917 이다.
일단 PIE가 실행되어있으므로 breakrva를 해야한다.
더보기
[ break vs breakrva ]
break : 절대 주소로 break를 건다.
breakrva : 상대 주소로 break를 건다.
하지만 이에 대한 기준은 PIE가 실행되었느냐 아니냐이다.
PIE는 실행될 때마다 바이너리 파일/메모리의 base가 바뀌기 때문이다.
우선 디컴파일 했을 때에 (IDA에서 확인한 정보들) 맞추기 위해 인자를 hello로 넣는다.
들어올 수 있다.
더보기

오답노트
만약 인자를 안 넣었다면 아래와 같이 나왔을 거임

argv의 첫번째 인자인 실행 경로와 내가 입력하는 걸 비교하는 곳에서 break가 걸렸다.
그럼 처음 start에 인자를 hello로 주고
그 다음 입력에서 실행되고 있는 경로 ( /home/seed/for_reverse/adventure ) 로 주면 된다.
성공
처음에 strncmp가 많길래 괜히 쫄았다.
하나하나 생각해보면서 차근차근 들어오면 된다.
'보안_모의해킹 > CTF (Capture The Flag)' 카테고리의 다른 글
[ 워게임 ] 66. Pwnable : stack 1 (0) | 2025.07.15 |
---|---|
[ 워게임 ] 65. Pwnable : stack 0 (쉬움) (0) | 2025.07.15 |
[ 워게임 ] 63. Pwnable : Control Hijacking by pwn.college (0) | 2025.07.10 |
[ 워게임 ] 62. Reversing : crackMe-by-m00ny-1 (0) | 2025.07.09 |
[ 워게임 ] 61. Reversing : crack2-by-D4RK_FL0W (0) | 2025.07.09 |