https://github.com/6un3u/MachOhelper
MachO 파일이 메모리에 올라갔을 때, 특정 section명을 인자로 받아 해당 section의 메모리 주소를 찾는 프로그램.
iOS 앱의 무결성 검증에 사용하기 위해 개발했으며, Swift로 구현했다.
무결성 검증에는 다양한 방법이 있으며, 대표적인걸 꼽자면 아래 두 가지가 있다.
앱 서명 확인
기본적으로 서명하지 않은 IPA는 설치가 불가능하다. 애플은 자체적으로 앱 실행 시 CodeSigning을 활용하여 검증을 수행한다(참고).
코드 검증
MachO 파일의 Hash를 구하고, 해당 값을 검토하는 방식으로 코드의 무결성을 검증할 수 있다.
이 중 두번째 방안의 검증을 편하게 수행하기 위해 개발하였다. XCode에서 개발자 모드로 빌드하여 사용 가능. 정적 파일 내 섹션을 확인하는 건 추후 따로 개발 예정.