[HackCTF] :rev: Handray

두비니

·

2021. 3. 12. 02:45

 

 

 

 

 

 

 

 

 

엥 바로 aFlag를 출력해주네? 하고 보니깐

 

 

 

이렇게 뜨고, 파일도 실행해보면

 

 

이렇게 뜨는걸로 봐서 밑에 있는 바이트들은 한글인거 같네요

근데 변수 영역을 보면 위에 format하고 the flag is %s라고 되어있는 부분을 볼 수 있습니다.

따라서 뭔가 뛰어넘은것으로 판단하였고, 어셈블리어 코드를 봤습니다.

 

 

 

빨간색 cmp 부분에서 rbp-0x4가 0이면 파란색 main+96부분의 printf가 수행되고, 만약 두 값이 다르면 main+113의 printf가 수행됩니다. 저희가 실행시킬때는 두번째 printf가 실행되니깐 첫 번째 printf를 봅시다.

 

 

각 인자인 0x6010e0과 0x400638을 확인해봤습니다.

 

네, 저희가 예상한대로 되는 것 같네요!

 

여기서는 두가지 방법으로 할 수 있을 것 같습니다.

 

1. 역연산 구현

2. cmp하기 전에 그냥 0으로 바꾸기

 

역연산 구현하기 귀찮기때문에 파일 자체를 변조해주겠습니다.

 

 

보면 값이 1로 변경된 것을 볼 수 있습니다. 이걸 0으로 바꾸면 되겠죠?

 

 

명령어 참고: windowhan.tistory.com/entry/GDB-%EC%8A%A4%ED%83%9D-%EA%B0%92-%EC%88%98%EC%A0%95%ED%95%98%EA%B8%B0

 

[GDB] 스택 값 수정하기

set *(자료형*)포인터주소 = 값 예시) (gdb) set *(long*)0xb7fcc104 = 0xb7fcc10c (gdb) x/x 0xb7fcc104 0xb7fcc104: 0xb7fcc10c (gdb) 0xb7fcc108: 0x0804858e (gdb) 0xb7fcc10c: 0x00031337 (gdb) 0xb7fcc110:..

windowhan.tistory.com

 

 

 

hehe

'War Games > HackCTF' 카테고리의 다른 글

[HackCTF] :web: 보물  (0) 2021.03.14
[HackCTF] :web: /, Hidden, Button (All 50 pts)  (0) 2021.03.13
[HackCTF] :rev: Reversing Me  (0) 2021.03.11
[HackCTF] :rev: Welcome_REV  (0) 2021.03.10
[HackCTF] :pwn: Yes or no  (0) 2021.03.10