#6.ImagePrc 풀이.
일단 파일을 다운로드 받아서 실행해본다.
Check를 눌러보니 Wrong이라는 메시지가 뜬다.
아마 파일 이름도 ImagePrc인 것 처럼 그림을 비교한 후 Wrong이라는 메시지가 뜨는 거 같다.
일단 ExeinfoPE를 실행.
C++로 구성되어 있고, 패킹은 따로 되어 있지 않다.
Ollydbg로 실행해본다.
일단 오른쪽 마우스 클릭 => Search for => All referenced text strings를 눌러서 문자열을 검색해본다.
일단 Wrong,Button이라는 문자열도 존재하는 것도 알 수 O.
Button부터 좀 자세히 본다.
Button을 좀 더 상세히 보면, 004013AE 쪽을 본다.
무언가 15F90의 크기만큼 계속 CMP,즉 비교한다.
즉 그림의 15F90 크기만큼 비교한 뒤에, 맞으면 Wrong을 출력하는 것을 알 수 O.
이 문제에서 가장 중요한 BitBIt라는 부분.
BitBlt는 간단히 말해 비트맵 이미지를 지정된 크기만큼 복사해서 윈도우의 지정된 좌표에다가 그려야 된다.
즉 BitBlt 함수의 너비와 높이를 참고해 BitMap의 너비와 높이를 알 수 O.
width는 200, height는 150.
일단 HxD를 실행해본다.
일단 HxD를 실행해보고 쭉 내려보니 15F90 크기만큼의 데이터들이 있는 걸 확인 가능.
이 데이터들과 width는 200, height 150인 BitMap가 비교하면 된다.
width 200, height 150인 bitmap 파일을 그림판으로 만든다.
위에서 만든 ImagePrc.bmp을 HxD로 불러온다.
ImagePrc.exe FF 부분을 끝까지 복사해서 1.bmp 부분에 붙여놓기한다.
이대로 저장하면 정답이 쓰여 있는 BMP 파일이 생성된다.
인증(=Auth)을 해본다.
'# Related site issues > Reversing.kr' 카테고리의 다른 글
#8.RamsomWare. (0) | 2018.05.21 |
---|---|
#7.Position. (0) | 2018.05.20 |
#5.Replace. (0) | 2018.05.20 |
#4.Music Player. (0) | 2018.05.19 |
#3.Easy Unpack. (0) | 2018.05.18 |