마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서명 바꿔치기된 apk 구분법

0 추천
얼마 전 구글 플레이에 앱을 등록하였습니다. 그로부터 20여일이 지난 오늘, 구글에서 제 앱 이름으로 검색해보니 제가 등록하지도 않았던 타국의 마켓에 등록된 제 앱을 확인할 수 있더군요. 다음 사이트들 입니다.

1apk.co
appagg.com
9apps.com
ninestore.ru
9apps.co.id
androidapkbaixar.com

일전에 이런 이야기를 들었는데요. 새로 개발된 앱을 서명만 바꿔서 다른 마켓에 먼저 등록해버리는 놈들이 있다고요. 개발자 이름은 제 이름으로 되어 있긴 했지만 아무래도 찜찜하여 제 서명으로 릴리즈된 apk 가 맞는지 확인하고 싶습니다. 구분하는 방법이 있다면 그 방법 좀 알려주시면 감사하겠습니다.
THK (2,360 포인트) 님이 2017년 7월 8일 질문

1개의 답변

+1 추천
 
채택된 답변
안녕하세요.

위의 사이트들은 대체로 play 스토어에서 apk를 다운로드 받아서 자신들의 스토어 서비스를 제공하는 곳 아닌가요?? 제가 알기론 특정 중국 스토어를 제외하고는 별로 없는 것으로 알고 있습니다.

아래는 apk의 인증 키를 구분하는 방법입니다.  

아래의 명령으로 확인할 수 있습니다.

$ jarsigner -verify -verbose -certs my_application.apk

 

위 명령으로 아래의 결과들이 주루룩 나옵니다. 여기에서 X.509 줄의 CN, OU, O.. 등의 정보를 확인하시면 쉽게 누구의 키로 사인되었는지 알 수 있습니다.

 

sm     17315 Fri Nov 30 00:00:00 PST 1979 trusted-certs.raw

 

      X.509, CN=xxxxxxxx, OU=Unknown, O=xxxxxxx, L=xxxxxxxx, ST=CA, C=01

      [certificate is valid from 1/12/16 1:26 AM to 5/30/43 2:26 AM]

      [CertPath not validated: Path does not chain with any of the trust anchors]
mcsong (44,040 포인트) 님이 2017년 7월 10일 답변
THK님이 2017년 7월 11일 채택됨
자세한 설명 감사합니다. 제가 이런 쪽의 경험이 처음이다 보니 위 사이트들이 제대로 된 사이트인지를 잘 모릅니다. 확인해보니 제가 구글 플레이 콘솔에서 직접 받은 apk 와 해당 사이트들에서 다운받은 apk 의 서명에 차이가 있더군요. 우선 원본 apk의 서명 관련 파일들 이름이 META-INF/CERT.RSA, META-INF/CERT.SF인데, META-INF/GOOGPLAY.SF, META-INF/GOOGPLAY.RSA로 바뀐 것을 확인할 수 있었습니다. 서명 파일을 만든 시각도 원본하고 다르구요. CN, OU, O, L, ST 값들도 제가 서명 만들 때 작성한 것과 달리 마치 구글 본사인냥 CN=Android, OU=Android, O=Google Inc., L=Mountain View, ST=California, C=US 라고 되어있네요. 이정도면 바꿔치기 당한 것 맞죠? 해당 사이트에 게시 내려달라는 요청 메일 보낼까 합니다.
한 가지 더 궁금한 것이 생겼습니다. 제 앱은 인앱 결제도 없고 철저하게 광고로만 수익을 발생시키는 앱인데, 서명을 바꿔치기 하더라도 코드 상에 광고 ID를 바꾸지 않는 이상 해커가 얻는 이익은 없을 것 같은데요. 코드상의 광고 ID도 수정해서 올리는 경우가 있는지 궁금합니다. 참고로 광고 ID 는 string.xml 리소스에 두고 불러오는 방식으로 처리하였습니다.
최신 질문에 답글을 달았습니다. ^^
...