zj3t

email: euntaejang@gmail.com

Latest Posts

pwnable-leg

By 오후 3:14 ,

이 문제는....모르는 개념이 있어서 찾아보면서 했습니다. 어셈블리를 읽을 줄 아는데 처음보는 레지스터들이 많이나와서 어려웠던 문제 였습니다.



함수의 리턴 값은 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=답



You Might Also Like

0 개의 댓글