[Reversing] ImagePrc_WirteUp

2023. 4. 29. 23:11· Reversing
목차
  1. 워게임 풀이
  2. 4. ImagePrc
728x90

워게임 풀이

http://reversing.kr

 

Reversing.Kr

This site tests your ability to Cracking & Reverse Code Engineering. Now Challenge a problem for each environment. (Windows, Linux, .Net, Flash, Java, Python, Mobile..) Admin E-Mail: gogil@reversing.kr

reversing.kr

4. ImagePrc

문제 파일을 다운받으니 그림?을 그릴 수 있었다. 
 
 

Check를 누르면 'Wrong'이 뜬다. 뭔가 그림을 검사 맞는 것 같다..
 
 
 
exe 파일이니 올리디버거로 열어주었다.

에러 메세지를 출력하는 'Wrong' 부분을 찾고 이 위 부분을 분석해봤다.
 
004013A3부터
DL에 ECX 값을, BL에  EAX+ECX 값을 넣는다.
DL과 BL의 값을 비교해서(CMP) 같으면 0이 되고,  같지 않으면 Wrong을 출력하는 부분인 00401CD로 점프한다.
 
 
AC부터 INC 연산자로 EDI와 EAX 각각 1씩 증가하는 것을 확인할 수 있다.
AE를 보면 EDI와 15F90을 비교해서(CMP) EDI가 작으면 A3으로 점프한다.
 
 
 

위처럼 루프를 돌기 때문에 루프를 얼마나 도는 지 알기 위해서는 EDI의 초기값이 중요하다.
이는 조금 위를 보면 바로 알 수 있다!
 
 
9D에서 XOR EDI, EDI 연산을 하는 것을 볼 수 있다. 같은 값끼리 XOR 연산을 진행하는 것이기 때문에 EDI는 0으로 세팅된다!!
따라서 0부터 1씩 증가하면서 15F90(10진수로 90,000)까지 반복되므로 루프는 총 90,000번 실행된다. 결과적으로 Wrong으로 가기 위해서는 DL과 BL의 값이 같아져야 한다.
 
 

이미지에 해당하는 리소스 영역을 보면 Size에 '15F90'을 볼 수 있다. 아마 사용자가 그려넣은 이미지와 정답 이미지의 픽셀을 하나하나 비교하면서 모든 픽셀이 일치할 경우 문제가 해결되는 것으로 보인다.
 
 
정답 이미지와 같은 사이즈의 임시 비트맵 파일을 만들어 논 후 리소스 영역의 데이터 부분을 붙여 넣으면 flag가 나올 것으로 예상된다.
 
 

올리디버거에서 함수를 보다보면 비트맵을 의미하는 함수의 이름과 함께 Height=96(150), Width=C8(200)이 계속 나온다.
 
*16진수 96, C8은 각각 십진수로 150, 200이다.

 
 
 
 

그림판으로 높이 150, 넓이 200의 비트맵 이미지를 만들고 저장한다.
 
 

HxD를 이용해서 ImagePrc의 리소스 영역을 복사한 후 아까 만든 비트맵 파일에 붙여넣는다.
 
 

아까 생성한 비트맵 이미지 파일에 붙여넣는다.
 
 

저장한 후 비트맵 파일을 열어보면 'GOT'라는 flag가 뜨는 것을 확인할 수 있다!!
 
GOT
 
 

'Reversing' 카테고리의 다른 글

[Reversing] Music Player_WirteUp  (0) 2023.05.13
DLL, IAT, EAT 분석  (0) 2023.05.12
[Reversing] Easy ELF_WirteUp  (0) 2023.04.29
[Reversing] Easy Keygen_WirteUp  (0) 2023.04.29
PE 구조(2)__notepad.exe(메모장 프로그램) PE 헤더 분석  (0) 2023.04.28
  1. 워게임 풀이
  2. 4. ImagePrc
'Reversing' 카테고리의 다른 글
  • [Reversing] Music Player_WirteUp
  • DLL, IAT, EAT 분석
  • [Reversing] Easy ELF_WirteUp
  • [Reversing] Easy Keygen_WirteUp
오호츠크해 기단
오호츠크해 기단
오호츠크해 기단
공기덩어리
오호츠크해 기단
전체
오늘
어제
  • 분류 전체보기 (223)
    • Linux (14)
    • Web (20)
    • Forensic (20)
    • Reversing (18)
    • System (28)
    • Fuzzing (4)
    • WHS 1st (12)
    • SWING (5)
    • CTF (37)
    • 활동들.. (24)
      • 개인정보보호 국민점검단 (1)
      • 스쿨혁명 1784 (1)
      • Incognito (10)
      • 코드클럽 (10)
      • 월드프렌즈코리아 ICT봉사단 (2)
    • Dreamhack (16)
      • Web Hacking (10)
      • Crypto (6)
    • 개발 (19)
      • C++ (12)
      • Git (3)
      • Figma (1)
      • Clone (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 깃허브
  • github
  • 월클
  • 방
  • SW교육기부단
  • MD
  • 마크다운 문법
  • 마크다운
  • readme
  • 코드클럽

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
오호츠크해 기단
[Reversing] ImagePrc_WirteUp
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.