본문 바로가기

Forensics

[N0Named Wargame] Left Side B

[N0Named Wargame] Left Side B

 

 

 

 

SWING이라니~😊

주어진 bmp 파일에서 플래그를 찾아야 한다.

문제 이름에 힌트가 있다고 한다.

 

 

 

 

bmp 파일을 열어보면 Left Side에 B가 있다.

 

 

 

 

 

1. HxD

 

[헤더 시그니처]

 

 

bmp 파일의 헤더 시그니처 42 4D

 

 

 

 

 

근데 뭔가 이상하다

FF 랑 FE 가 불규칙적으로 나열되어 있다.

 

 

이미지 변조...?

그래서 이미지를 하나씩 뜯어보겠습니다

 

그런데 forensically로 확인해도 보이는 게 하나도 없음

... 뭘까

 

 

모르겠다

 

 

미해결...😅

 

 

 

 

 

+) 추가

 

강의자료를 다시 봤습니다

 

이미지 변조에 사용되는 툴이 뭐였지 찾아보다가

LSB 변조...?

 

그래서 찾아봤다

LSB를 1-2 씩 바꿔도 사람 눈에는 잘 안 보이기 때문에

1 차이가 나는 걸 보면 LSB 변조를 의심하라고 한다

마침 FF와 FE다

 

stegsolve.jar 툴을 사용하면 된다고 하는데

이게 또 자바가 필요하다는데

설치할 게 너무 많아서

나는 우선 노가다를 해보겠다

 

 

 

이 뒤로는 다 FF라 의미 없는 구간인 것 같아서 이만큼만 해보겠다.

(FF를 FE로 변조한 구간을 해야 하는 건가?)

 

LSB 변조는 비트 변조니까 2진수로 변환을 해야한다고 생각했다.

 

 

 

FF와 FE는 16진수니까

2진수로 나타내보면

FE = 11111110

FF = 11111111

 

두 수가 앞 7자리는 모두 1로 같으니까 간단하게

FE = 0

FF = 1

로 해도 될 듯하다

 

FE = 0
FF = 1

list=[] #리스트 생성
Hex=input().split() #Hex = 16진수
list.append(Hex) #리스트에 입력 값 삽입

for i in range(len(Hex)):
    if Hex[i] == "FE":
        print(FE)
    elif Hex[i] == "FF":
        print(FF)

 

16진수를 2진수로 바꾸는 코드를 작성해봤다

시범 삼아 짧게 입력해봤는데 잘 출력이 된다

 

 

 

FF와 FE, 1과 0의 향연이다

 

아무튼 16진수를 2진수로 변환했다.

 

근데 여기서 어떻게 해야하지

문자가 나오려면 아스키코드인가?

 

 

어라 맞네

뒷걸음질 치다가 맞춘 격

 

 

스윙에는 천재들만 있다

어렵다...

 

생각하고 푸는데 한참 걸렸다

 

 

 

아무튼 성공!!

(7/29 18:38)

'Forensics' 카테고리의 다른 글

[ctf-d] 저는 당신의 생각을 알고 있습니다.  (0) 2022.07.29
[ctf-d] basics  (0) 2022.07.29
[N0Mamed Wargame] 길에서 주워온 만두  (0) 2022.07.29
Do_you_know_HxD  (0) 2022.07.28
qwer  (0) 2022.07.28