앱 스토어를 통해 앱을 구입하고 사용자의 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를 통해 앱을 설치하는 행위는 실행 파일을 변경하지 않습니다.
제 질문은 앱이 앱 스토어에 제출되고, 구매되고, 설치 될 때 여전히 유지되는지 여부입니다.
.ipa 또는 응용 프로그램 자체를 확인 했습니까? 필자는 애플이 .ipa 파일을 다운로드 할 때 .ipa 파일에 추가한다고 생각하지만, 컴파일시 코드 서명을 무효화하여 애플리케이션이 실행되지 못하게하기 때문에 애플리케이션 자체를 변경할 수 없다. – ughoavgfhw
IPA/app 번들 내부의 바이너리를 확인했습니다. 서명은 애플리케이션 번들 내부의 별도 파일에 저장되기 때문에 Apple은 앱을 중단하지 않고 실제로 애플리케이션을 변경할 수 있습니다. 그들은 제출 시간에 서명의 유효성을 확인한 다음이를 버리고 어떤 이유로 든 바이너리를 약간 변경 한 다음 자체 마스터 인증서로 서명합니다. –
IPA 번들의 앱이 암호화되어 저장되어 있다고 들었지만 기기에 '설치'되어있는 경우 해독 당할 수 있습니다. (명백하게 그것이 어떤 "크래킹"소프트웨어가 작동하는 방법입니다 - 앱을 설치 한 다음 암호 해독 된 실행 파일을 장치에서 복사합니다.) 그러면 원래 파일로 되돌릴 수 있습니까? 이 경우에 테스트 할 수있는 방법이 있는지 궁금합니다. 나는 당신이 jailbroken 아이폰에 ssh하고 그것을 벗어난 응용 프로그램 실행 파일을 복사 한 다음 동일한 버전인지 확인해 볼 수 있을까요? – JohnSpeeks