저번 문제였던 L01을 끝내고 이번에는 L02로 넘어가겠습니다.
다음 문제를 푸는 방법은 Continue 부분에 저번 문제의 답을 쓰시면 자동으로 L02의 문제가 나옵니다.
이렇게 L02의 문제가 있는데요 문제를 보니까 실행파일이 손상되어서 실행이 안된다고 합니다.
실제로 눌러서 실행을 시키면 이런 메시지창이 뜨면서 프로그램이 꺼지는데요, 정확히 분석을 할 수는 없어도 16진법으로 된 코드가 나오고, 문제에도 실행파일이 손상되었다고 하는것으로 봐서 OP코드의 f0 00 f0 37 05 부분에 이상이 생겨서 프로그램을 실행시킬수 없다 정도로 생각하시면 될 것 같습니다.
그럼 이것을 올리디버거로 열어볼텐데요
올리디버거로도 에러창이 뜨면서 실행이 안되는 것을 보실수 있습니다.
이 문제는요 리버싱툴중에 하나인 헥스 에디터라는 프로그램을 알려주기 위해 제작된것 같습니다.
헥스 에디터라는 프로그램은 파일을 실행시키지 않고서 PE(Portable executable)파일들의 포멧들을 분석할수 있게 해주는 고마운 도구입니다.
PE파일들이란 것은 EXE,DLL,OBJ,SYS 등의 실행가능한 파일들을 말하는것인데요 PE관련으로는 또 많은 부분들이 있으니 나중에 말하고 그냥 프로그램을 실행시키기 위해 운영체제가 준비해야 할 일들을 분석할수 있게 해주는 프로그램이 헥스 에디터라고 알고 있습시다.
헥스 에디터는 인터넷에서 다운 받으시거나 제가 올린 파일을 다운받아서 이용하시면 됩니다.
-제가 쓰던 프로그램으로 avast검사상으로 바이러스는 없습니다.
이것이 헥스에디터의 초기화면인데요 여기에 분석하고 싶은 프로그램을 드래그하거나 열면 그 프로그램의 PE포멧을 16진법으로 띄웁니다.
사용방법을 보면 왼쪽부터 Offset / 16진법으로 된 코드들 / 코드를 ASCII코드로 변환시킨 값
들이 나와있습니다.
여기서 16진법 코드를 볼 수 있는 사람들을 드무니 가장 오른쪽에 있는 ASCII코드 값을 보겠습니다.
제가 왜 사진을 이렇게 5개로 나눴냐면요 바로 이것이 각각 역할을 하는 부분이 있기 때문입니다.
맨 처음부분은 MZ(Mark Zbikowski)란 DOS실행파일을 설계한 사람의 이니셜이 나오면서 DOS와의 연결을 위해 만든 부분입니다.
두번째 부분은 저도 잘 모르겠습니다...
세번째 부분은 L01에 쓰였던 MessageBoxA와 KERNEL32.DLL등이 보이는 걸로 봐서 프로그램에 쓰이는 API함수들과 DLL부분을 선언하는 부분입니다.
네번째 부분이 저희가 원하는 부분인데요 바로 비밀번호와 통과를 했을때, 못했을때의 문구를 나타내는 부분입니다.
다섯번째 부분은 제가 생각하기론 프로그램에서 사용되는 문자열들을 모아놓은 구간이라고 생각됩니다.
그럼 문제를 풀기 위해 네번째 부분을 보면
.Nope, try again!이라는 실패시 뜨는 문구와
.Yeah, you did it!.Crackme #1 라는 성공시 뜨는 문자
ㅁ라는 성공하기 위한 비밀번호가 있습니다.
그럼 문제를 풀기 위해서 ㅁ를 입력하면 되겠죠??
그러면 이렇게 다음 문제가 뜨면서 이번 문제는 끝이 납니다.
'리버스엔지니어링 > 크랙미 풀이' 카테고리의 다른 글
코드게이트 2013 바이너리 100분석 (0) | 2013.03.12 |
---|---|
CodeEngn Basic RCE L05 문제 풀이 (0) | 2013.03.03 |
CodeEngn Basic RCE L04 문제 풀이 (2) | 2013.02.19 |
CodeEngn Basic RCE L03 문제 풀이 (0) | 2013.02.08 |
CodeEngn Basic RCE L01 문제 풀이 (1) | 2013.01.23 |