Reversing.kr ImagePrc

Reversing/리버싱 문제풀이

2015. 10. 7. 16:03



그림을 대충 그리고 실행을 하면 위와 같이 틀렸다고 나온다.




Wrong이 출력되는 부분으로 이동해서 위의 분기문을 보니 특정 loop를 돌면서 0x15f90번 비교를 하는 것을 볼 수 있다.


예상을 해보자면 특정한 그림데이터가 파일안에 들어 있고, 내가 그린 그림 데이터와 비교를 한다고 짐작할 수 있다.




위 내용은 파일안에 어떤 그림데이터 같은게 있으면Manifest에 등록이 된다 이런뜻인거 같다. 

확실히 모르지만 검새해보니 이런 그림이 나와서 힌트가 됬다.



PE view를 통해보면 rsrc섹션에 MANIFEST가 있다.




크기도 딱 15F90 이다.


이 파일 데이터를 보면 유추할 수 있는게 그림파일의 형식이다.

BMP는 256색을 표현할수 있어 FF이하로 표현하고, 비트맵방식을 사용한다. 

나머지 그림파일들은 HXD로 보면 더 많은 색을 표현하고 벡터방식을 이용하기 때문에 이상한 문자들로 채워져 있다.


이제 크기를 알아야 하는데,



그림과 관련된 함수들을 보면 스택에 넣는 값을 통해 높이와 너비를 알 수 있다.


이제 그림판으로 높이와 너비를 지정해 크기를 맞춰주고 따로 저장시킨 후 ,

MANIFEST의 데이터를 HXD같은 헥스편집기로 덮어 씌워주고 저장하면 

답이적힌 이미지파일이 나온다.