코드엔진 Basic RCE L15 Write up

War Game

2019. 9. 29. 15:43

반응형

또 Name이 CodeEngn일 때 시리얼값을 구하는 문제이다.

틀리면 Try Again !을 출력한다.

올리로 열고 문자열 검색을 해주면 바로 위쪽에 성공문자열로 보이는 문자열이 보인다.

바로 이동해주자.

무작정 분기문과 비교문에 BP를 걸어주고 실행해주자.

EAX의 3039는 10진수로 12345이다. EAX에 시리얼이 저장되는걸 알게되었다.

DS에는 10진수로 24928이 저장되었다. 저번 문제처럼 그냥 DS에 저장된 값을 10진수로 변형한 24938을 넣어보자.

역시 이건 아니다.

이번에는 바로 위쪽에 있는 어떤 구문의 분기문에 BP를 걸어주고 실행해보자.

DS에는 Name값이 들어가게 된다.

혹시모르니 022EBAA0을 적어두겠다.

이제 각 레지스터와 세그멘트의 역할을 알았다.

DS = Name

EAX = 시리얼

음? 

계속 반복하면 할수록 한 글자씩 뭔가 바꿔주는 것 같다.

이 반복은 아마 CodeEngn 즉 8번 반복되는 듯 하다.

SHL EDX, 3을 보아 비트를 3번 왼쪽으로 이동시키는 거라는 킹리적 갓심이 든다.

시리얼 해독을 하다가 머리가 아파서 그냥 넘어갔다.

다시 그 구간이고, 여기서 주목해야할 점은 EAX와 45B833와 비교한다는 점이다.

EAX는 우리가 입력한 시리얼 값이니, 45B833에는 정답인 시리얼이 있을것이다.

606100 리틀엔디안이니 6160이다.

10진수로하면

아.. 처음부터 맞추는게 가능했는데 멍청하게 249'3'8이라고 적었다.

오타를 조심하자..

반응형

'War Game' 카테고리의 다른 글

Do it! 점프 투 파이썬 후기  (0) 2019.11.24
코드엔진 Basic RCE L16 Write Up  (0) 2019.09.29
코드엔진 Basic RCE L14 Write Up  (0) 2019.09.29
코드엔진 Basic RCE L13 Write Up  (0) 2019.07.31
코드엔진 Basic RCE L12 Write Up  (0) 2019.07.16