반응형
[leg]
소스코드를 보면 흠... r3 r0?? arm??!!
ARM이네요
소스코드를 보면 key1,2,3의 결과값이 사용자의 입력값이 되면 됩니다.
ARM 조사해보니깐 pc(programcouter)의 값이 r0에 남는다고 하네요 (r0가 리턴) 그리고 pc는 사용된 주소의 +4 byte를 가진답니다.
힌트로 주어진 asm코드를 보면
pc값을 r3에 넣어주고 r3를 r0에 넣어주네요. 그렇다면
key1에서 r0에 8ce4가 들어가겠군요
key 2에서는 pc를 r3에 넣어준후, r3에 #4를 더한 후, r0에 넣어주네요 그렇다면
8d04 + 4 + 4 = 8d0c네요
마지막으로 key 3에서는 lr레지스터를 r3에 넣고 r3값을 r0에 넣습니다.
lr은 함수 호출시 리턴될 값이므로
메인함수를 보면
8d80입니다.
그렇다면 8ce4 + 8d0c + 8d80 = 사용자 입력값이 되면 됩니다.
반응형
'Security > Pwnable' 카테고리의 다른 글
pwnable.kr [Toddler's Bottle]->[mistake] (0) | 2021.08.11 |
---|---|
pwnable.kr [Toddler's Bottle]->[blackjack] (0) | 2021.08.11 |
pwnable.kr [Toddler's Bottle]->[input] (0) | 2021.08.11 |
pwnable.kr [Toddler's Bottle]->[random] (0) | 2021.08.11 |
pwnable.kr [Toddler's Bottle]->[passcode] (0) | 2021.08.11 |