ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CodeEngn Basic RCE 7
    $ 리버싱 $/CodeEngn Basic RCE 2019. 3. 27. 00:42


    serial을 입력 해서 푸는 문제인 것 같습니다.

    codeengn 7문제 이지만 abex' 5th crackme 문제를 그냥 가져온것 같네요.

    시리얼이 틀리면 나오는 문구 

    c드라이브의 이름이 CodeEngn일때 시리얼이 생성될때 CodeEngn이 어떤거로 변하는지 보라고 했으니 다음과 같이 이름을 바꿔 보겠습니다.

    위의 문구를 이용해서 main을 찾을 수 있겠네요. 올리디버거를 이용해서 main을 찾아보겠습니다.

    위의 상자는 serial값이 틀렸을때
    아래의 상자는 serial 값이 맞았을때 실행 되는 구문입니다.

    2개를 구분하기 위한 분기점은 제가 클릭 해둔 004010FC에 있습니다.
    EAX를 0 과 비교후에 00401117로 갈지 그냥 내려갈지 분기 하는것 같습니다

    CMP 에서 BP를 걸어 두겠습니다. 그위쪽 0040106C에 BP를 걸어서 CMP까지 내려오는 과정을 확인해 보겠습니다. 

    004010AD까지 내려가 본 결과 4562-ABEX라는 문자열이 CodeEngn뒤에 붙은걸 보니 c드라이브 이름 뒤에 붙는것 같습니다.

    여기서 찾아야 하는것은 CodeEngn이라고 입력해둔 문자열이 어떻게 변하는지를 캐치 하면 될 것 같습니다.

    아마 CodeEngn은 004010AF 부터 004010CD 까지 에서 반복하면서 문자열이 변할것 같습니다.
    40225C주소에 어떤 값이 들어있나 보았는데 C가 들어있습니다.

    40225C : 43(C)
    40225D : 6F(o)
    40225E : 64(d)
    40225F : 65(e)

    처럼 되어 있습니다. 

    004010AD에서 DL에 2라는 값을 넣고, 004010CB에서 하나씩 감소시키니 2번 반복하겠네요

    그러면 다음과 같이 값이 바뀌겠네요
    40225C : 45(E)
    40225D : 71(q)
    40225E : 66(f)
    40225F : 67(g)

    문자열은 CodeEngn에서 EqfgEngn이 되는것 같습니다.

    예상한 대로 바뀐 것을 볼수있습니다.


    지금까지 serial값이 변하는 값을 보면

    CodeEngn  ->  CodeEngn4562-ABEX  ->  EqfgEngn4562-ABEX  ->  L2C-5781EqfgEngn4562-ABEX 처럼 변화 했습니다.

    결국에는 Serial 값은 L2C-5781EqfgEngn4562-ABEX 입니다.

    입력을 한번 해보겠습니다.


    맞네요! C드라이브의 이름에 따라서 달라지는 것 이였습니다.

    CodeEngn -> EqfgEngn 으로 변화 했습니다.

    다시 C드라이브를 되돌려 줌으로써 마무리 되엇습니다.

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

    CodeEngn Basic RCE 9  (0) 2019.03.27
    CodeEngn Basic RCE 8  (0) 2019.03.27
    CodeEngn Basic RCE 6  (0) 2019.03.27
    CodeEngn Basic RCE 5  (0) 2019.03.27
    CodeEngn Basic RCE 4  (0) 2019.03.27

    댓글

Designed by Tistory.