ABOUT ME

-

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


    OEP를 구하라고 되어있네요 

    OEP란 쉽게 말해서 프로그램이 구동되는 첫 시작점을 이야기 합니다. 
    프로그래밍으로 비유 하자면 c언어의 main함수의 첫 주소가 되겠네요.!

    파일을 확인해 보면

    UPX 되어있는 파일입니다. 

    UPX되어 있다는 것은 이문제를 풀수 있는 방법이 2가지 입니다.

    1. 패킹 되어있는 저 파일을 언팩 하여 실행하면 바로 OEP가 보인다.
    2. 패킹 되어있는 저 파일을 언팩 하지 않고 직접 디버거를 통해서 OEP까지 찾아 간다.

    1번 방법은 그냥 UPX 프로그램을 사용하면 되기 때문에 2번 방법으로 풀어보겠습니다.

    첫 올리디버거로 열어보면 다음과 같이 나옵니다.

    01020C40에서 F8을 누르면 01020C41로 이동하면서 PUSHAD 가 실행 되면서 ESP 값이 바뀐 것을 알수 있습니다.
    Follow in Dump를 누르면 Hex Dump 부분으로 이동하게 되는데 

    맨첫 주소에 bp를 걸어 두겠습니다.
    그리고 F9를 이용해서 한번에 이동하면 다음과 같은 곳으로 이동하게 됩니다.
    저 JMP해서 도착하는 01012475가 OEP입니다.

    한번 들어가 보면
    주변에 API들이 보이는 것을 보니 잘 찾아 온것 같습니다.

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

    CodeEngn Basic RCE 10  (0) 2019.05.06
    CodeEngn Basic RCE 9  (0) 2019.03.27
    CodeEngn Basic RCE 7  (0) 2019.03.27
    CodeEngn Basic RCE 6  (0) 2019.03.27
    CodeEngn Basic RCE 5  (0) 2019.03.27

    댓글

Designed by Tistory.