Microcurruption Montevideo

7

Microcurruption의 Montevideo다.

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

whitehorse와 똑같이 풀 수 있다. 다만 다른 점은 strcpy로 오버플로우를 한다는 점이다. 인증 키 까지 똑같다. login 함수의 ret를 0x7f 인터럽트의 주소로 바꿔주고 0x7f00으로 인자를 맞춰주면 된다.

 

댓글 없음:

댓글 쓰기

Microcurruption Addis Ababa

11 Microcurruption의 Addis Ababa다. 4482: 3f40 0a00 mov #0xa, r15 4486: b012 5045 call #0x4550 <putchar> 448a: 8193 0...