본문 바로가기

Reversing/Simples Creckme

​Simples Crackme 3

Simples Crackme 3
 - Question

  · Program에서 요구하는 Key File 생성

  · 성공 / 실패 1/ 실패 2 Message


 - Solve
  · 문제를 풀기위한 정보
  ◦ 구성 함수 파악
  ◦ Program 진행 방식
  ◦ Key File의 조건
  · 구성 함수 파악

  ◦ 사용된 함수
   ▹ MessageBoxA
   ▹ CreateFileA
   ▹ GetFileSize
  ◦ 사용된 함수를 보면 Win32 API 함수가 사용되었고 C언어로 작성된 Program이라는 것을 알 수 있다.
  ◦ 사용된 함수에 대한 설명
   ▹ MessageBoxA
    ▸  Message Box를 출력하는 함수
   ▹ CreateFileA
    ▸  File 혹은 객체(Object)를 생성하거나 열 수 있는 함수
    ▸  매개변수 FileName와 일치하는 객체를 Mode 값에 따라 생성하거나 연다.
    ▸  Mode = OPEN_EXISTING : 객체를 열 수 있는 Mode로 File이 존재하지 않을 시 'FFFFFFFF'가 반환된다.
   ▹ GetFileSize
    ▸  이전에 사용된 함수의 반환 값을 이용해 File에 접근, 크기를 알아내 File의 크기를 알아내는 함수
  · Program 진행 방식

  ◦ CreateFileA 함수와 CMP, JMP 명령어를 이용해 File의 존재유무를 판단
  ◦ File이 존재한다면 CMP 명령어를 이용해 0x12와 해당 File의 크기를 비교
  ◦ 크기가 같다면 성공 Routine의 Message를, 크기가 다르다면 실패 Routine의 Message를 출력한다.
  · Key File의 조건
  ◦ abex.l2c라는 File 이름을 가져야한다.
  ◦ 크기는 12Byte여야 한다.


 - Answer
  · KeyFile 생성

  ◦ Craceme 3 Program이 있는 위치에 메모장을 생성해 18Byte만큼 문자(18글자)를 채우고 저장한다.

  ◦ 저장한 File의 이름을 'abex.l2c'로 바꾸면 Key File이 완성된다.


 



'Reversing > Simples Creckme' 카테고리의 다른 글

Simples Crackme 6  (0) 2015.08.16
Simples Crackme 5  (0) 2015.08.16
Simples Crackme 4  (0) 2015.08.16
Simples Crackme 2  (0) 2015.08.16
Simples Crackme 1  (0) 2015.08.16