ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • New Orleans
    Wargame/Microcorruption 2014. 7. 30. 16:18

    우선 Main 함수를 살펴보면 create_password라는 함수가 있다.

    4438 <main>
    4438:  3150 9cff      add	#0xff9c, sp
    443c:  b012 7e44      call	#0x447e <create_password>
    4440:  3f40 e444      mov	#0x44e4 "Enter the password to continue", r15
    4444:  b012 9445      call	#0x4594 <puts>
    4448:  0f41           mov	sp, r15
    444a:  b012 b244      call	#0x44b2 <get_password>
    444e:  0f41           mov	sp, r15
    4450:  b012 bc44      call	#0x44bc <check_password>
    4454:  0f93           tst	r15
    4456:  0520           jnz	#0x4462 <main+0x2a>
    4458:  3f40 0345      mov	#0x4503 "Invalid password; try again.", r15
    445c:  b012 9445      call	#0x4594 <puts>
    4460:  063c           jmp	#0x446e <main+0x36>
    4462:  3f40 2045      mov	#0x4520 "Access Granted!", r15
    4466:  b012 9445      call	#0x4594 <puts>
    446a:  b012 d644      call	#0x44d6 <unlock_door>
    446e:  0f43           clr	r15
    4470:  3150 6400      add	#0x64, sp


    이 부분에서 0x2400 주소부분에 값들을 하나씩 집어넣는다.

    447e <create_password>
    447e:  3f40 0024      mov	#0x2400, r15
    4482:  ff40 5a00 0000 mov.b	#0x5a, 0x0(r15)
    4488:  ff40 6d00 0100 mov.b	#0x6d, 0x1(r15)
    448e:  ff40 6b00 0200 mov.b	#0x6b, 0x2(r15)
    4494:  ff40 3900 0300 mov.b	#0x39, 0x3(r15)
    449a:  ff40 4100 0400 mov.b	#0x41, 0x4(r15)
    44a0:  ff40 3f00 0500 mov.b	#0x3f, 0x5(r15)
    44a6:  ff40 3c00 0600 mov.b	#0x3c, 0x6(r15)
    44ac:  cf43 0700      mov.b	#0x0, 0x7(r15)
    44b0:  3041           ret


    이후 check_password 함수에서 사용자가 입력한 값들과 create_password 부분에서 생성한 값들을 하나씩 비교한다.

    44bc <check_password>
    44bc:  0e43           clr	r14
    44be:  0d4f           mov	r15, r13
    44c0:  0d5e           add	r14, r13
    44c2:  ee9d 0024      cmp.b	@r13, 0x2400(r14)
    44c6:  0520           jne	#0x44d2 <check_password+0x16>
    44c8:  1e53           inc	r14
    44ca:  3e92           cmp	#0x8, r14
    44cc:  f823           jne	#0x44be <check_password+0x2>
    44ce:  1f43           mov	#0x1, r15
    44d0:  3041           ret
    44d2:  0f43           clr	r15
    44d4:  3041           ret


    고로 create_password에서 생성한 5a6d6b39413f3c가 키값. (끝부분에 null은 자동으로 입력되므로)

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

    Reykjavik  (0) 2014.07.31
    Cusco  (0) 2014.07.31
    Hanoi  (0) 2014.07.30
    Sydney  (0) 2014.07.30
    Microcorruption 소개  (0) 2014.07.30
Designed by Tistory.