Aplikacja zawiera kod umożliwiający ominięcie systemu Android. Uzyskiwanie praw roota na Androidzie za pośrednictwem Framaroot bez komputera

Dom / Hamulce

Jeśli zapomniałeś hasła lub wzoru na urządzeniu z Androidem, nie jest to powód do paniki. Istnieje kilka szybkich i proste opcje odblokuj swój telefon lub tablet Oparte na Androidzie w przypadku, gdy nie pamiętasz wzoru lub kodu PIN.

Wprowadzanie danych konta Google

Jeśli Twój smartfon lub tablet ma stałe połączenie poprzez sieć bezprzewodowa, możesz rozwiązać problem obejścia ochrony, po prostu wchodząc adres e-mail i hasło. Po 5 nieudanych próbach odblokowania ekranu pojawi się powiadomienie. Kliknij na nią i w wyświetlonym oknie wprowadź dane użytkownika konta Google.

Co zrobić, jeśli zapomniałeś hasła konto Google? Wykonaj procedurę przywracania dostępu do konta bezpośrednio z pomocą wsparcia.

Odblokowanie poprzez twardy reset

Podczas korzystania z tej metody wszystkie dane osobowe zostaną usunięte, a system smartfona zostanie przywrócony do ustawień fabrycznych (nie ma to wpływu na pliki na karcie SD). Przed wykonaniem procedury zaleca się utworzenie pliku kopii zapasowej, z którego można przywrócić informacje o użytkowniku.

Najprostszym sposobem na zresetowanie jest skorzystanie z narzędzia znajdującego się w ustawieniach urządzenia. Ponieważ dostęp do systemu jest zablokowany, będziesz musiał wykonać następujące czynności:


Każda akcja użytkownika (utworzenie kodu PIN, klucza graficznego) odzwierciedlana jest w systemie poprzez utworzenie określonych plików. Możemy stwierdzić, że jeśli usuniesz dane hasła, będziesz mógł odblokować urządzenie bez utraty informacji o użytkowniku.

Wielu użytkowników zastanawia się, jak odblokować Androida za pomocą komputera. Aby to zrobić, będziesz potrzebować narzędzia ADB, a także gadżetu podłączonego w trybie debugowania USB. Postępuj zgodnie z następującym algorytmem:


adb powłokirm /data/system/gest.key

rm /data/system/locksettings.db;

rm /data/system/locksettings.db-wal;

rm /data/system/locksettings.db-shm;

Ponowne flashowanie urządzenia

Jeśli z jakiegoś powodu inne sposoby zhakowania Androida nie są dla Ciebie dostępne, a. Można to zrobić na kilka sposobów:

  • Za pośrednictwem komputera za pomocą kabla USB;
  • Za pomocą menu odzyskiwania na dowolnym urządzeniu z systemem Android. Aby pobrać plik oprogramowania sprzętowego bezpośrednio do pamięci telefonu lub tabletu, należy skorzystać z komputera.

W w tym przypadku będzie można nie tylko pobrać oficjalne oprogramowanie, ale także różne niestandardowe opcje, w których można zmieniać projekt, funkcje ochronne, sterowniki, narzędzia itp.

Usuwanie gest.key (działa tylko w przypadku blokowania kluczem graficznym)

Odblokowanie telefonu lub tabletu z Androidem za pomocą tej metody jest niemożliwe bez uprawnień roota i. Jeśli nie spełniasz tych warunków, wybierz inną metodę obejścia ochrony. Klucz graficzny jest resetowany w następujący sposób:


Wiele z opisanych powyżej metod jest niemożliwych bez odblokowania programu ładującego. Robiąc to, otrzymasz prawa roota i będziesz mógł zainstalować własną wersję oprogramowania lub niestandardowe odzyskiwanie, więc zanim złamiesz blokadę Androida, musisz usunąć ochronę bootloadera. Zaleca się zrobić to niezwłocznie, aby być w pełni przygotowanym na wypadek zapomnienia kodu/wzoru PIN.

Algorytm odblokowania:


Następnie rozpoczyna się proces aktywacji bootloadera i pojawia się na ekranie urządzenia. Poczekaj na zakończenie procesu, a następnie po prostu uruchom ponownie urządzenie. Odblokowanie bootloadera zostało zakończone. Opisane powyżej wskazówki nadają się praktycznie na każdą okazję, ponieważ każdy może mieć swoją problematyczną sytuację. Mamy nadzieję, że nasze porady pomogą Ci szybko i prawidłowo pozbyć się problemu.

Uzyskanie uprawnień superużytkownika bez pomocy komputera na przykładzie nexus7_2013.

instrukcje

  • 1. Pobierz aplikację Towelroot.
  • 2. Sprawdź, czy w sekcji ustawień/bezpieczeństwa jest zaznaczone pole umożliwiające instalację z nieznanych źródeł.
  • 3. Zainstaluj, nie zwracając uwagi na następujące ostrzeżenie:
  • {
    Nie zalecamy instalowania tej aplikacji:
    korzeń ręcznika
    Zawiera kod pozwalający ominąć zabezpieczenia Androida.
    (pole wyboru) Zainstaluj mimo to (niezaznaczone)
    (przycisk) Nie instaluj
    (przycisk) Zainstaluj mimo to
    }
  • 4. Zaznacz odpowiednie pole i kliknij odpowiedni przycisk.
  • 5. Otwórz aplikację i znajdź przycisk o nazwie:
    „Zrób to ra1n”
  • 6. Dokładnie pamiętamy jego lokalizację, od tego czasu będziemy musieli wstrzymać Talkback, w przeciwnym razie pojawi się błąd.
  • 7. Tymczasowo wyładuj TalkBack za pomocą globalnego menu kontekstowego.
  • 8. Aktywujemy miejsce, które zapamiętaliśmy w punktach (5 i 6).
  • Nie jest tu wymagana podwójna karta, wystarczy jedno dotknięcie.
  • Jeśli masz pod ręką osobę widzącą, optymalnie byłoby poprosić ją o wykonanie tej prostej czynności.
  • 9. Czekamy jakiś czas, około 10-15 sekund, jeśli urządzenie nie uruchomi się ponownie, robimy to sami.
  • 10. Zainstaluj aplikację supersu.
  • 11. Uruchom supersu. i wyrażamy zgodę na ofertę aktualizacji pliku binarnego.
  • 12. Jeśli wszystkie kroki zostały wykonane poprawnie, telefon może teraz korzystać z uprawnień administratora.

Uwagi:

  • Lista obsługiwanych urządzeń dla Towelroot. usytuowany
  • Jeśli po uruchomieniu supersu. dostajesz wiadomość -
    „nie udało się zaktualizować pliku binarnego”
    następnie uruchom ponownie urządzenie i spróbuj ponownie.
  • Jeśli to ci nie pomoże, najprawdopodobniej nie uzyskałeś uprawnień superużytkownika; aby to zrobić, spróbuj ponownie, korzystając z pomocy osoby widzącej, aby aktywować przycisk „Uczyń to ra1n”.
  • Przed zainstalowaniem uprawnień superużytkownika dokładnie przestudiuj wszystkie problemy związane z nieprawidłowym użytkowaniem i unieważnieniem gwarancji na Twoje urządzenie...

Nie mogę instalować aplikacji i gier na Androidzie ze względu na blokadę bezpieczeństwa.. To nie jest problem; w tym artykule dowiesz się, jak otworzyć dostęp do instalacji.

Jeśli pobrałeś gry lub aplikacje z Internetu i chcesz je zainstalować na swoim Androidzie, możesz to zobaczyć Ekran Androida taki komunikat: „Ze względów bezpieczeństwa instalacja aplikacji z nieznanych źródeł jest blokowana na urządzeniu.” Instalacja może zostać zablokowana również w przypadku, gdy aplikację otrzymałeś poprzez Bluetooth lub Wi-Fi z innego telefonu, komputera, laptopa, tabletu lub innego urządzenia. Wszystko to oczywiście odbywa się dla bezpieczeństwa Twojego Androida, ponieważ teraz możesz pobrać i zainstalować ogromną liczbę aplikacji z wirusem, który może zablokować Twój telefon i wyłudzić od właściciela pieniądze za jego odblokowanie. Jeśli masz smartfon lub tablet na nowym Wersje Androida, poniżej znajdziesz link do strony z szczegółowe informacje o instalowaniu lub blokowaniu nieznanych aplikacji.

Nigdy nie instaluj na Androidzie aplikacji i gier z nieznanych źródeł, szczególnie jeśli pobrałeś je z Internetu. Jeśli jednak wiesz, że pliki pochodzą z zaufanych źródeł lub aplikacje otrzymane przez Bluetooth z innego zaufanego Androida, możesz odblokować instalację z nieznanych aplikacji i kontynuować instalację na Androidzie.

Teraz zobaczmy jak zezwolić na instalację aplikacji na Androidzie z nieznanych źródeł. Przed zainstalowaniem aplikacji lub gier przejdź do ustawień Androida i poszukaj elementu zabezpieczającego, a następnie znajdź go nieznane źródła i zaznacz pole obok niego. Teraz możesz instalować aplikacje na Androida z nieznanych źródeł, które zostały zablokowane ze względów bezpieczeństwa. Następnie możesz ponownie odznaczyć to pole i w ten sposób ponownie zablokujesz instalację niechcianych aplikacji.

Ponadto, jeśli już rozpocząłeś instalację i widzisz komunikat o zakazie instalacji na Twoim urządzeniu ze względów bezpieczeństwa, możesz od razu zezwolić na instalację. Gdy na ekranie wyświetli się komunikat, znajduje się tam również link do ustawień; klikając na niego od razu przechodzimy do elementu zabezpieczającego i możemy zaznaczyć pole obok elementu nieznane źródła i kontynuuj rozpoczętą instalację. Po takiej instalacji nie zapisuj checkboxa w ustawieniach zabezpieczeń, czyli za każdym razem musisz zezwolić na instalację aplikacji.

Nie instaluj aplikacji z nieznanych źródeł, jeśli nie masz pewności, że nie ma ryzyka infekcji wirusowej. Aplikacje mogą pobierać pieniądze z Twojego konta, blokować urządzenie lub je uszkadzać.

Nie zapomnij zostawić recenzji na temat tego, czy ten artykuł pomógł, czy nie, podaj model urządzenia, aby uzyskać to samo przydatne informacje dla użytkowników Androida.

  • Mam nadzieję, że ten artykuł ci pomógł i znalazłeś informacje jak zainstalować zablokowane aplikacje na Androidzie z nieznanych źródeł.
  • Uprzejmie prosimy o wzajemną pomoc i podzielenie się przydatnymi wskazówkami.
  • Dziękujemy za reakcję, wzajemną pomoc i przydatne rady!!!


06-08-2019
00:00 48 minut
Wiadomość:
Witam, wszystko co opisałeś w temacie „Na Androidzie podczas instalowania aplikacji i gier wyskakuje komunikat, że instalacja z nieznanych źródeł jest blokowana na urządzeniu.” przeczytaj zalecenia d

13-06-2019
09:00 19 minut
Wiadomość:
Jak usunąć administratora?

06-01-2018
18:00 24 minuty
Wiadomość:
Dziękuję! Otóż ​​mam problem, czy możecie mi podpowiedzieć co zrobić jak napiszą: Błąd podczas analizowania pakietu. Co robić?

02-01-2018
15:00 46 minut
Wiadomość:
Pomocy, telefon zablokował instalację aplikacji spoza Play Market. Pobrałem ją z Chrome, klikam otwórz, ale nie instaluje się

18-12-2017
11:00 11 minut
Wiadomość:
Witam, wszystko co opisałeś w temacie „Na Androidzie podczas instalowania aplikacji i gier wyskakuje komunikat, że instalacja z nieznanych źródeł jest blokowana na urządzeniu.” Przeczytałem zalecenia i zrobiłem to samo

31-10-2017
23:00 05 minut
Wiadomość:
Sztuczka polega na tym, że mój LG L70 nie pozwala mi nawet zaznaczyć pola, aby usunąć zakaz...

26-09-2017
00:00 27 minut
Wiadomość:
Nie mogę kliknąć znacznika wyboru, kiedy kliknąłem znacznik wyboru, nie włączył się on dla mnie

11-09-2017
03:00 37 minut
Wiadomość:
Możesz też napisać artykuł w następujący sposób: Przed instalacją aplikacji lub gier przejdź do Ustawienia Androida i poszukaj elementu zabezpieczającego, następnie znajdź element nieznanych źródeł i zaznacz pole obok niego.

28-03-2017
.. i życie staje się dłuższe.. bez smarka w 6 akapitach.
Wiadomość:
20:00 06 min. Mam pole wyboru „Zainstaluj oprogramowanie z nieznanych źródeł”, ale telefon nadal blokuje instalację. Telefon Meizu

17-12-2016
Uwaga 3. To jest w porządku? Nigdy wcześniej nie miałem styczności z Meizu.
Wiadomość:
20:00 52 minuty Ale mam inny problem i po 15-30 minutach ten element jest zawsze zaznaczany z nieznanego źródła. Czego nie zrobiłem - od Resetu do ustawień fabrycznych, programy antywirusowe

05-12-2016
Zainstalowałem, ale ciągle tyka i tyka. Pomoc!
Wiadomość:
22:00 52 minuty

05-12-2016
Sofia, spróbuj odinstalować aplikację za pomocą ustawień, a aplikacje można wyłączyć lub całkowicie usunąć.
Wiadomość:
22:00 05 minut

31-10-2016
Pomoc! Pobrałem grę z nieznanego źródła i teraz nie mogę jej usunąć ((
Wiadomość:
21:00 47 minut

Wystąpił problem polegający na tym, że (z powodu błędu oprogramowania) nie mam dostępu do zakładki „Bezpieczeństwo” w ustawieniach. Po wejściu w tę zakładkę wyrzuca ją do slave'a. tabeli z komunikatem „Aplikacja Ustawienia nie odpowiada. Jak NIE mogę aktywować instalacji „pozostawionych” aplikacji w ustawieniach? Uzyskanie praw root dla Androida bez użycia komputera i konieczność korzystania z trudnych do nauczenia narzędzi programowych jest dość dostępna szansa

. W tym artykule dowiesz się, jak uzyskać uprawnienia Superuser w zaledwie dwóch prostych krokach, korzystając z aplikacji Framaroot na Androida.

Główną zaletą opisanej metody uzyskania praw root jest przede wszystkim jej prostota, a także krótki czas, w jakim można zakończyć ten proces. Postępujemy zgodnie z instrukcjami, ale najpierw jest ważne ostrzeżenie.

Ważny! Opisane poniżej manipulacje niosą ze sobą pewne ryzyko! Każdą czynność, w tym także wykonanie poniższych instrukcji, użytkownik wykonuje na własne ryzyko i ryzyko. Administracja zasobów nie ponosi odpowiedzialności za możliwe negatywne skutki.

Aplikacja Framarut po pobraniu lub skopiowaniu na pamięć urządzenia lub kartę pamięci jest zupełnie zwykłym plikiem apk. Instalacja nie wymaga żadnych specjalnych działań, wszystko jest standardowe.

Krok 2: Uzyskanie praw roota

Wprowadziliśmy Cię do szeregu artykułów, które wyraźnie pokazały, jak proste są naprawdę aplikacje na Androida. Nie potrzebujesz do tego nawet dezasemblera, wystarczy powierzchowna znajomość Javy i języka Smali. Dlatego jeśli swoją aplikację będzie dość popularny, wiadomo: zostanie skradziony, a płatne funkcje zostaną aktywowane poprzez proste manipulacje. A jeśli zdecydujesz się zarabiać na reklamach, zostanie ona wyłączona.

Ochrona aplikacji jest trudna, ale jest możliwa. Po pierwsze, warto od razu porzucić model dystrybucji Pro/Lite. Aplikację można bardzo łatwo usunąć ze smartfona, dlatego złodziejowi wystarczy tylko raz kupić aplikację, a następnie można ją rozpowszechniać w niezmienionej postaci. Po drugie, trzeba o to dbać zabezpieczenie przed odwróceniem kodu. Dekompilacja kodu Java jest łatwa, a zmiana kodu binarnego nie wymaga żadnych specjalnych umiejętności ani narzędzi. Po trzecie, musisz mieć pewność, że nawet w przypadku udanego włamania aplikacja po prostu nie będzie działać. Następnie haker będzie musiał rozwiązać dwa problemy na raz: zhakować aplikację i sprawić, by zhakowana wersja działała.

Porzucamy więc wersję Pro i rozpoczynamy walkę.

Ukrywanie i zaciemnianie kodu

Najlepszym sposobem ochrony kodu aplikacji przed odwróceniem jest zaciemnienie, innymi słowy, zaciemnienie kodu bajtowego w taki sposób, że zrozumienie go przez osobę odwracającą jest nieznośnie trudne. Istnieje kilka narzędzi, które mogą to zrobić. Najprostszy, ale wciąż skuteczny, znajduje się w Android Studio. Ten ProGuard.

Aby go aktywować, po prostu dodaj linię minifyEnabled true do sekcji android → buildTypes → release pliku build.gradle:

android(...buildTypes(release(minifyEnabled true)...))

android(

. . .

typy kompilacji(

uwolnienie (

minifyEnabled prawda

. . .

Następnie Android Studio zacznie przekazywać wszystkie „wydane” kompilacje przez ProGuard. W rezultacie aplikacja stanie się bardziej zwarta (poprzez usunięcie niewykorzystanego kodu), a także otrzyma pewien poziom zabezpieczenia przed odwróceniem. „Niektóre” w tym sensie, że ProGuard zastąpi nazwy wszystkich wewnętrznych klas, metod i pól kombinacją jednej lub dwóch liter. To rzeczywiście sprawi, że zdekompilowany/zdemontowany kod będzie znacznie trudniejszy do zrozumienia.


Następny krok - szyfrowanie ciągów. Jest to szczególnie przydatne, jeśli wewnątrz aplikacji przechowujesz jakiekolwiek wrażliwe dane: identyfikatory, klucze, punkty końcowe API REST. Wszystko to pomoże hakerowi nawigować po Twoim kodzie lub wydobyć z niego ważne informacje.

Możesz szyfrować ciągi znaków na różne sposoby, na przykład za pomocą narzędzi Stringer lub DexGuard. Zaleta: W pełni zautomatyzowana modyfikacja istniejącego kodu w celu wdrożenia szyfrowania ciągów. Wada: cena przystępna dla firm, ale zbyt wysoka dla niezależnego dewelopera.

Dlatego spróbujemy zrobić to samodzielnie. W najprostszym przypadku szyfrowanie ciągów przy użyciu języka Java odbywa się w następujący sposób:

publiczny bajt statyczny encryptString(Wiadomość ciągu, sekret SecretKey) zgłasza wyjątek ( Szyfr cipher = null; cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, sekret); return cipher.doFinal( wiadomość.getBytes("UTF-8"));

publiczny bajt statyczny encryptString (wiadomość String, sekret SecretKey) zgłasza wyjątek (

Szyfr cipher = null ;

cipher .init (Cipher .ENCRYPT_MODE , sekret ) ;

zwróć szyfr .doFinal (wiadomość .getBytes("UTF-8" ));

A dekodowanie wygląda następująco:

public static String decryptString(bajt cipherText, SecretKey secret) zgłasza wyjątek ( Szyfr cipher = null; cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secret); zwróć nowy String(cipher .doFinal(tekst szyfrowany), "UTF-8" )

public static String decryptString (bajt cipherText, SecretKey secret) zgłasza wyjątek (

Szyfr cipher = null ;

cipher = Cipher .getInstance („AES/ECB/PKCS5Padding” );

cipher.init(Cipher.DECRYPT_MODE, sekret);

zwróć nowy ciąg (cipher. doFinal (cipherText), „UTF-8”);

Do wygenerowania klucza wystarczy jedna linia:

publiczny statyczny SecretKey generateKey (łańcuch hasła) zgłasza wyjątek (zwróć sekret = nowy SecretKeySpec(password.getBytes(), "AES"); )

public static SecretKey generateKey (hasło ciągu) zgłasza wyjątek (

zwróć sekret = nowy SecretKeySpec(password.getBytes(), "AES");

Chodzi o to, aby napisać w Javie prostą aplikację na komputer stacjonarny/mobilną, która pobierze wszystkie ciągi znaków jako dane wejściowe i wygeneruje ich zaszyfrowane wersje jako dane wyjściowe. Następnie wstawiasz te ciągi do głównej aplikacji zamiast oryginalnych i w miejscach, w których są one dostępne, wywołujesz funkcję decryptString().

W rezultacie osoba atakująca po prostu nie będzie mogła zobaczyć zaszyfrowanych ciągów znaków poprzez dekompilację aplikacji. Ale oczywiście może napisać prosty deszyfrator w oparciu o zdekompilowany kod twojego programu szyfrującego. Innymi słowy, nie jest to panaceum, ale szyfrowanie ciągów znaków doda kolejną warstwę złożoności.

Możesz pójść jeszcze dalej i skorzystać z jednego z kompleksowych narzędzi do ochrony aplikacji na Androida, takiego jak AppSolid. Jest to znowu drogie, ale pozwala na zaszyfrowanie całej aplikacji. Może to naprawdę odstraszyć wiele osób odwracających działanie, ale istnieje wiele narzędzi, w tym płatny dekompilator Java JEB, które mogą automatycznie usunąć taką ochronę.

Możesz także spróbować rozbić swoją aplikację na wiele małych modułów, jak pisałem już w artykule Pisanie aplikacji modułowych na Androida. To samo w sobie nie jest metodą zabezpieczającą i raczej nie będzie utrudniać pracy rewersera. Ale zerwie się różne systemy automatyczne pękanie aplikacji. Po prostu nie będą w stanie zrozumieć, gdzie szukać kodu znajdującego się w module.

No i ostatnia rzecz: należy usunąć (wykomentować) z kodu wszystkie wywołania loggera, czyli wszystkie wywołania Log.d(), Log.v() i tak dalej. W przeciwnym razie osoba atakująca będzie mogła wykorzystać te informacje do zrozumienia logiki aplikacji.

Awaria zhakowanej aplikacji

Dobra, trochę zepsuliśmy życie rewersera. Czas zrobić to jeszcze raz! Ale jak rozpoznać, czy aplikacja została zhakowana? A dokładniej, jak może się tego dowiedzieć? Przecież pojęcia „zhakowany” i „nie zhakowany” istnieją tylko w naszych głowach, czyli są to pojęcia dość wysokiego rzędu, których nie da się opisać algorytmicznie.

Tak jest, ale tak nie jest. Faktem jest, że wewnątrz pliku APK znajduje się zestaw przechowywanych metadanych sumy kontrolne absolutnie wszystkie pliki w pakiecie, a same metadane są podpisane kluczem dewelopera. Jeśli zmienisz aplikację i spakujesz ją ponownie, metadane pakietu ulegną zmianie i pakiet będzie musiał zostać podpisany ponownie. A ponieważ odwracacz nie ma i nie może mieć Twojego klucza programisty, używa albo wygenerowanego losowo, albo tak zwanego klucza testowego.

Sam Android bez problemu połknie taką aplikację (nie prowadzi bazy wszystkich podpisów cyfrowych wszystkich możliwych programistów Androida), ale my mamy własną podpis cyfrowy i możemy to zweryfikować!

Weryfikacja podpisu cyfrowego

Właściwie metoda jest dość prosta. Należy wprowadzić do aplikacji kod, który otrzyma skrót klucza aktualnego podpisu cyfrowego pakietu i porównać go z wcześniej zapisanym. Pasują – aplikacja nie została przepakowana (ani zhakowana), nie – bijemy na alarm.

Aby rozpocząć, wstaw do aplikacji następujący fragment kodu (im głębiej go ukryjesz, tym lepiej):

publiczny statyczny String getSignature(kontekst kontekstowy) ( String apkSignature = null; try ( PackageInfo packageInfo = kontekst.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_SIGNATURES); for (Podpis podpisu: packageInfo.signatures) ( MessageDigest md = MessageDigest.getInstance("SHA"); md.update(signature.toByteArray()); apkSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT); Log.e("DEBUG", "Podpis: " + apkSignature); ) ) catch (Wyjątek e) () return apkSignature )

publiczny statyczny ciąg getSignature (kontekst kontekstowy) (

String apkSignature = null;

próbować (

PackageInfo packageInfo = kontekst.getPackageManager().getPackageInfo(

kontekst.getPackageName(),

Menedżer pakietów.GET_SIGNATURES

for (Podpis podpisu: packageInfo .signatures ) (

MessageDigest md = MessageDigest .getInstance („SHA” );

md.update(signature.toByteArray());

apkSignature = Base64 .encodeToString (md .digest () , Base64 .DEFAULT ) ;

Log .e („DEBUG”, „Podpis: „ + apkSignature ) ;

) catch (Wyjątek e) ( )

zwróć podpis apk;

Zbuduj, uruchom aplikację i przejrzyj dziennik wykonania. Tam zobaczysz linię SIGNATURE: 478uEnKQV+fMQT8Dy4AKvHkYibo=. To jest hash. Należy go nie tylko zapamiętać, ale umieścić w kodzie aplikacji jako stałą, np. pod nazwą PODPIS. Teraz usuń linię Log.e... z kodu i dodaj następującą metodę:

publiczna statyczna wartość logiczna checkSignature(kontekst kontekstu) ( return SIGNATURE.equals(getSignature(context)); )

publiczna statyczna wartość logiczna checkSignature (kontekst kontekstowy) (

return SIGNATURE.equals (getSignature (kontekst));

Po prostu sprawdzi zapisany skrót za pomocą skrótu klucza, który jest w środku w tej chwili wniosek podpisany. Funkcja zwraca wartość true, jeśli podpis cyfrowy należy do Ciebie (aplikacja nie została przebudowana), i false, jeśli został zmodyfikowany. To, co zrobić w drugim przypadku, zależy od Ciebie. Możesz po prostu zakończyć aplikację za pomocą os.exit(0) lub możesz ją zawiesić, na przykład wywołując metodę na niezainicjowanym obiekcie lub uzyskując dostęp do nieistniejącej wartości tablicy.

Pamiętaj jednak: osoba atakująca może po prostu wyciąć Twój kod weryfikacyjny podpisu cyfrowego i nigdy nie zadziała (dotyczy to również kodu podanego poniżej). Dlatego ukryj go w nieoczywistym miejscu i zaszyfruj skrót oryginalnego klucza, jak pokazano powyżej.


Sprawdzanie źródła instalacji

Inną metodą ochrony jest sprawdzenie, skąd aplikacja została zainstalowana. Logika tutaj jest prosta: jeśli źródłem instalacji jest Sklep Play, to wszystko jest w porządku, jest to oryginalna, rozpakowana aplikacja. Jeżeli nie to Varez pobrany z forum i zainstalowany z karty pamięci lub z czarnego rynku.

Możesz w jednej linii dowiedzieć się, skąd aplikacja została zainstalowana, a sama funkcja, która to robi, może wyglądać następująco:

public static boolean checkInstaller(kontekst kontekstowy) ( końcowy instalator ciągu = kontekst.getPackageManager().getInstallerPackageName(context.getPackageName()); zwróć instalator != null && installer.startsWith("com.android.vending"); )

public static boolean checkInstaller (kontekst kontekstowy) (

końcowy instalator ciągu = kontekst .getPackageManager() .getInstallerPackageName(context .getPackageName()) ;

zwróć instalator != null & wzmacniacz ; & wzmacniacz ; installer.startsWith("com.android.vending");

Jak zwykle: prawda – wszystko w porządku, fałsz – Houston, mamy problemy.

Określanie emulatora

Niektóre metody odwrotne aplikacji wymagają użycia emulatora. Dlatego przydatne byłoby dodanie do aplikacji kodu sprawdzającego, czy działa ona w środowisku wirtualnym. Można tego dokonać poprzez odczytanie wartości niektórych zmiennych systemowych. Na przykład standardowe Emulator Androida Studio ustawia te zmienne i wartości:

ro.hardware=złota rybka ro.kernel.qemu=1 ro.product.model=sdk

ro .hardware = złota rybka

ro .jądro .qemu = 1

ro .produkt .model = sdk

Dlatego po odczytaniu wartości tych zmiennych możemy założyć, że kod jest wykonywany w emulatorze:

public static boolean checkEmulator() ( try ( boolean goldfish = getSystemProperty("ro.hardware").contains("goldfish"); boolean emu = getSystemProperty("ro.kernel.qemu").length() > 0; boolean sdk = getSystemProperty("ro.product.model").contains("sdk"); if (emu || złota rybka || sdk) (zwróć true; ) ) catch (Wyjątek e) () return false ) private static String getSystemProperty ( String name) zgłasza wyjątek ( Class sysProp = Class.forName("android.os.SystemProperties"); return (String) sysProp.getMethod("get", nowa klasa (String.class)).invoke(sysProp, nowy obiekt ( nazwa));

publiczna statyczna wartość logiczna checkEmulator() (

próbować (

© 2024 ermake.ru - O naprawie komputerów PC - Portal informacyjny