2011-04-25 5 views
7

앱 스토어를 통해 앱을 구입하고 사용자의 iPhone에 앱을 설치하면 원래 앱 번들로 Apple에 제출 한 원래 실행 파일과 비교하여 앱의 실행 파일이 바이트 단위로 동일합니까? 또는 다른 서명 (예 : 추가 서명 또는 암호화)이 있습니까?애플은 앱 스토어에 제출 된 애플 리케이션에서 iOS 애플 리케이션 실행 파일을 수정합니까?

전체 앱 번들이 아닌 실행 파일에만 관심이 있습니다.

특히, 같은 코드 것 ...

int main(int argc, char* argv[]) { 
    FILE* file = fopen(argv[0], "rb"); 
    // Read entire contents of executable file; calculate a hash value 
    // ... 
    fclose(file); 
} 

... 오리지널 아이폰의 외부 해시를 계산과 같은 해시, 실행 파일을 제출 계산?

예를 들어 위에서 설명한대로 SHA256 해시를 계산 한 다음 XCode에서 "Build and Run"을 사용하여 연결된 iPhone에서 실행하면 OSX의 터미널에서 openssl sha256 MyAppExecutableFile을 실행하여 SHA256 해시를 계산할 때와 동일한 결과를 얻게됩니다. 즉, XCode를 통해 앱을 설치하는 행위는 실행 파일을 변경하지 않습니다.

제 질문은 앱이 앱 스토어에 제출되고, 구매되고, 설치 될 때 여전히 유지되는지 여부입니다.

답변

17

응용 프로그램 실행 파일은 App Store에서 출시 될 때 Apple에 의해 암호화되므로, 자신의 바이너리에서 자동으로 체크섬을 실행하는 것은 좋지 않습니다. 암호화 된 바이너리의 파일 크기를 미리 알 수는 없습니다.

이진수 항상은 파일 시스템에서 암호화 된 상태로 남아 있으며 iPhone 루트 사용자 만이 이진 파일을 해독 할 수 있습니다. 당신은 아이튠즈와 앱 스토어에서 앱을 다운로드하면, 당신은 당신의 PC 또는 Mac에서 IPA를 열고 바이너리가 실제로 otool 실행하여 암호화 된 것을 볼 수 있습니다

otool -l <app binary> | grep cryptid 
crypt id 1 
(a value of cryptid 1 means the app is encripted) 

otool -l <app binary> | grep cryptsize 
12345678 
(size of the encrypted segment) 
+0

.ipa 또는 응용 프로그램 자체를 확인 했습니까? 필자는 애플이 .ipa 파일을 다운로드 할 때 .ipa 파일에 추가한다고 생각하지만, 컴파일시 코드 서명을 무효화하여 애플리케이션이 실행되지 못하게하기 때문에 애플리케이션 자체를 변경할 수 없다. – ughoavgfhw

+1

IPA/app 번들 내부의 바이너리를 확인했습니다. 서명은 애플리케이션 번들 내부의 별도 파일에 저장되기 때문에 Apple은 앱을 중단하지 않고 실제로 애플리케이션을 변경할 수 있습니다. 그들은 제출 시간에 서명의 유효성을 확인한 다음이를 버리고 어떤 이유로 든 바이너리를 약간 변경 한 다음 자체 마스터 인증서로 서명합니다. –

+1

IPA 번들의 앱이 암호화되어 저장되어 있다고 들었지만 기기에 '설치'되어있는 경우 해독 당할 수 있습니다. (명백하게 그것이 어떤 "크래킹"소프트웨어가 작동하는 방법입니다 - 앱을 설치 한 다음 암호 해독 된 실행 파일을 장치에서 복사합니다.) 그러면 원래 파일로 되돌릴 수 있습니까? 이 경우에 테스트 할 수있는 방법이 있는지 궁금합니다. 나는 당신이 jailbroken 아이폰에 ssh하고 그것을 벗어난 응용 프로그램 실행 파일을 복사 한 다음 동일한 버전인지 확인해 볼 수 있을까요? – JohnSpeeks

2

응용 프로그램은 또한 당신의 서명을 박탈하고 애플이 서명했다. 이는 제출 한 응용 프로그램 바이너리에서 "codesign -vvvvd"를 실행하고 저장소에서 다운로드 한 응용 프로그램 바이너리의 "codesign -vvvvd"출력과 비교하여 확인할 수 있습니다.

이 때문에 해시가 일치하지 않습니다.

관련 문제