2011-08-03 14 views
9

Na iPhonie istnieje kilka sposobów wykrywania, kiedy użytkownik otwiera wersję aplikacji, która została piracka.Android wykrywa piracką/pękniętą aplikację

Czy istnieje sposób na Androida, aby wykryć, kiedy użytkownik korzysta z pirackiej wersji aplikacji?

Odpowiedz

11

License Verification Library (LVL) jest podobny do potrzeb.

Usługa licencjonowania to bezpieczny sposób kontrolowania dostępu do aplikacji. Gdy aplikacja sprawdza status licencjonowania, serwer rynku podpisuje odpowiedź o statusie licencjonowania za pomocą pary kluczy, która jest jednoznacznie powiązana z kontem wydawcy. Twoja aplikacja przechowuje klucz publiczny w skompilowanym pliku .apk i używa go do sprawdzenia odpowiedzi o statusie licencjonowania.

Każda aplikacja publikowana za pośrednictwem usługi Android Market może korzystać z usługi licencjonowania Android Market. Nie jest wymagane specjalne konto lub rejestracja. Dodatkowo, ponieważ usługa nie korzysta z dedykowanych interfejsów API, możesz dodać licencje do dowolnej starszej aplikacji, która używa minimalnego poziomu API 3 lub wyższego.

Aby ułatwić licencjonowanie aplikacji, pakiet SDK systemu Android zapewnia źródła biblioteki, które można uwzględnić w projekcie aplikacji. Biblioteka weryfikacji licencji (LVL) obsługuje całą komunikację związaną z licencją z klientem Android Market i usługą licencjonowania. Dzięki zintegrowanemu LVL twoja aplikacja może określić status licencji dla bieżącego użytkownika, po prostu wywołując metodę sprawdzania biblioteki i wykonując wywołanie zwrotne, które otrzymuje status.

This document wyjaśnia, w jaki sposób działa usługa licencjonowania i jak dodać ją do aplikacji.

Przykładem jest here.

Numer referencyjny: here.

+0

spójrz na mój komentarz do drugiej odpowiedzi. Dzięki. – Talha

4

Jeśli przez piractwo masz na myśli to, że aplikacja została usunięta z urządzenia, które legalnie ją kupiło i skopiowane na inne urządzenie i uruchomione, oznacza to, że biblioteka weryfikacji licencji wykryje ją i zadzwoni pod Twój kod, aby się z nią uporać.

Niestety, większość pirackich aplikacji dostępnych na stronach pirackich i witrynach sieci równorzędnych dzisiaj zostało zdekompilowanych, gdyby kontrola licencji została usunięta i ponownie skompilowana i podpisana cyfrowo przy użyciu innego certyfikatu, więc LVL nie ma sensu. Jeśli tak jest, jak to było z moją płatną aplikacją, nie ma wykrywania, a szczerze mówiąc nic nie możesz na to poradzić. Google udostępniło nam platformę, która bardzo ułatwia innym kradzież własności intelektualnej. W rzeczywistości jest to takie proste, większość kradzieży jest teraz zautomatyzowana. Jest to gorzka pigułka do przełknięcia, a dopóki Google nie zrobi czegoś na ten temat, to nadal będzie. Kod Daleksa Dexa można dekompilować, edytować, rekompilować i podpisywać cyfrowo przez kogoś innego. Nie jest bezpieczny pod żadnym względem kształtu ani formy.

+0

Masz na myśli cały mój 1 rok ciężkiej pracy nad zaprojektowaniem-zbudowaniem-przetestowania aplikacji, od której zależy mój cały (rodzaj) pomysł na rozpoczęcie, a nie tylko jej kodu źródłowego, xml, aktywów? Ponieważ deks jest dekompilowany do słoika, to słoik może być również dekompilowany do plików klas. Popraw mnie, jeśli się mylę. Przetestowałem tę dekompilację w aplikacji do debugowania, korzystając z [darmowych narzędzi/samouczków] (http://stackoverflow.com/questions/1249973/decompiling-dex-into-java-sourcecode). Myślałem, że podpisany plik APK nie może zostać wyodrębniony z powodu szyfrowania sha-1. – Talha

+2

@Talha Tak, on jest poprawny. Aplikację podpisaną dowolnym certyfikatem (debug/release) można dekompilować. Aby obsłużyć to, przechowuj podpis na serwerze i weryfikuj podpis aplikacji po uruchomieniu. W ten sposób możesz zablokować dostęp. –

+0

Masz na myśli mój własny serwer?Tak, to ma sens, ale nie rozumiem, dlaczego na świecie największy dystrybutor platform nie może skonfigurować protokołu bezpieczeństwa, aby zapewnić bezpieczeństwo produktów (aplikacji). – Talha

Powiązane problemy