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
- HackCTF
- 그리디 알고리즘
- Web
- 써니나타스
- Database
- 인코그니토
- 수학
- xcz.kr
- misc
- SuNiNaTas
- Web Hacking
- Digital Forensics
- writeup
- php
- 문자열
- Python
- 정렬
- CTF
- 백준
- C
- cryptography
- Forensics
- wargame
- Text
- Network
- 사칙연산
- 구현
- N0Named
- Incognito
Archives
- Today
- Total
보안을 그리다, 훈이
[Forensics] N0Named Wargame 누가 진짜일까?(70p) Write Up 본문
N0Named Wargame Forensics 분야 누가 진짜일까?(70p) 문제에 대한 Write Up입니다.
HELL.zip 파일을 다운로드하고 압축을 풀어보면 두 개의 bmp 파일이 나타난다.
언뜻 보기엔 같은 이미지로 보이지만 분명 무언가 다른 부분이 존재할 것이다.
먼저, 각각 파일의 hex 값을 추출하여 txt 파일로 저장해둔 후 서로 다른 hex 값을 찾아 출력하는 소스코드를 Python3로 구현하였다.
# compare_Hex.py
a1 = list(map(''.join, zip(
*[iter(open('/nonamed/Digital Forensics/누가 진짜일까?/HELL/Hex_CERBERUS.txt', 'r').read().replace('\n', ''))]*2)))
a2 = list(map(''.join, zip(
*[iter(open('/nonamed/Digital Forensics/누가 진짜일까?/HELL/Hex_HEELTAKER.txt', 'r').read().replace('\n', ''))]*2)))
res = ''
for i in range(len(a2)):
if a1[i] != a2[i]:
res += a2[i]
print((bytearray.fromhex(res).decode()))
compare_Hex.py 실행 결과.
정상적으로 플래그가 출력되었다.
Flag : NND{Diff3R#NT_are_7H3Y}
굳이 일일이 소스코드를 구현하지 않고도 diff와 cmp 명령으로 간단히 비교할 수 있다.
# 복수의 Binary Files가 동일한지 확인
# 두 개
diff [file1] [file2]
# 세 개
diff3 [file1] [file2] [file3]
# 두 개의 파일을 비교하여 다른 byte들을 모두 출력.
# compare_Hex.py와 유사.
cmp -l -b [file1] [file2]
'Security > Wargame' 카테고리의 다른 글
[Forensics] N0Named Wargame 길에서 주어온 만두(100p) Write Up (0) | 2022.01.29 |
---|---|
[Forensics] N0Named Wargame 어제 뭐 했어?(100p) Write Up (0) | 2022.01.26 |
[Web Hacking] HackCTF Guess me(100p) Write Up (0) | 2022.01.26 |
[Forensics] N0Named Wargame 조별과제_배드엔딩(50p) Write Up (0) | 2022.01.18 |
[Forensics] N0Named Wargame 회사 찾기(50p) Write Up (0) | 2022.01.17 |
Comments