공식 웹사이트
1. 개요
안드로이드 앱의 불법 복제, 인앱결제 우회, 광고 제거, 라이센스 인증 제거 용도로 만들어진 앱. 루팅 여부와 상관없이 사용 가능하긴 하나 루팅하지 않았을 경우 수정된 APK 생성만 사용할 수 있다.유료 애플리케이션의 라이선스 스푸핑과 구글 결제 프록시 서버/패치된 Google Play 앱/Xposed 모듈 등을 통한 인앱결제(In-App Purchase; IAP) 바이패스, 광고 삭제,무료현질 등 복잡한 앱 크랙을 쉽게 사용할 수 있도록 한다.
사용자 대부분은 부분유료화 게임의 구매 요소들을 현금 소비 없이 사용하기 위해 럭키패쳐를 사용할 것이다. 물론 앱 클론[1], 무의미한 GSF(Google Service Framework) 의존성 요소를 제거하여 gapps가 없는 디바이스에서 앱을 사용하기 위한 패치 등, 크랙이 아닌 사용 시나리오도 소수나마 있다.
저연령층 사용자들도 쉽게 크랙을 도입할 수 있는 간편한 인터페이스로 상당한 인기를 끌었고, 실제로 한글로 '럭키패쳐'라고 검색하면 이 앱의 주된 사용 연령대를 쉽게 짐작할 수 있을 것이다. 버그와 아무 관련 없는 앱임에도 '럭키패쳐 게임버그'라는 식으로 앱을 설명하는 것을 볼 수 있다.
물론 개발자들도 구글에서 제공하는 기본 IAP API 외에도 여러 가지 결제 검증 절차를 도입하여, 럭키패쳐 앱을 스캔해서 설치된 기기에서의 실행이 되지 않도록 하거나 패키지 무결성 검사로 변조된 앱 실행을 막아버리는 등 여러가지 방법을 시도한다. 일례로 게임 회사의 서버와 통신을 거치는 온라인 게임은 럭키패쳐가 변조한 결제 내역과 실제 입금된 결제 내역을 대조하여 결제 유효성을 검증하거나 테일즈샵처럼 고소장을 날리는 수도 있다.
차단되지 않더라도 크랙은 자제하는 게 좋다. 현재는 구글에서 Play Protect를 통해 바이러스 앱으로 감지하고 차단한다.[2][3]
오랜기간 럭키패쳐를 사용하면서 관리를 안 하면 앱 하나가 60GB를 넘어가는 현상을 목격할 수 있다고 한다.
2. 기능
럭키패쳐는 설명했듯이 모든 앱에 패치가 적용되지 않는다. 패치가 적용되는 온라인 게임은 극소수이며, 오프라인 게임은 웬만하면 다 된다고 보면 된다. 애플리케이션 정보, 실행은 말 그대로 앱 정보 확인과 실행 버튼이므로 누를 일이 없다.2.1. 패치 메뉴
2.1.1. 수정된 APK 파일 생성
- 다중 패치된 APK: 여러가지 패치를 한꺼번에 APK에 적용한다.
- 라이센스 인증이 없는 APK: 라이센스 인증을 우회하거나 제거한다. DraStic의 라이센스 잠금에 이게 통한다.
- 구글 광고가 없는 애플리케이션: APK에 이 패치를 적용하면 구글 광고가 나오지 않는다.
- 인앱, LVL 에뮬레이션 APK 리빌드: 핵심 기능. 인앱 결제 절차를 우회하여 모든 결제를 공짜로 진행할 수 있다. 인앱 결제 원리는, 클라이언트에서 요청을 보내면 플레이스토어 인증 서버로 그 요청을 전달하고 입금이 확인되면 인증 서버에서 승인하는 방식인데 이 패치를 적용하면 요청을 플레이스토어가 아니라 자기네 서버로 보내서 곧바로 승인한다. 이 과정은 플레이스토어에서 보낸 것처럼 변조한 패킷을 통해 이루어진다. 쉽게 말해서 짜고 치는 중간자 공격. 변조를 감지할 수 있는 앱은 이 패치가 먹히지 않는다. 결제 크랙이라고 생각하면 편할 것이다.
- 권한과 액티비티가 변경된 APK: 소스 코드의 AndroidManifest.xml을 수정하여 앱이 요구하는 권한을 변경한다.
- 테스트 서명으로 재서명: 안드로이드 앱은 플레이스토어에 올리려면 '서명'이 필요하다.[4] 안드로이드는 동일한 서명을 가진 애플리케이션을 여러 개 설치해놓을 수 없다. 이때, '테스트 서명으로 재서명'하면 기존 서명과 달라지면서 앱 동시 설치가 가능해진다.[5] 쉽게 말해 앱을 복제해서 스마트폰 한 대에 여러 개를 설치할 수 있다는 것.
- 커스텀 패치가 적용된 APK: 말 그대로 커스텀 패치를 적용한다. 좀 유명한 앱에는 유럽이나 러시아, 중국 쪽에서 만든 커스텀 패치가 많다. 기본 패치들이 먹히지 않을 때 시도해볼 만하다.
- Remove Google Dependencies: 구글 관련 의존성 모듈을 제거한다. 구글 Ads를 포함하여 주로 Firebase에 대한 의존성 모듈이 앱에서 많이 쓰인다.
2.2. 도구
- 애플리케이션 복제(작동하지 않을 수 있음)[6]: 패치를 적용한 앱을 그대로 복제하며, 복제된 앱은 작동하지 않을 수 있다. 이 기능은 기존 앱을 삭제할 필요없이 정식판과 수정판이 따로 저장된다.
- 선택된 저장된 패치를 제거: 앱 패치를 제거하여 순정으로 되돌린다. 패치를 잘못했거나 먹히지 않을 때 사용한다.
- 백업: 패치된 앱을 APK 파일로 백업한다.
- 구글 플레이에서 열기: 구글 플레이에서 해당 앱의 정보를 본다.
- 공유하기: 패치된 앱을 공유한다.
[1]
멀티 앱, 사칭, 표절 앱 포함
[2]
무시하고 설치를 강행할 수 있지만...
[3]
실제로 럭키패쳐 앱 내부에서도 Play Protect를 비활성화하라고 권고하고 있다.
[4]
서명은 유저가 다운로드한 애플리케이션에만 있고 개발자는 '업로드 키'를 사용하여 업로드한다.
[5]
'테스트 서명'은 서명되지 않은 앱을 의미하기도 하지만 '재서명'이라고 언급하였기에 이러한 뜻은 아닐 가능성이 높다.
[6]
실제로 이렇게 쓰여있다.