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 |
| 31 |
Tags
- MySQL
- c언어
- Bandit
- 유튜브크롤링
- split()
- 백준 1008번
- 리버싱
- ctf
- split()함수
- 댓글크롤링
- 리뷰 크롤링
- Welcome_rev
- reversing
- 후기 크롤링
- Handray
- Selenium
- 네이버스토어 후기
- SQL
- Reversing Me
- 워게임
- Baekjoon
- 리눅스
- 파이썬
- Linux
- Python
- 백준
- 크롤링
- 백준2557
- HackCTF
- 웹크롤링
Archives
- Today
- Total
root@hfairy:~$
[HackCTF] Reversing - Reversing Me 풀이 본문

이번 문제에는 코드가 작성되어 있다.

전체 코드를 확인해보면 위의 사진과 같은데 처음엔 코드를 실행해봤지만 원하는 답을 얻진 못했다.
코드를 분석해서 해결하는 문제인 거 같다.
원하는 값을 얻기 위해 for문에 주어진 조건을 확인해봐야할 것 같다.

입력값(enter)과 serial의 길이가 같으면 for문을 실행한다.
enter[i] ^ (i % 2)에서 enter값을 0 또는 1로 XOR 연산(두 값을 비교해 값이 같으면 0, 다르면 1 계산)을 실행하는 것을 확인했다.
XOR연산은 a^b=c이면 a=c^b라는 특징을 가지고 있다. 따라서 enter[i] ^ (i % 2) == serial[i]는 enter[i] == serial[i] ^ (i % 2)임을 알 수 있다.
주어진 조건과 특징들을 활용해 코드를 작성하면 아래 사진과 같다.

코드를 실행시키면 플래그값을 얻을 수 있다~!

성공!
HackCTF{hey_success_D0_y0u_kn0w_r3verse_3n9ineer1n9?}
'워게임 > HackCTF' 카테고리의 다른 글
| [HackCTF]Reversing - Handray 풀이 (0) | 2021.11.05 |
|---|---|
| [HackCTF] Reversing - Welcome_REV 풀이 (0) | 2021.10.31 |