pwnable-leg
이 문제는....모르는 개념이 있어서 찾아보면서 했습니다. 어셈블리를 읽을 줄 아는데 처음보는 레지스터들이 많이나와서 어려웠던 문제 였습니다.
함수의 리턴 값은 r0에 저장된답니다.
pc는 다다음 실행될 명령??을 가리킨다고 해요. 다음 실행될 명령, 다다음 실행될 명령 말이 많은데 다다음 으로 했을 때 정답이 됬습니다.
<key1>
0x00008cdc <+8>: mov r3, pc 0x00008ce0 <+12>: mov r0, r3
즉 r3는 8ce0+4=8ce4
<key2>
0x00008d04 <+20>: mov r3, pc 0x00008d06 <+22>: adds r3, #4 0x00008d08 <+24>: push {r3} 0x00008d0a <+26>: pop {pc} 0x00008d0c <+28>: pop {r6} ; (ldr r6, [sp], #4) 0x00008d10 <+32>: mov r0, r3
즉 r3은 다음에 실행될 명령이 담긴+4인 8d08와 +4=8d0c
<main>
0x00008d7c <+64>: bl 0x8d20 <key3>
<key3>
0x00008d28 <+8>: mov r3, lr 0x00008d2c <+12>: mov r0, r3
bl명령어 등으로 점프했을 때 다시 돌아와서 실행 할 주소를 가리키는 것이 lr이라고 합니다.
즉 8d80이 됩니다.
8ce4+8d0c+8d80=답
0 개의 댓글