code engn basic 6번 문제다. 

밀린 포스팅이 너무 많은데 블로그 쓰기는 왜이렇게 귀찮은걸까...하.. 그래도 힘내서 시작해보자. 

흠.. 이전에 했던 언팩에 조금 더 추가된 느낌이다. 


일단 프로그램부터 실행해보자.

흠 키를 찾아야 할 것 같다. 패킹되어있는지 확인 해보니 UPX 방식이다. 이전문제에서 언패킹 방법은 설명했으니 생략하겠다. 언패킹 후 올리디버거로 실행해보자. 

실행 후 문자열을 찾으면 딱봐도 감이 오실 거라 생각한다.  OEP랑 키 값을 더해서 입력해주면 끝.

흠.. 풀다보니 너무 쉬워서 왜이렇게 같은 문제만 내나.. 하고 찾아봤더니 이 문제에서는 다른 기술을 요

구하고 있는 것 같다. 언팩하지 않은경우 문자열로 찾을 수가 없는데 이 때 프로그램의 이벤트를 인식하

고 그 이벤트를 사용하는 코드로 이동하는 back to user mode를 사용할 수 있는 것 같다. 이 때 주의할

점은 프로그램이 멈춰있는 상태에서 이 모드를 써야한다는 것이다.

위와 같이 프로그램 실행 후 저 상태가 되면 확인버튼을 누르기전까진 프로그램이 멈춰있는 상태가 된다. 그럼이때 프로그램을 정지시켜 보자.

그러면 오른쪽 하단이 running에서 pause로 바뀌고 Alt+F9를 눌러주면 back to user mode 상태가 된다.

이 때 확인 버튼을 다시 눌러주면 이 이벤트를 사용한 코드로 넘어가게 된다. 이 때 키 비교와 관련된 코

드가 근처에 있을 것 같다. 위로 조금 올려보니 다음과 같이 원하는 코드를 찾을 수 있다.

처음엔 이 방식이 계속 안되서 뭔가하다가 찾아보니 64bit에서는 잘 동작이 안하는 것 같다. 그래서

32bit 설치해서 해보니 잘된다.. 하... 아까운 내시간.. basic이라 그런지 쉬운 개념들뿐이다 advanced

가면 좀 재밋어지려나..?


'Wargame > CodeEngn' 카테고리의 다른 글

code engn basic 8번  (0) 2018.01.28
code engn basic 7번  (0) 2018.01.28
code engn basic 5번  (0) 2018.01.28
code engn basic 4번  (0) 2018.01.28
code engn basic 3번  (0) 2018.01.28
블로그 이미지

JeonYoungSin

메모 기록용 공간

,