Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- 웹
- 순서도
- CodeEngn
- hacking
- 소프트웨어
- 웹해킹
- network
- 알고리즘
- TCP
- reversing
- 시스템해킹
- 해킹
- dreamhack
- Webhaking
- 워게임
- System
- XSS
- 소프트웨어보안
- webhacking
- WarGame
- 네트워크
- 리버싱
- 네트워크보안
- 모의해킹
- Web
- 드림핵
- 비박스
- ftz
- 시스템
- bee-box
Archives
- Today
- Total
Without a Break
[Dreamhack] rev-basic-4 본문


문제 파일을 디버거로 열었을 때 모습

corret를 출력하는 입력값을 찾아야하니 문자열을 찾아봤다.
corret의 위치로 이동해보자

corret의 위쪽을 보면 test eax,eax에서 입력값과 정답을 비교한다는 것을 알 수 있다.
test eax,eax의 위 코드를 보면 7FF62FFD1000에 정답이 있는 것 같다. 이 위치로 이동해보자

이동해보니 27개의 문자열과 입력값을 비교한다는 것을 알 수 있었다.
코드는 다음과 같다.
1. eax에 첫 번째 입력값을 넣고 4비트 shift
2. ecx에 첫 번째 입력값을 넣고 4비트 shift
3. ecx와 F0을 and 연산
4. eax와 ecx를 or 연산하여 eax에 저장
5. 그 후, 7FF62FFD3000 값을 가져옴

HEX DUMP를 살펴보니 27개의 문자가 있었다.

파이썬 코드를 작성해서 돌려봤더니

정답이 나왔다.

'Reversing > Wargame' 카테고리의 다른 글
| [Dreamhack] rev-basic-8 (0) | 2023.08.16 |
|---|---|
| [Dreamhack] rev-basic-6 (0) | 2023.08.16 |
| [Dreamhack] rev-basic-3 (0) | 2023.08.16 |
| [Dreamhack] rev-basic-1 (0) | 2023.08.13 |
| [Dreamhack] rev-basic-0 (0) | 2023.08.13 |