iOS 보안·바이너리, 로컬 LLM·RAG, 직접 만든 시스템을 만들며 남긴 기록.
iOS/바이너리
Xcode 뷰 디버거는 내가 빌드한 앱만 볼 수 있습니다. 앱스토어에서 받은 상용 앱의 뷰 계층을 Reveal로 보려면 RevealServer 프레임워크를 앱에 주입해야 하고, 오래돼 동작하지 않던 Reveal2Loader를 최신 Reveal에 맞게 고쳐야 했습니다.
iOS 앱이 배포되고 설치되는 IPA 파일의 정체와 앱 번들 구조. Info.plist, 두 겹의 코드 서명, 프로비저닝 프로파일, App Thinning을 그림과 함께 정리합니다.
iOS와 macOS 실행 파일 포맷 Mach-O를 헤더, 로드 커맨드, 세그먼트, 섹션 순서로 뜯어봅니다. 파일과 메모리 배치의 차이(ASLR), Fat Binary, dyld의 로딩 과정을 그림과 otool 출력으로 정리합니다.
이미 빌드되고 서명된 iOS 앱에 소스 없이 프레임워크를 주입하는 원리. Frameworks 배치, LC_LOAD_DYLIB로 main보다 먼저 실행시키기, 안쪽부터 재서명, 그리고 변조된 앱을 못 돌게 막는 방어까지 그림으로 정리합니다.
이미 빌드되고 서명된 iOS 앱에 소스코드 없이 커스텀 섹션을 추가하는 방법. LIEF로 그냥 넣으면 왜 앱이 죽는지, __LINKEDIT 앞에 넣어 참조를 지키는 방법, Fat Binary까지 다룹니다.
AI/RAG
흩어진 개인 파일을 못 찾겠어서 집 데스크톱 한 대(RTX 4070 Super 12GB)에 임베딩과 재정렬, 생성 스택을 로컬로 올린 과정. 12GB 예산 안에 세 모델을 욱여넣고 골든셋으로 검색 품질을 계측한 기록입니다.
개인 OSS
온디바이스 AI와 iOS 단축어로 집을 음성 제어하는 IntentCP를 만든 과정입니다. 자연어를 검증 가능한 한 줄 형식으로 바꿔 해석과 실행을 분리한 구조를 정리합니다.