촉촉한초코칩
[Dreamhack] Small Counter 본문
풀이
힌트 링크를 보니 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를 넣으면 된다.
정리
- IDA 사용해서 어떻게 해야 flag 함수를 호출할 수 있는지 조건 파악
- 조건에 맞게 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 |