Key Point
1. 코드를 인크립트로 인해 볼 수 없음, Current Instruction을 보고 풀어야 함
2. 어떤 부분을 분석해야할지 포인트를 잘 잡아야함.
3. 내 입력 값이 어떻게 영향을 줄 수 있는가 ?
4. 시스템은 리틀엔디안이니까 디스어셈블러에 보이는 것과 반대로 입력하자.
문제 풀이 스포를 자제하기 위해 흰글씨 처리로 가렸습니다.
시작부터 끝까지 드래그 해주세요
시작
값 입력 후
pop sr
ret
add #0x6, sp : sp+0x6은 내가 입력한 값 첫번쨰 바이트에 위치임
cmp #0x70ab, -0x24(r4) : -0x24(r4) 또한 내가 입력한 첫번째 바이트 위치를 가리킴 (이부분이 핵심이다.)
jnz $+0xc : 0xc로 분기되면 프로그램이 그냥 종료된다.
? push #0x7f
? call #0x2464 : 0x2464 is Unlock the door....
add #0x20, sp
pop r4
pop r11
ret
clr r15
끝
'리버싱CTF > EmbededSecurity CTF' 카테고리의 다른 글
Whitehorse (0) | 2019.12.27 |
---|---|
Cusco (0) | 2019.12.24 |
Hanoi (0) | 2019.12.24 |
Sydney (0) | 2019.12.23 |
New Orleans (0) | 2019.12.23 |