우리 나라에서는 최신 Google지도 업데이트를 사용할 수 없으므로 "Google Maps 5.4.0 apk"를 인터넷으로 검색하여 버전을 다운로드했습니다. 나는 실제로 그것을 찾았지만 지금은 이것이 실제로 시장에서와 같은 버전인지 어떻게 알 수 있는지 궁금합니다.
변경되지 않았 음을 어떻게 확인할 수 있습니까? 어떤 방식 으로든 앱에 서명되어 있습니까? 서명을 확인하는 방법이 있습니까?
우리 나라에서는 최신 Google지도 업데이트를 사용할 수 없으므로 "Google Maps 5.4.0 apk"를 인터넷으로 검색하여 버전을 다운로드했습니다. 나는 실제로 그것을 찾았지만 지금은 이것이 실제로 시장에서와 같은 버전인지 어떻게 알 수 있는지 궁금합니다.
변경되지 않았 음을 어떻게 확인할 수 있습니까? 어떤 방식 으로든 앱에 서명되어 있습니까? 서명을 확인하는 방법이 있습니까?
답변:
휴대 전화에 해당 앱을 설치하는 합법성에 대한 논쟁을 피하면서 검증 문제는 내가 오랫동안 이해해야했던 질문이며, 누가 서명했는지 확인할 수있는 방법을 찾아 보라고했습니다. APK.
Android 앱은 일반적인 방식으로 .jar 파일로 서명됩니다 (.apk는 실제로는 특별한 .jar 인 특수한 .jar입니다). 그러나 알려진 것이 없으면 인증서의 진위 를 추적 하는 것이 쉽지 않을 수 있습니다. 비교하십시오. 그것은 기본적으로 전화 자체가하는 일입니다-이미 휴대 전화에있는 것과 같은 당사자가 주장하는 것이 있는지 확인합니다-전화는 알 수없는 서명자가있는 것을 설치하지 않고 단지 (오브젝트 대상 / 명확한 응용 프로그램) 새로운 것이 무언가 주장하는 것과 일치하지 않을 때 명백한 위조의 데이터.
jarsigner와 keytool이 필요합니다. 나는 이것이 SDK 자체가 아닌 안드로이드 SDK의 전제 조건 인 JDK에서 나온 것이라고 생각합니다.
먼저 .apk에 포함 된 공개 키를 확인하려고합니다. 보통 이것은 META-INF / CERTS.RSA에 있지만 다른 파일에있을 수 있습니다-unzip -l이 알려줍니다. 당신은 당신이 그것에 대해 찾을 수있는 것을보고 싶어 :
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert
서명자가 주장하는 사람에 대한 많은 정보를 버릴 것입니다. 일부 인증서는 알려진 당사자가 서명 한 것으로 보이지만이를 추적하는 방법을 모른 채 다음과 같은 작업을 수행 할 수 있습니다.
unzip -p suspect.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
unzip -p knowngood.apk META-INF/CERT.RSA | keytool -printcert | grep MD5
동일한 인증서를 사용한 동일한 저자의 알려진 신뢰할 수있는 APK가있는 경우 동일한 MD5 합계를 가진 인증서로 충분하다고 가정합니다.
인증서를 신뢰하기로 결정했다고 가정하면 .apk 내의 각 파일에 서명하는 데 사용되었는지 확인할 수 있습니다
jarsigner -verbose -verify suspect.apk
(아카이브에 둘 이상의 .RSA 파일이있는 경우 -certs 플래그를 추가하여 각 파일에 서명하는 데 사용 된 인증서를 알려야합니다. 따라서 확인한 인증서를 확인할 수 있습니다)
무료 VirusTotal.com 바이러스 검사기에 APK를 업로드 할 수도 있습니다 . 그것은 APK에 대한 고유 한 해시를 생성하고 다른 사람들이 이미 그것을 업로드하기 위해 그것을 업로드 한 경우 (아마도) APK가 유효하다는 생각을 갖게 될 것입니다.
이 서비스는 또한 60 개가 넘는 바이러스 스캐너로 APK를 스캔하고 이미 발견 된 바이러스와 비슷한 서명이 있다고 생각하는지 알려줍니다.
m.google.com/maps
하면 다운로드 링크 나 비슷한 정보가 제공됩니까?