[Reversing.kr] ImagePrc

semon·2022년 11월 3일
0

Reversing

목록 보기
6/10

문제

Reversing.kr의 ImagePrc 문제입니다.

실행을 시켜보면 다음과 같이 이미지를 그릴 수 있고 확인을 할 수 있습니다.

분석

wrong message를 호출하는 부분을 찾아가 보면 이렇게 되어있고

해당 함수를 호출하는 부분을 찾아가 보면

0x15f90의 횟수를 비교하고 같지 않으면 jmp를 합니다.

비교하는 값을 살펴보면

0x3180048의 값과 0x0047e060의 값을 비교합니다.

0x0047e060 주소로 이동해보면 rsrc 영역이 나오고

PEviewer로 확인을 해보니 MANIFEST라는 값이 rsrc에 있습니다.

주소를 확인해보니 0x0047e060에 저장되어 있는 값입니다. 이 값을 통해 해결할 수 있을 것 같습니다.

해당 부분의 내용으로는 잘 짐작이 가지 않았으나

IDA에서 GetDIBits라는 함수를 호출하는 것을 보고 Bitmap Image라는 것을 알게 되었습니다.

IDA로 해당 함수를 디컴파일 하여 200px, 150px의 크기를 가지고 있다는 것을 알게 되었습니다.

또 biBitcount의 값은 몇 비트 비트맵 이미지인지를 나타내는 값으로 해당 이미지는 24비트 비트맵 이미지인 것을 알 수 있습니다.

그림판을 이용하여 가로 200px, 세로 150px의 24비트 비트맵 이미지를 만들고

hex editor를 이용하여 위에 반복문 횟수인 15f90의 크기만큼 값을 복사해주면

다음과 같이 flag가 이미지 파일로 나타나게 됩니다.

profile
보안을 공부합니다

0개의 댓글