비기너를 위한 CTF인데 너무 어렵게 생각했다....알고보면 정말 단순한 문제!
하지만 삽질을 통해 어셈블리어 및 디버거 사용에 조금 익숙해졌다.
Key 포인트 정리3 0024 fa23 3150 9cff b012 7e44
1.#이 붙으면 상수로 사용, #이 없으면 메모리에 저장된 값을 사용한다.
2.@이 붙으면 레지스터에 저장된 주소가 가리키는 값을 사용한다. (레지스터 앞에 붙는 듯)
3.연사자 뒤에 .b가 붙으면 한바이트만 연산한다는 의미
2.메모리 덤프 offset 위치: 순서 그대로 왼쪽에서 오른쪽으로 읽으면 됨.
4400 4401 4402 4404
4400: 31 40 00 44
mov #0x2400, r15 r15에 상수 0x2400을 복사함.
mov.b #0x23, 0x0(r15) r15의 첫번째 바이트에 0x23를 복사함
mov.b #0x6d, 0x1(r15) r15의 두번째 바이트에 0x6d를 복사함
cmp.b @r13, 0x2400(r14) 0x2400에 위치한 한바이트 값과 r13에 저장된 주소가 가리키는 한 바이트 값을 비교함.