정보보안/Reversing.Kr

ImagePrc[Reversing.Kr]

b1ackhand 2022. 8. 3. 13:03

신기하고 재미있었던 문제인것 같다.

 

문제는 다음과 같이 그림을 그릴 수 있는 공간을 준다.

 

Check 을 눌러보니 특정 그림이 아니면 틀리는 것같다.

항상 처음 하던 일로 디버거로 열어 Wrong이 출력되는 부분을 확인해 보았다.

조금 위를 보면

FindResurceA function과

로딩 하는 function이 존재한다. 따라서 이를 기반으로 찾아보았다.

다음 과 같이

FindResource 함수는 

hModule = 0

lpName = 65

lpType = 18

의 값을 가지고 입력한다.

 

여기서 막혀서 다른 블로그를 조금 참고 하게되었다.

lpName이 65인 것을 가지고 비교할만한 다른 파일을 받지도 않음에도 

어떻게 찾을지를 알 수가 없었기 때문이다.

 

PEview를 통해서보면 rsrc부분에 뭔가가 추가되어있다. 그리고 아까 봤던 65라는 숫자도 보인다.

다음 PE가 그림을 의미하는 것이다.

 

아까의 분기점에서 위로 조금만 올려보면 GetDIBits 함수가 존재한다. 이를 이용하여 비트맵 형식으로 받아 들이는 것을 직감적으로 알 수 있다. 동일하게 위와 같이 받아들이는 인자들을 살펴보면

Width = 200

Height = 150

bitmap = 24

로 인자를 넘기고 있어서

다음과 같이 bmp파일을 만들어주고 

HxD 프로그램의 블록 선택 기능을 이용하여 복사 붙여넣기를 해주면

 

다음과 같이 답이 뜬다.

 

여기서 답을 입력해 줬으면 됬는데 나는 이 그림이 프로그램에 적용 되어야 답이 나오는줄 알고 조금 헤맸지만 다시 정신을 차리게 되었다.

'정보보안 > Reversing.Kr' 카테고리의 다른 글

EasyELF[Reversing.Kr]  (0) 2022.08.07
Position[Reversing.Kr]  (0) 2022.08.07
Replace[Reversing.Kr]  (0) 2022.08.01
Music Player[Reversing.Kr]  (0) 2022.07.17
Easy Keygen[Reversing.Kr]  (0) 2022.07.05