Wargame/CodeEngn
code engn basic 6번
JeonYoungSin
2018. 1. 28. 17:38
code engn basic 6번 문제다.
밀린 포스팅이 너무 많은데 블로그 쓰기는 왜이렇게 귀찮은걸까...하.. 그래도 힘내서 시작해보자.
흠.. 이전에 했던 언팩에 조금 더 추가된 느낌이다.
흠 키를 찾아야 할 것 같다. 패킹되어있는지 확인 해보니 UPX 방식이다. 이전문제에서 언패킹 방법은 설명했으니 생략하겠다. 언패킹 후 올리디버거로 실행해보자.
실행 후 문자열을 찾으면 딱봐도 감이 오실 거라 생각한다. OEP랑 키 값을 더해서 입력해주면 끝.
흠.. 풀다보니 너무 쉬워서 왜이렇게 같은 문제만 내나.. 하고 찾아봤더니 이 문제에서는 다른 기술을 요
구하고 있는 것 같다. 언팩하지 않은경우 문자열로 찾을 수가 없는데 이 때 프로그램의 이벤트를 인식하
고 그 이벤트를 사용하는 코드로 이동하는 back to user mode를 사용할 수 있는 것 같다. 이 때 주의할
점은 프로그램이 멈춰있는 상태에서 이 모드를 써야한다는 것이다.
위와 같이 프로그램 실행 후 저 상태가 되면 확인버튼을 누르기전까진 프로그램이 멈춰있는 상태가 된다. 그럼이때 프로그램을 정지시켜 보자.
그러면 오른쪽 하단이 running에서 pause로 바뀌고 Alt+F9를 눌러주면 back to user mode 상태가 된다.
이 때 확인 버튼을 다시 눌러주면 이 이벤트를 사용한 코드로 넘어가게 된다. 이 때 키 비교와 관련된 코
드가 근처에 있을 것 같다. 위로 조금 올려보니 다음과 같이 원하는 코드를 찾을 수 있다.
처음엔 이 방식이 계속 안되서 뭔가하다가 찾아보니 64bit에서는 잘 동작이 안하는 것 같다. 그래서
32bit 설치해서 해보니 잘된다.. 하... 아까운 내시간.. basic이라 그런지 쉬운 개념들뿐이다 advanced
가면 좀 재밋어지려나..?
|