ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CodeEngn Advance RCE 4
    $ 리버싱 $/CodeEngn Advance RCE 2019. 7. 18. 01:16

     

    대부분의 문제들이 Name에 따른 Serial 값을 구하는 문제입니다.

     

    문제 파일을 실행해 보겠습니다.

     

     맞지 않으면 다음과 같은 메세지 창이 나옵니다.

     

     

    Incalid Serial! 이라고 뜹니다.

     

    이제 분석을 해보겠습니다.

    분석을 해보려고 하니... 패킹이 되어있는 것 같습니다. 

     

    여기서 2가지의 방법이 있습니다.

     

    1. dump를 이용해서 언패킹후에 문제풀기!

    2. 그냥 패킹한 상태에서 함수 bp 걸고 풀기!

     

    두가지 방법을 전부 소개해 드리겠습니다.

     

    1번째 방법!

     

    먼저 실행을 하고 f8을 한번 누르면 다음과 같은 화면이 뜹니다.

     

    4011C2에서 BP걸고 루프를 빠져 나와서 F8 을 한번더 누르면 다음과 같은 곳으로 가게됩니다.

     

    여기가 OEP 인것 같습니다.

     

    여기에서 dump를 떠보겠습니다.

     

    위와 같이 Rebuild Import 는 체크를 해제 해주셔도됩니다.

     

    Dump를 뜨면 생성되는 파일을 올리디버거로 열어보면 다음과 같이 언패킹된 파일이 됩니다.

     

    401036에 BP를 걸고 분석을 시작해 보겠습니다.

     

    아래쪽을 보면 문자열을 비교하는 부분이 있습니다.

     

    401168에 BP걸고 값을 입력하면 다음과 같이 나오게 됩니다.

     

    Serial : LOD-59919-A0024900

     

    ============================================================================

     

    2번째 방법!

     

    먼저 실행을 하고 f8을 한번 누르면 다음과 같은 화면이 뜹니다.

     

    위의 사진처럼 값을 비교하는 함수인 lstrcmpA에 BP를 걸고 F9를 누르면 다음과 같이 창이 뜹니다.

    CodeEngn, 1234를 입력하고 stack에 들어간 값을 확인하면 다음과 같습니다.

     

     

    1234 와 LOD-59919-A0024900과 비교를 합니다.

     

    LOD-59919-A0024900

     

     

    '$ 리버싱 $ > CodeEngn Advance RCE' 카테고리의 다른 글

    CodeEngn Advance RCE 6  (0) 2019.07.19
    CodeEngn Advance RCE 5  (0) 2019.07.18
    CodeEngn Advance RCE 3  (0) 2019.07.17
    CodeEngn Advance RCE 2  (0) 2019.07.16
    CodeEngn Advance RCE 1  (0) 2019.07.16

    댓글

Designed by Tistory.