DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu

Plik ARC, za pomocą którego instalujemy gry, jest wsadowy i, jeśli to konieczne, wyodrębniany. Jest to bardzo wygodne, ponieważ już zainstalowane aplikacje można rozpakować do jednego pliku.

Często zdarzają się sytuacje, gdy na przykład ukończyłeś grę i usunąłeś ją ze swojego urządzenia mobilnego. Ale po chwili zdecydowaliśmy się znowu zagrać. Aby nie zaczynać przejścia od zera wystarczy wyciągnąć ARC i użyć go w razie potrzeby. Cały zakończony proces zostanie przywrócony.

Wyodrębnienie APK jest bardzo przydatne, gdy potrzebujesz znajomego przez Bluetooth. Aby nie instalować specjalnego programu, możesz skorzystać z metody podanej poniżej.

ARC jest wyodrębniany z zainstalowanych aplikacji za pomocą specjalnego oprogramowania. Wygodny menedżer plików jest do tego idealny. Astro File Manager.

Menedżer plików pomoże Ci zarządzać kopią zapasową programów dostępnych w urządzeniu, oglądać filmy i obrazy oraz menedżera zadań. Aby bez problemów wyodrębnić instalacyjny ARC, będziesz potrzebować:

1. Aby Astro File Manager działał, musisz zainstalować go na swoim urządzeniu, dla którego musisz spojrzeć na Google Play. Po zakończeniu procesu instalacji możesz zabrać się do pracy.

2. Uruchom Astro File Manager. Na ekranie otworzy się okno wskazujące dostępne napędy pamięci oraz listę usług, w których można się zarejestrować lub zalogować.

3. Przeciągnij w lewo, aby otworzyć główne menu aplikacji. W lewym dolnym rogu kliknij ikonę narzędzia i przejdź do Menedżera aplikacji.

4. Zobaczysz listę wszystkich zainstalowanych programów i gier.

5. Aby wyodrębnić ARC, naciśnij specjalny przycisk znajdujący się w prawym górnym rogu. Wybierz BACKUP z dostępnych opcji. Dla jasności wykonuję tę operację za pomocą.

Teraz wystarczy poczekać na zakończenie procesu. Wszystkie pliki wynikowe zostaną umieszczone w folderze Backups - Apps. Są instalowane tak łatwo, jak zwykłe pliki APK.

Interpolacja, interpolacja - w matematyce obliczeniowej: metoda znajdowania wartości pośrednich wielkości z dostępnego dyskretnego zbioru znanych wartości.

Wielu z tych, którzy mają do czynienia z obliczeniami naukowymi i inżynierskimi, często musi operować zestawem wartości uzyskanych empirycznie lub losowo. Z reguły na podstawie tych zbiorów wymagane jest skonstruowanie funkcji, która z dużą dokładnością mogłaby otrzymać inne uzyskane wartości. To zadanie nazywa się przybliżenie... Interpolacja to rodzaj przybliżenia, w którym krzywa skonstruowanej funkcji przechodzi dokładnie przez dostępne punkty danych.

Istnieje wiele metod interpolacji różnic skończonych. Większość
najczęściej stosowana jest metoda interpolacji naprzód Newtona (metoda Newtona-Gregory'ego). Wielomian interpolacyjny w tym przypadku ma postać:

Współczynniki C znajdujemy według wzoru:

Realizacja programu w języku C #:
using System; namespace Interpolation (klasa Program ...

Program jest podzielony na dwa wątki, z których jeden wykonuje sortowanie, a drugi przerysowuje GUI. Po kliknięciu przycisku Sortuj program wywołuje metodę RunSorting, która definiuje algorytm sortowania i tworzy nowy wątek z przebiegającym w nim procesem sortowania.
prywatna nieważne RunSo ...

Dziś chcę pokazać mojego Kachera, który robiłam podczas ostatnich ferii zimowych. Nie będę opisywał całego procesu produkcyjnego, ponieważ w Internecie jest wiele artykułów. Napiszę tylko o jego głównych parametrach.

Poniżej kilka zdjęć wykonanych podczas montażu urządzenia.

Cewka jest nawinięta drutem 0,08 mm na około 2000 zwojów na rurze PVC o średnicy 50 mm i wysokości 200 mm.

Jako terminal zastosowano płytkę ze starego dysku twardego. Wszystko inne zostało zebrane według schematu znajdującego się na samym dole strony.

Pierwsza wersja zasilana była z zasilacza 12 V starego komputera, następnie wykonano osobny zasilacz na napięcie 30 V z wbudowanym chłodzeniem.

Schemat urządzenia:

Udostępnianie zasobów (CORS) to specyfikacja W3C, która umożliwia komunikację między domenami w przeglądarce. Opierając się na obiekcie XMLHttpRequest, CORS umożliwia programistom pracę z tymi samymi idiomami, co żądania pojedynczej domeny. Przypadek użycia dla CORS jest prosty. Wyobraź sobie, że alice.com ma pewne dane, które chce uzyskać bob.com. Ten typ żądań jest tradycyjnie niedozwolony w ramach tej samej zasady pochodzenia przeglądarki. Jednak dzięki obsłudze żądań CORS alice.com może dodać niestandardowe nagłówki odpowiedzi, które umożliwią stronie bob.com dostęp do danych. Jak widać na tym przykładzie, obsługa CORS wymaga koordynacji między serwerem a klientem. Na szczęście, jeśli jesteś programistą po stronie klienta, jesteś chroniony przed większością tych szczegółów. W pozostałej części tego artykułu pokazano, jak klienci mogą wysyłać żądania między źródłami i jak serwery mogą konfigurować się do obsługi mechanizmu CORS. Kontyntynuj ...

Wielu z Was wie, że proces instalacji aplikacji na Androida jest prosty - otwierasz sklep Google Play, znajdujesz program lub grę, którą chcesz, klikasz na duży przycisk Zainstaluj i to wszystko. Jednak aplikacje na Androida są pakowane i instalowane ręcznie. Pakiety te mają rozszerzenie „.apk”, a ich praktycznych zastosowań jest wiele. Na przykład możesz bez problemu tworzyć kopie zapasowe aplikacji, które są również przechowywane jako pliki APK. Pomoże Ci nawet w przypadku, gdy nagle aplikacja lub gra zniknęła z Google Play, tak jak w przypadku Flappy Bird. W razie potrzeby każdy może pobrać aplikację i zainstalować ją na swoim smartfonie. Wygodne jest również instalowanie plików apk na urządzeniach sztucznie ograniczanych przez producenta (Amazon Kindle Fire lub Nokia X).

Jak jednak wyodrębnić zainstalowany plik apk? Aplikację możesz łatwo znaleźć w Internecie, pobrać i zainstalować na swoim urządzeniu z systemem Android. Ta metoda działa świetnie w przypadku bezpłatnych aplikacji. Płatne są chronione przed pobieraniem z oczywistych powodów. Ponadto aplikacje pobierające dodatkowe pliki po ich zainstalowaniu powinny działać poprawnie.

  • 1. Na urządzeniu z Androidem Google Play i pobierz aplikację, którą chcesz wyodrębnić.
  • 2. Pobierz aplikację APK Extractor. Jest darmowy i łatwy w użyciu.
  • 3. Otwórz aplikację APK Extractor i określ dowolną aplikację, którą chcesz wyodrębnić. Można zaznaczyć kilka aplikacji jednocześnie. Pliki APK zostaną zapisane w folderze ExtractedApks w pamięci urządzenia.

Wyodrębnione pliki APK można teraz skopiować na inny smartfon lub tablet z Androidem i zainstalować za pomocą dowolnego menedżera plików, takiego jak Astro lub ES File Explorer.

Jedna z popularnych aplikacji tego typu. Umożliwia wyodrębnienie pliku instalacyjnego bezpośrednio z oficjalnego sklepu i zapisanie go na komputerze. Jednocześnie programu nie trzeba nawet instalować na komputerze - dostępna jest wersja przenośna, która w pełni współpracuje z dyskami zewnętrznymi. Uruchamiając Raccoon po raz pierwszy, użytkownik musi wprowadzić poświadczenia swojego konta Google. Żądany jest również identyfikator urządzenia, ale ten parametr można zignorować.

Interfejs aplikacji składa się z dwóch zakładek: Pobierz i Wyszukaj. Podczas wyszukiwania możesz użyć nazwy, identyfikatora lub linku w oficjalnym katalogu. Po znalezieniu aplikacji możesz zapisać ją na swoim komputerze jako zwykły plik, a następnie ręcznie zainstalować na innym urządzeniu mobilnym.


Popularny alternatywny katalog dla Androida zawierający produkty różnych programistów. Klient katalogu jest mały, więc można go używać na wolniejszych urządzeniach. Wszystkie programy są podzielone na kategorie, istnieje wygodne wyszukiwanie, a same aplikacje można pobrać jako pliki.

A potem zawsze możesz użyć Clean Master, aby szybko wyczyścić telefon ze śmieci. Czy wiesz co to jest? ...

APK Downloader

Rozszerzenie dla przeglądarek Chrome i Firefox. Pozwala także na szybkie pobranie wybranego narzędzia jako osobny plik. Po aktywacji wtyczki wystarczy przejść do strony żądanego programu w Google Play i użyć klawisza F5. Strona zostanie odświeżona i zostanie wyświetlony przycisk pobierania dla odpowiedniego obiektu.

inne metody

Istnieją również sposoby pobierania plików apk bez instalowania oprogramowania innych firm. Na przykład możesz użyć usługi online o tej samej nazwie zamiast wtyczki APK Downloader. Wystarczy otworzyć zasób, wstawić link do programu w specjalnym formularzu i otrzymać przycisk, którego aktywacja inicjuje pobieranie.

Innym sposobem: otwórz żądaną stronę w Google Play i ręcznie zmień play.google.com na apk-dl.com w pasku adresu przeglądarki (resztę adresu należy pozostawić). Po odświeżeniu strony użytkownik może pobrać wybrany plik.

Czasami niektóre aplikacje na Androida w jakiś sposób nie odpowiadają użytkownikowi. Przykładem są irytujące reklamy. I zdarza się też - każdy jest dobry w programie, ale tylko tłumaczenie w nim jest krzywe lub całkowicie nieobecne. Lub, na przykład, program jest w wersji próbnej, ale nie ma możliwości uzyskania pełnej wersji. Jak można zmienić tę sytuację?

Wprowadzenie

W tym artykule porozmawiamy o tym, jak zdemontować pakiet APK z aplikacją, przyjrzeć się jego wewnętrznej strukturze, zdemontować i zdekompilować kod bajtowy, a także spróbować wprowadzić kilka zmian w aplikacji, które mogą przynieść nam jedną lub drugą korzyść.

Aby to wszystko zrobić samodzielnie, będziesz potrzebować przynajmniej podstawowej znajomości języka Java, w którym pisane są aplikacje na Androida, oraz języka XML używanego wszędzie w Androidzie - od opisu samej aplikacji i jej praw dostępu do przechowywanie ciągów znaków, które będą wyświetlane na ekranie. Musisz także umieć obsługiwać specjalistyczne oprogramowanie konsoli.

Czym dokładnie jest pakiet APK, w którym dystrybuowane jest absolutnie całe oprogramowanie dla Androida?

Dekompilacja aplikacji

W tym artykule pracowaliśmy tylko z zdemontowanym kodem aplikacji, jednak jeśli wprowadzisz poważniejsze zmiany w dużych aplikacjach, znacznie trudniej będzie zrozumieć mały kod. Na szczęście możemy przekształcić kod dex w kod Javy, który choć nie jest oryginalny i nie jest skompilowany z powrotem, jest znacznie łatwiejszy do odczytania i zrozumienia logiki aplikacji. Aby to zrobić, potrzebujemy dwóch narzędzi:

  • dex2jar - tłumacz kodu bajtowego Dalvik na kod bajtowy JVM, na podstawie którego możemy pobrać kod w języku Java;
  • jd-gui to sam dekompilator, który umożliwia pobranie czytelnego kodu Java z kodu bajtowego maszyny JVM. Alternatywnie możesz użyć Jad (www.varaneckas.com/jad); chociaż jest dość stary, w niektórych przypadkach generuje bardziej czytelny kod niż Jd-gui.

Powinny być używane w ten sposób. Najpierw uruchamiamy dex2jar, podając ścieżkę do pakietu apk jako argument:

% dex2jar.sh mail.apk

W rezultacie pakiet Java mail.jar pojawi się w bieżącym katalogu, który można już otworzyć w jd-gui, aby wyświetlić kod Java.

Pakiety APK urządzenia i ich odbiór

Pakiet aplikacji na Androida to zasadniczo zwykły plik zip, który nie wymaga żadnych specjalnych narzędzi do przeglądania i rozpakowywania jego zawartości. Wystarczy mieć archiwizator - 7zip dla Windowsa lub konsolę unzip dla Linuksa. Ale to kwestia opakowania. Co jest w środku? Wewnątrz mamy generalnie następującą strukturę:

  • META-INF / - zawiera cyfrowy certyfikat aplikacji potwierdzający jej twórcę oraz sumy kontrolne plików pakietu;
  • res / - różne zasoby, z których aplikacja korzysta w swojej pracy, np. obrazy, deklaratywny opis interfejsu i inne dane;
  • AndroidManifest.xml - opis aplikacji. Obejmuje to na przykład listę wymaganych rozdzielczości, wymaganą wersję Androida i wymaganą rozdzielczość ekranu;
  • classes.dex - skompilowany kod bajtowy aplikacji dla maszyny wirtualnej Dalvik;
  • resources.arsc - także zasoby, ale innego rodzaju - w szczególności stringi (tak, ten plik można wykorzystać do rusyfikacji!).

Wymienione pliki i katalogi znajdują się, jeśli nie we wszystkich, to prawdopodobnie w zdecydowanej większości plików APK. Jest jednak kilka innych niezbyt popularnych plików / katalogów, o których warto wspomnieć:

  • majątek - analog zasobów. Główna różnica polega na tym, że aby uzyskać dostęp do zasobu, musisz znać jego identyfikator, podczas gdy listę zasobów można uzyskać dynamicznie za pomocą metody AssetManager.list () w kodzie aplikacji;
  • lib - Natywne biblioteki Linuksa napisane przy użyciu NDK (Native Development Kit).

Ten katalog jest używany przez twórców gier do obsługi silnika gry napisanego w C / C ++, a także przez twórców aplikacji o wysokiej wydajności (takich jak Google Chrome). Urządzenie zostało uporządkowane. Ale jak uzyskać rzeczywisty plik pakietu aplikacji, która Cię interesuje? Ponieważ nie jest możliwe pobranie plików APK z urządzenia bez roota (znajdują się w katalogu / data / app), a root nie zawsze jest wskazany, istnieją co najmniej trzy sposoby, aby pobrać plik aplikacji na komputer:

  • rozszerzenie APK Downloader dla Chrome;
  • aplikacja Real APK Leecher;
  • różne udostępnianie plików i warezniki.

Którego użyć, to kwestia gustu; wolimy używać oddzielnych aplikacji, dlatego opiszemy użycie Real APK Leecher, zwłaszcza że jest napisany w Javie i odpowiednio będzie działał nawet w Windows, nawet w nix.

Po uruchomieniu programu należy wypełnić trzy pola: E-mail, Hasło i ID urządzenia - oraz wybrać język. Pierwsze dwa to adres e-mail i hasło do konta Google, którego używasz na swoim urządzeniu. Trzeci to identyfikator urządzenia i można go uzyskać, wybierając kod na dialerze # #8255## a następnie znalezienie linii ID urządzenia. Podczas wypełniania wystarczy podać identyfikator bez prefiksu android-.

Po wypełnieniu i zapisaniu często pojawia się komunikat „Błąd podczas łączenia z serwerem”. Nie ma to nic wspólnego z Google Play, więc możesz to zignorować i poszukać pakietów, które Cię interesują.

Wyświetl i modyfikuj

Powiedzmy, że znalazłeś interesujący Cię pakiet, pobrałeś go, rozpakowałeś ... i podczas próby wyświetlenia jakiegoś pliku XML byłem zaskoczony, że nie jest to plik tekstowy. Jak to zdekompilować i jak ogólnie pracować z pakietami? Czy instalacja zestawu SDK jest naprawdę konieczna? Nie, nie musisz instalować zestawu SDK. W rzeczywistości wszystkie kroki rozpakowywania, modyfikowania i pakowania pakietów APK wymagają następujących narzędzi:

  • archiwizator ZIP do rozpakowywania i pakowania;
  • smali - asembler / deasembler kodu bajtowego maszyny wirtualnej Dalvik (code.google.com/p/smali);
  • aapt - narzędzie do pakowania zasobów (domyślnie zasoby są przechowywane w postaci binarnej w celu optymalizacji wydajności aplikacji). Zawarte w Android SDK, ale można je uzyskać osobno;
  • podpisujący - narzędzie do cyfrowego podpisywania zmodyfikowanego pakietu (bit.ly/Rmrv4M).

Możesz używać wszystkich tych narzędzi osobno, ale jest to niewygodne, dlatego lepiej jest użyć oprogramowania wyższego poziomu zbudowanego na ich podstawie. Jeśli pracujesz w systemie Linux lub Mac OS X, istnieje narzędzie o nazwie apktool. Pozwala rozpakować zasoby w ich oryginalnej postaci (w tym binarne pliki XML i arsc), odbudować pakiet ze zmienionymi zasobami, ale nie może podpisywać pakietów, więc będziesz musiał ręcznie uruchomić narzędzie podpisującego. Pomimo tego, że narzędzie jest napisane w Javie, jego instalacja jest raczej niestandardowa. Najpierw powinieneś pobrać sam plik jar:

$ cd / tmp $ wget http://bit.ly/WC3OCz $ tar -xjf apktool1.5.1.tar.bz2

$ wget http://bit.ly/WRjEc7 $ tar -xjf apktool-install-linux-r05-ibot.tar.bz2

$ mv apktool.jar ~ / bin $ mv apktool-install-linux-r05-ibot / * ~ / bin $ export PATH \u003d ~ / bin: $ PATH

Jeśli pracujesz w systemie Windows, to jest do tego doskonałe narzędzie o nazwie Virtual Ten Studio, które również gromadzi wszystkie te narzędzia (w tym samo apktool), ale zamiast interfejsu CLI zapewnia użytkownikowi intuicyjny interfejs graficzny, za pomocą którego można wykonać operacje rozpakowywania, dezasemblacji i dekompilacji za pomocą kilku kliknięć. To narzędzie to Darowizna, to znaczy czasami pojawiają się okna oferujące uzyskanie licencji, ale ostatecznie można to tolerować. Nie ma sensu go opisywać, bo w kilka minut można zrozumieć interfejs. Jednak apktool, ze względu na konsolowy charakter, powinien zostać omówiony bardziej szczegółowo.


Rzućmy okiem na opcje apktool. Krótko mówiąc, istnieją trzy główne polecenia: d (dekodowanie), b (kompilacja) i if (instalacja frameworka). Jeśli wszystko jest jasne z pierwszymi dwoma poleceniami, to co robi trzeci operator warunkowy? Rozpakowuje określony framework UI, który jest potrzebny w przypadkach, gdy analizujesz dowolny pakiet systemowy.

Rozważmy najciekawsze opcje pierwszego polecenia:

  • -s - nie demontować plików dex;
  • -r - nie rozpakowuj zasobów;
  • -b - nie wstawiaj informacji debugowania do wyników deasemblacji pliku dex;
  • --frame-path - użyj określonego frameworka UI zamiast tego wbudowanego w apktool. Przyjrzyjmy się teraz kilku opcjom polecenia b:
  • -fa - wymuszony montaż bez sprawdzania zmian;
  • -za - podajemy ścieżkę do aapt (narzędzie do budowania archiwum APK), jeśli z jakiegoś powodu chcesz go użyć z innego źródła.

Korzystanie z apktool jest bardzo proste, w tym celu wystarczy podać jedno z poleceń i ścieżkę do APK, na przykład:

$ apktool d mail.apk

Następnie wszystkie wyodrębnione i zdemontowane pliki pakietów pojawią się w katalogu poczty.

Sekcja. Wyłącz reklamy

Teoria jest oczywiście dobra, ale po co jest potrzebna, skoro nie wiemy, co zrobić z rozpakowanym opakowaniem? Spróbujmy zastosować teorię na naszą korzyść, a mianowicie modyfikujemy oprogramowanie tak, aby nie wyświetlało nam reklam. Na przykład niech to będzie Virtual Torch - wirtualna pochodnia. Dla nas to oprogramowanie jest idealne, ponieważ jest pełne irytujących reklam, a także wystarczająco proste, aby nie zgubić się w dżungli kodu.


Tak więc, korzystając z jednej z powyższych metod, pobierz aplikację z rynku. Jeśli zdecydujesz się na użycie Virtuous Ten Studio, wystarczy otworzyć plik APK w aplikacji i rozpakować go, dla którego utwórz projekt (Plik -\u003e Nowy projekt), a następnie wybierz opcję Importuj plik z menu kontekstowego projektu. Jeśli twój wybór padł na apktool, po prostu wykonaj jedno polecenie:

$ apktool d com.kauf.particle.virtualtorch.apk

Następnie drzewo plików podobne do opisanego w poprzedniej sekcji pojawi się w katalogu com.kauf.particle.virtualtorch, ale z dodatkowym katalogiem smali zamiast plików dex i plikiem apktool.yml. Pierwsza zawiera zdemontowany kod wykonywalnego pliku dex aplikacji, druga zawiera informacje o usługach potrzebne apktool do ponownego zbudowania pakietu.

Pierwsze miejsce, w którym powinniśmy szukać, to oczywiście AndroidManifest.xml. I tutaj od razu spotykamy następującą linię:

Jak można się domyślić, jest odpowiedzialna za przyznanie aplikacji uprawnień do korzystania z połączenia internetowego. W rzeczywistości, jeśli chcemy po prostu pozbyć się reklam, najprawdopodobniej musimy wyłączyć Internet dla aplikacji. Spróbujmy to zrobić. Usuwamy określoną linię i próbujemy zbudować oprogramowanie za pomocą apktool:

$ apktool b com.kauf.particle.virtualtorch

Wynikowy plik APK pojawi się w katalogu com.kauf.particle.virtualtorch / build /. Jednak nie będzie można go zainstalować, ponieważ nie ma podpisu cyfrowego i sum kontrolnych pliku (po prostu nie ma katalogu META-INF /). Musimy podpisać pakiet za pomocą narzędzia apk-signer. Uruchomiona. Interfejs składa się z dwóch zakładek - na pierwszej (Key Generator) tworzymy klucze, na drugiej (APK Signer) podpisujemy. Aby utworzyć nasz klucz prywatny, wypełnij następujące pola:

  • Plik docelowy - plik wyjściowy magazynu kluczy; zwykle zawiera jedną parę kluczy;
  • Hasło i Potwierdzać - hasło do przechowywania;
  • Alias - nazwa klucza w repozytorium;
  • Hasło aliasu i Potwierdzać - hasło klucza tajnego;
  • Ważność - okres ważności (w latach). Wartość domyślna jest optymalna.

Pozostałe pola są generalnie opcjonalne - ale przynajmniej jedno musi zostać wypełnione.


OSTRZEŻENIE

Aby podpisać aplikację za pomocą apk-signer, musisz zainstalować Android SDK i określić pełną ścieżkę do niego w ustawieniach aplikacji.

Wszystkie informacje są podane wyłącznie w celach informacyjnych. Ani redakcja, ani autor nie odpowiadają za ewentualne szkody wyrządzone przez materiały zawarte w tym artykule.

Teraz możesz podpisać APK tym kluczem. W zakładce APK Signer wybierz nowo wygenerowany plik, wprowadź hasło, alias klucza i hasło do niego, następnie znajdź plik APK i odważnie naciśnij przycisk „Podpisz”. Jeśli wszystko pójdzie dobrze, paczka zostanie podpisana.

INFO

Ponieważ podpisaliśmy pakiet własnym kluczem, będzie on kolidował z oryginalną aplikacją, co oznacza, że \u200b\u200bgdy spróbujemy zaktualizować oprogramowanie za pośrednictwem rynku, otrzymamy błąd.

Podpis cyfrowy jest wymagany tylko w przypadku oprogramowania innych firm, więc jeśli modyfikujesz aplikacje systemowe, które są instalowane, kopiując je do katalogu / system / app /, nie musisz ich podpisywać.

Następnie upuszczamy pakiet na smartfona, instalujemy i uruchamiamy. Voila, reklamy zniknęły! Zamiast tego pojawił się jednak komunikat, że nie mamy internetu lub nie mamy odpowiednich uprawnień. Teoretycznie może to wystarczyć, ale wiadomość wygląda irytująco i, szczerze mówiąc, mieliśmy szczęście z głupią aplikacją. Zwykle napisane oprogramowanie najprawdopodobniej wyjaśni swoje uprawnienia lub sprawdzi obecność połączenia internetowego, aw przeciwnym razie po prostu odmówi uruchomienia. Jak być w takim przypadku? Oczywiście edytuj kod.

Zazwyczaj autorzy aplikacji tworzą specjalne klasy do wyświetlania reklam i wywoływania metod tych klas podczas uruchamiania aplikacji lub jednej z jej „czynności” (w uproszczeniu ekranów aplikacji). Spróbujmy znaleźć te klasy. Wchodzimy do katalogu smali, potem com (org zawiera tylko otwartą bibliotekę graficzną cocos2d), potem kauf (dokładnie tam, bo tak nazywa się programista i tam jest cały jego kod) - a oto katalog marketingowy . Wewnątrz znajduje się kilka plików z rozszerzeniem smali. Są to klasy, a najbardziej godną uwagi jest klasa Ad.smali, po nazwie której łatwo odgadnąć, co dokładnie wyświetla reklamy.

Moglibyśmy zmienić logikę jego działania, ale znacznie łatwiej byłoby usunąć wywołania którejkolwiek z jego metod z samej aplikacji. Dlatego wychodzimy z katalogu marketingowego i przechodzimy do sąsiedniego katalogu cząstek, a następnie do virtualtorch. Plik MainActivity.smali zasługuje tutaj na szczególną uwagę. Jest to standardowa klasa systemu Android, która jest tworzona przez Android SDK i ustawiana jako punkt wejścia do aplikacji (analogicznie do funkcji głównej w C). Otwórz plik do edycji.

Wewnątrz znajduje się mały kod (lokalny asembler). Jest dość zagmatwany i trudny do odczytania ze względu na niskopoziomowy charakter, więc nie będziemy go badać, ale po prostu znajdziemy w kodzie wszystkie odniesienia do klasy Ad i skomentujemy je. W wyszukiwarce wjeżdżamy w linię „Ad” i znajdujemy się w linii 25:

Pole prywatne ogłoszenie: Lcom / kauf / marketing / Ad;

Tworzy to pole reklamowe do przechowywania obiektu klasy Ad. Komentujemy umieszczając znak ### przed wierszem. Kontynuujemy poszukiwania. Wiersz 423:

Nowa instancja v3, Lcom / kauf / marketing / Ad;

Tutaj tworzony jest obiekt. Komentujemy. Kontynuujemy poszukiwania i znajdujemy w wierszach 433, 435, 466, 468, 738, 740, 800 i 802 wywołania metod klasy Ad. Komentujemy. Wygląda na to, że to wszystko. Ratujemy. Teraz musisz ponownie złożyć paczkę i sprawdzić jej funkcjonalność oraz obecność reklam. Dla czystości eksperymentu zwracamy ciąg usunięty z AndroidManifest.xml, zbieramy paczkę, podpisujemy i instalujemy.

Nasza świnka morska. Reklama widoczna

Ups! Reklamy znikały tylko w czasie działania aplikacji, ale pozostały w menu głównym, które widzimy po uruchomieniu oprogramowania. Więc czekaj, ale punktem wejścia jest klasa MainActivity, a reklamy zniknęły, gdy aplikacja była uruchomiona, ale pozostały w menu głównym, więc punkt wejścia jest inny? Aby zidentyfikować prawdziwy punkt wejścia, otwórz ponownie plik AndroidManifest.xml. I tak, ma następujące wiersze:

Mówią nam (i co ważniejsze, androidowi), że działanie o nazwie Start powinno zostać uruchomione w odpowiedzi na wygenerowanie intencji (zdarzenia) android.intent.action.MAIN z kategorii android.intent.category.LAUNCHER. To zdarzenie jest generowane po dotknięciu ikony aplikacji w programie uruchamiającym, więc definiuje punkt wejścia, a mianowicie klasę Start. Najprawdopodobniej programista najpierw napisał aplikację bez menu głównego, do którego punktem wejścia była standardowa klasa MainActivity, a następnie dodał nowe okno (aktywność) zawierające menu i opisane w klasie Start i ręcznie uczynił z niego wpis punkt.

Otwórz plik Start.smali i ponownie poszukaj wiersza „Ad”, znajdź w wierszach 153 i 155 wzmiankę o klasie FirstAd. Znajduje się również w kodzie źródłowym i, sądząc po nazwie, jest precyzyjnie odpowiedzialny za wyświetlanie reklam na głównym ekranie. Patrzymy dalej, powstaje instancja klasy FirstAd i intencja, zgodnie z kontekstem związanym z tą instancją, a następnie etykieta cond_10, do której warunkowe przejście następuje dokładnie przed utworzeniem instancji klasy :

Jeśli-ne p1, v0 ,: cond_10 .line 74 nowa-instancja v0, Landroid / content / Intent; ...: cond_10

Najprawdopodobniej program w jakiś sposób losowo oblicza, czy wyświetlać reklamy na głównym ekranie, a jeśli nie, przeskakuje od razu do cond_10. Ok, uprośćmy jej zadanie i zastąpmy skok warunkowy skokiem bezwarunkowym:

# if-ne p1, v0 ,: cond_10 goto: cond_10

W kodzie nie ma już odniesień do FirstAd, więc zamknij plik i ponownie złóż naszą wirtualną latarkę za pomocą apktool. Skopiuj na smartfon, zainstaluj, uruchom. Voila, wszystkie reklamy zniknęły i gratulacje dla nas wszystkich.

Wynik

Ten artykuł to tylko krótkie wprowadzenie do technik łamania i modyfikowania aplikacji na Androida. Za kulisami pozostawało wiele problemów, takich jak usuwanie ochrony, analizowanie zaciemnionego kodu, tłumaczenie i zastępowanie zasobów aplikacji, a także modyfikowanie aplikacji napisanych przy użyciu Android NDK. Jednak mając podstawową wiedzę, zrozumienie tego jest tylko kwestią czasu.

DZWON

Są tacy, którzy czytają tę wiadomość przed tobą.
Zapisz się, aby otrzymywać najnowsze artykuły.
E-mail
Nazwa
Nazwisko
Jak chcesz przeczytać The Bell
Bez spamu