ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Montevideo
    Wargame/Microcorruption 2014. 7. 31. 16:41

    login 함수를 살펴보면, 전체적으로 이전레벨인 Whitehorse와 별반 다를게 없다.

    1. 0x2400 부분에 사용자가 입력한 값을 쓴다.

    2. 위에서 입력받은 값을 strcpy를 이용해 sp가 가리키는 곳에 복사한다.

    3. memset을 이용해 0x2400 부분에 사용자가 입력한 값을 0으로 초기화한다.

    다만 memset이 추가되어, 0x2400 부분의 값들을 모두 0으로 초기화 하는것을 알 수 있다.

    44f4 <login>
    44f4:  3150 f0ff      add	#0xfff0, sp
    44f8:  3f40 7044      mov	#0x4470 "Enter the password to continue.", r15
    44fc:  b012 b045      call	#0x45b0 <puts>
    4500:  3f40 9044      mov	#0x4490 "Remember: passwords are between 8 and 16 characters.", r15
    4504:  b012 b045      call	#0x45b0 <puts>
    4508:  3e40 3000      mov	#0x30, r14
    450c:  3f40 0024      mov	#0x2400, r15
    4510:  b012 a045      call	#0x45a0 <getsn>
    4514:  3e40 0024      mov	#0x2400, r14
    4518:  0f41           mov	sp, r15
    451a:  b012 dc45      call	#0x45dc <strcpy>
    451e:  3d40 6400      mov	#0x64, r13
    4522:  0e43           clr	r14
    4524:  3f40 0024      mov	#0x2400, r15
    4528:  b012 f045      call	#0x45f0 <memset>
    452c:  0f41           mov	sp, r15
    452e:  b012 4644      call	#0x4446 <conditional_unlock_door>
    4532:  0f93           tst	r15
    4534:  0324           jz	#0x453c <login+0x48>
    4536:  3f40 c544      mov	#0x44c5 "Access granted.", r15
    453a:  023c           jmp	#0x4540 <login+0x4c>
    453c:  3f40 d544      mov	#0x44d5 "That password is not correct.", r15
    4540:  b012 b045      call	#0x45b0 <puts>
    4544:  3150 1000      add	#0x10, sp
    4548:  3041           ret


    하지만 memset이 끝난 시점에 break point를 걸어 확인해보면, 0x2400 부분은 모두 0으로 초기화 되었지만

    sp가 가리키는 부분에 복사된 값들은 멀쩡한 것을 볼 수 있다.

    또한 이 값들이 RET를 덮으므로 풀이방법은 전레벨과 동일하다.


    그러므로 키는 이전레벨과 동일한 [ 16 Byte의 아무런 값 ] + [ INT를 Call하는 주소 ] + [ 7F ] 가 된다.

    4141414141414141414141414141414160447f 로 클리어

    'Wargame > Microcorruption' 카테고리의 다른 글

    Jakarta  (0) 2014.08.11
    Santa Cruz  (0) 2014.08.04
    Whitehorse  (0) 2014.07.31
    Johannesburg  (0) 2014.07.31
    Reykjavik  (0) 2014.07.31
Designed by Tistory.