Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Advanced RCE Level 10

Problem

  • Serial이 WWWCCCJJJRRR 일때 Name은 무엇인가
  • Hint 1 : 4글자임
  • Hint 2 : 정답으로 나올 수 있는 문자열 중 (09, az, A~Z) 순서상 가장 먼저 오는 문자열

Tool

  • ExeinfoPe
  • IDA *** 7.0
  • x32dbg

Explanation

  • ExeinfoPe로 해당 PE 파일을 열어보았다.
  • C++, Win Console 임을 알 수 있다.

  • x32dbg로 해당 PE 파일을 열어보았다.
  • 함수 유추하기엔 개수가 많아 IDA의 힘을 빌렸다.
  • IDA에서 생성한 파일을 x32dbg의 SwissArmyKnife플러그인으로 먹여주니 함수 이름이 제대로 나타났다.
  • 사실 IDA가 익숙하지 않다...
  • 다음은 main의 call graph이다.
  • Name은 4글자 이상, Key는 12글자이어야 한다.
  • 입력을 다 받고 조건을 통과하면 check_serial에게 파라미터로 넘겨주고, 나오는 결과에 통과 여부가 갈린다.

  • 다음은 check_serial의 call graph이다.
  • 해당 함수를 아래 코드에서 C++로 나타냈다.

  • namegen.cpp
  • check_serial 함수에서 자료형을 잘 통일해줘야 결과가 올바로 나타난다.
  • 재귀 함수를 이용하여 모든 경우의 수를 검사해보았다.

  • 다음과 같이 통과하는 것을 알 수 있다.