ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • lvl 18
    Wargame/CodeEngn Basic RCE 2019. 1. 7. 13:32

    문제



    Name이 CodeEngn일때 Serial은 무엇인가 






    풀이


    → 프로그램을 실행한다. 아래와 같이 Name 값과 Key 값을 동시에 입력받은 후 확인하는 문제이다.







    → Name에 "CodeEngn" Serial에 "1234"를 입력한 후, 체크를 하면 잘못된 시리얼 번호라는 메시지가 나타난다.





    → 디스어셈블한 후, 분석한 결과 아래와 같은 문자열 비교 함수에서 시리얼 값을 체크하는 것으로 판단된다. 따라서, 해당 함수에 bp를 설정한 후, 디버깅을 시도한다.





    → 디버깅 시 사용자 입력 값은, Name 변수에는 "CodeEngn"을 Serial 변수에는 "1234"를 입력한다.






    → lstrcmpiA 함수에 전달되는 인자가 String1, String2가 있으며, String1 변수에는 사용자가 입력한 시리얼 번호인 "1234"가 스택에 쌓여 함수에 전달되는 것을 확인할 수 있다.




    → String2 변수에는 알 수 없는 번호가 스택에 쌓여 lstrcmpiA 함수에 전달되는 것을 보아 체크하는 시리얼 번호 값으로 정답으로 추정된다.





    → 디버깅을 종료하고 알아낸 값을 입력하면 다음과 같이 성공 메시지를 확인할 수 있다.


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

    lvl 20  (0) 2019.01.09
    lvl 19  (0) 2019.01.09
    lvl 17  (0) 2019.01.06
    lvl 16  (0) 2019.01.04
    lvl 15  (0) 2019.01.03

    댓글

Designed by Tistory.