iOS 앱 리버싱은 안드로이드와 목표는 같지만(로직 파악, 보호 우회), 애플의 코드 서명 강제라는 완전히 다른 전제 위에서 시작해야 한다는 게 가장 큰 차이다. 구조 레벨: IPA와 MachO I…
2026-07-19 19:34:18 · 조회 5크랙미(Crackme)를 마주하고 무작정 디버거부터 켜면 방향 없이 헤매기 쉽다. 이 글은 지금까지 다룬 정적/동적 분석, 어셈블리 읽기 기법을 하나의 문제 해결 순서로 엮는다. 1단계: 정적 분석…
2026-07-19 19:34:18 · 조회 5정적 분석을 "실행 안 하고 코드만 보는 것"이라고만 알면, 실제로 무엇을 순서대로 봐야 하는지가 안 잡힌다. 이 글은 바이너리 파일 하나가 실제로 어떤 구조로 이루어져 있고, 그 구조를 어떤 순서…
2026-07-19 19:32:50 · 조회 5x8664 어셈블리를 "명령어를 외우는 것"으로 접근하면 금방 지친다. 실제로 리버싱에서 필요한 건 몇 안 되는 패턴 — 함수 프롤로그/에필로그, 분기 조건, 메모리 접근 방식 — 을 눈에 익혀서 …
2026-07-19 19:32:50 · 조회 5디버거를 "브레이크포인트 걸고 F5 누르는 도구"로만 알면, gdb가 실제로 다른 프로세스의 실행을 어떻게 멈추고, 메모리를 어떻게 들여다보는지를 놓치게 된다. 이건 커널이 제공하는 단 하나의 시스…
2026-07-19 19:32:50 · 조회 5안티 디버깅을 "디버거 탐지 함수 몇 개"로 알면, 각 기법이 정확히 어떤 커널/CPU 메커니즘의 특성을 되짚어 이용하는지를 놓치게 된다. 동적 분석 글에서 다룬 ptrace 원리를 알아야 왜 각 …
2026-07-19 19:32:50 · 조회 6패킹을 "실행 파일을 압축한 것"이라고만 알면, 압축된 파일이 어떻게 "압축이 풀린 뒤에도 정상 실행"되는지, 그리고 왜 정적 분석 도구(strings, objdump)가 패킹된 바이너리 앞에서는 …
2026-07-19 19:32:50 · 조회 2Stack Canary를 "랜덤 값 하나 넣어서 오버플로우를 막는 기법"이라고만 알면, 그 랜덤 값이 정확히 어디서 오고, 왜 이게 "오버플로우를 막는" 게 아니라 "오버플로우를 탐지만 하는" 기법…
2026-07-19 19:31:03 · 조회 7NX(NoeXecute)와 그걸 우회하는 Returntolibc/ROP를 이해하려면, "스택에 코드를 못 심게 막는다"는 설명보다 한 단계 더 내려가야 한다 — 이건 소프트웨어가 아니라 CPU의 M…
2026-07-19 19:31:03 · 조회 6ASLR(Address Space Layout Randomization)을 "주소를 랜덤화하는 보호 기법"이라고만 알면, 그 랜덤화가 정확히 커널의 어느 단계에서 이뤄지는지, 그리고 왜 정보 유출 …
2026-07-19 19:31:03 · 조회 4