동일한 응용 프로그램의 경우 다음이 있습니다.
- 앱 스토어 의 APK
- 동일한 버전 의 소스 코드 라고 주장되는 것 . 꽤 일반적인 Gradle 빌드 스크립트 및 구조.
APK가 해당 소스 코드에서 실제로 빌드되었는지 여부 를 확인 하고 싶습니다 .
확인하는 방법?
노트:
- APK가 난독 처리되지 않았습니다.
- 다른 사람의 서명을 믿을 이유가 없습니다. 소스 코드 만 신뢰합니다.
- 나는 이미 나 자신을 위해 앱을 만들었지 만 APK가 정상인지 여부를 알고 싶다.
- Linux 명령 줄 도구를 사용하는 것이 좋지만 모든 도구가 정상입니다.
@Izzy : " 같은 라이브러리 버전 ": API 버전은 Gradle 스크립트의 매니페스트 및 라이브러리 버전으로 작성되므로 해당 부분이 정상이어야합니다. 무시할 수있는 파일 / 폴더 목록을 사용하면 큰 대답을 얻을 수 있습니다 (실제 명령 줄의 보너스).
—
Nicolas Raoul
집에있는 컴퓨터를 사용하고 있다면 현재 할 수 없습니다. 그러나 "명예로운 대답"이 되려면 먼저 직접 시도해야합니다. 8..10h :)
—
Izzy
@Izzy
—
Grimoire
diff
방법은 깔끔한 것 같다 ...하지만 그것을 컴파일하는 동안 앱 스토어의 사람은 APK를 무엇 난독 경우?
.apk
파일을 리버스 엔지니어링 한 다음 결과 디렉토리에 대해 diff를 실행하십시오. 그러면 서명 만 있어야합니다 (명백한 이유로 일치 할 수 없음). 생각하기 : 단순히.apk
파일의 압축을 풀고 이진 diff를 수행하면 동일하게 수행됩니다. 물론 두 곳 모두 컴파일 할 때 같은 라이브러리 버전을 사용해야합니다. :)