리버싱CTF 23

Sydney

리틀엔디안 방식과 오프셋 사용에 대한 이해가 필요했음. 알고보면 쉬운 문제! Key point 1.리틀엔디안 방식은 디스에셈블러와 사용자가 입력한 값과 반대로 표기됨 디스어셈블러메모리 저장된 값(=사용자 입력 값) 디스어셈블러상 0xABCDEFGH => 메모리 덤프에서는 0xBADCFEHG 로 표기됨 2. 오프셋 사용 cmp #0x454e, 0x0(r15) r15레지스터에 저장된 주소부터 오프셋 0의 위치의 값부터 상수 0x454e를 비교함 cmp #0x2e5d, 0x2(r15) r15레지스터에 저장된 주소부터 오프셋 2의 위치의 값부터 상수 0x2e5d를 비교

New Orleans

비기너를 위한 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의 ..