zj3t

email: euntaejang@gmail.com

Latest Posts

Reversing.kr-FPS-첫번째 풀이

By 오후 9:52 ,


이런 게임프로그램입니다. 굉장히 신선해서 처음에 어떻게 접근해야 할 지를 몰랐습니다. Ollydbg로 켜보니 PE Header에서 본 것과 다르게 주소배정이 되는 것을 보고 ASLR처리가 되어있다는 것을 알게되었고 ASLR기능을 껐습니다. ASLR은 시스템해킹폴더에서도 정의가 있으며 기능을 끄는 법은 다른블로그에도 많이 포스팅되어있으니 따라 하면 될 것같습니다.

일단 이 문제를 저는 제 방식대로 풀었는데 저 처럼 푼사람이 한명도 없었습니다. 그래서 다른 분들이 푼 방식을 보고 다른 방법도 포스팅하겠습니다. (일단 제가 푼 방식입니다.)          
이 문제는 ASLR 기능이 켜진 상태에서는 문자열검색이나 함수도 검색할 수 없지만 ASLR 기능을 끄면 문자열 검색이 가능합니다.

이 부분이 저 몬스터(고구마)를 생성하는 부분입니다. 총 50번 진행됩니다. 즉 몬스터가 50마리 생성된 다는 것을 알 수 있습니다.


필드에 나와있는 몬스터를 다 죽이니 저런 문자열이 뜹니다. 하지만 마지막 두 글자가 연산이 안됬는지 암호화 되어있습니다. 


몬스터를 죽이기 전 바이너리입니다. 즉 여기서 알 수 있는 것은 몬스터를 한마리 죽일 때 마다 연산이 되어 저 50개의 바이너리 코드가 하나씩 바뀌어 password를 출력한다는 것입니다. 하지만 두 글자가 연산이 안된 것은 48마리만 죽였기 때문입니다. (확인해봐도 48마리)

두 마리는 아무리 찾아도 보이지가 않았습니다. 따라서 제가 한 방법은 맵에 있는 모든 벽들을 없애는 것이였습니다. 


이렇게 벽을 허무니 두 마리가 보입니다. 죽이면 게임은 종료됩니다.


일단 저는 이렇게 풀었습니다. 답은 공개하지 말라해서 하지 않겠습니다. 궁금한 것이 있으시면 댓글 달아주시면 바로 답해드리겠습니다.

이 문제를 푸니 드디어 200위권 안으로 진입했네요ㅎㅎ


You Might Also Like

2 개의 댓글

  1. 정작 벽을 어떻게 없애는지에 대한 설명은 1도 없네염..

    답글삭제
  2. 정작 벽을 어떻게 없애는지에 대한 설명은 1도 없네요...ㅠㅠ

    답글삭제