5번 문제입니다.



PEID로 열면 UPX 패킹이 되어있는것을 알 수 있습니다.



upx툴로 언패킹 해줍니다.



언패킹 된 모습입니다.



언패킹 후 05.exe의 첫 실행화면입니다. name입력 부분과 serial 입력 부분이 있습니다. 

ollydbg로 열어서 분석해보겠습니다.



제일 먼저 문자열을 확인해보겠습니다. 그냥 실행 했을때 확인할 수 있는 문자열들이 보이면서 문제의 단서가 될만한 문자열도 보입니다. F8로 계속 디버깅을 하다가 입력 부분에서 호출되는 함수를 따라 들어가겠습니다.



사용자가 입력한 값과 프로그램에서 원하는 값이 EAX와 EDX에서 ESI와 EDI로 MOV된 후 비교됩니다. 

그리고 결과에 따라 분기문에서 경우가 나뉩니다.

따라서 문제에서 원하는 문자열을 입력하면 문제가 풀립니다.







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

CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12
CodeEngn basic Level 6 풀이  (0) 2016.09.11
CodeEngn basic Level 4 풀이  (0) 2016.09.11
CodeEngn basic Level 3 풀이  (0) 2016.09.11


5번 문제 화면입니다.



먼저 PEID로 05.exe를 보면 UPX 패킹이 되어있는것을 알 수 있습니다.



05.exe를 upx 툴을 이용해 언패킹한 후  실행 시키겠습니다.



-d 옵션을 주어 언패킹 합니다.



실행 첫 화면입니다. ollydbg로 실행합니다.



문자열을 검색하면 name 입력하는 칸과 serial을 입력하는 칸의 비교할 문자열이 나와있습니다.


name을 비교하는 함수를 직접 들어가보면 아래와 같습니다.





이를 각각 입력해주고 확인해 보겠습니다.



문제가 풀렸습니다.



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

CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12
CodeEngn basic Level 6 풀이  (0) 2016.09.11
CodeEngn basic Level 5 풀이  (0) 2016.09.11
CodeEngn basic Level 3 풀이  (0) 2016.09.11

3번 문제 입니다. 


exe파일을 다운받은 후 살펴보겠습니다.



실행하면 위와 같은 창이 나옵니다. 확인을 눌러 보겠습니다.



다음 화면에서 123을 입력한 후 Registrieren버튼을 누르면 Error 메시지박스가 나옵니다.



ollydbg에서 문자열을 검색하면 의심가는 부분이 나옵니다.



아마 Regcode에 입력한 값과 2G83*****(모자이크 처리)를 string compare 함수를 통해 비교해서 답을 출력해주는것 같습니다.


입력해보니 정상적으로 출력됩니다.

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

CodeEngn basic Level 8 풀이  (0) 2016.09.12
CodeEngn basic Level 7 풀이  (0) 2016.09.12
CodeEngn basic Level 6 풀이  (0) 2016.09.11
CodeEngn basic Level 5 풀이  (0) 2016.09.11
CodeEngn basic Level 4 풀이  (0) 2016.09.11

+ Recent posts