촉촉한초코칩

[Dreamhack] Small Counter 본문

Study/Reversing

[Dreamhack] Small Counter

햄친구베이컨 2024. 9. 2. 22:48

 

풀이

힌트 링크를 보니 gdb를 사용하라고 되어 있어서 gdb에서 열어보았다. 

파일을 실행하면 입력할 틈도 없이 출력되고 끝이 나게 된다. 

 입력값이 10개라는 건가..? 문장이 10글자..? 

 

방향을 못잡겠어서 블로그 참고.. https://velog.io/@kkangjane/Dreamhack-War-game-small-counter

rbp+var_4 값에 따라 Nice, END로 나뉜다. 

gdb에서 이부분에 break를 걸고 실행해본다. 

(warning이 뜨면서 동작이 안돼서 다른 방식으로했더니 됐다. -> break 할 때 주소로 입력하지 말고 *main+n으로 입력하기)

그리고 해당 값에 5를 넣는다. (5로 인식될 수 있도록)

흠 여기가 아닌 것 같다. 

다시 5랑 비교하는 부분을 찾아본다. 

 

이제야 이해한건데.. 

278까지는 10~1까지 출력이 된 상태이고, rbp가 5가 돼야 하기 때문에 rbp에 맞는 주소?값에 5를 넣어야 한다.. 

엉뚱한 곳에 5를 넣고 있었다..ㅎ

rbp-4와 5를 비교하기 때문에 rbp 주소 -4 에 5를 넣으면 된다. 

 


 

정리

  1. IDA 사용해서 어떻게 해야 flag 함수를 호출할 수 있는지 조건 파악 
  2. 조건에 맞게 gdb에서 값 설정 (set *주소값=값)

'Study > Reversing' 카테고리의 다른 글

[Dreamhack] Secure Mail  (0) 2024.08.15
[Dreamhack] simple-operation  (0) 2024.07.31
[Dreamhack] rev-basic-4  (0) 2024.07.27
[Dreamhack] rev-basic-2  (1) 2024.07.22
[Dreamhack] Easy Assembly  (0) 2024.07.07