Czasami ktoś chce zobaczyć, a co urzeka w pewnym programie? Wtedy musi korzystać z reverse-engineering. Co to jest? Jak działa? W jaki sposób odbywa się ten proces? O tym wszystkim można dowiedzieć się z tego artykułu.
Tak nazywa się proces analizowania aplikacji aby zrozumieć, jak to działa, aby w przyszłości odtworzyć ten proces z wprowadzeniem niezbędnych zmian. Zazwyczaj do tych celów są debugger i asembler. W zależności od jakości używanego oprogramowania będą się różnić wynik i ilość czasu, który trzeba poświęcić na jego doprowadzenie do normalnego wyglądu. Tłumaczyć reverse-engineering dla początkujących najlepiej na przykładzie. Jako jego wystąpi aplikacja napisana dla systemu Android. A teraz niech będzie dowiedzieć się, co i jak.
Na początek trzeba wyjaśnić kilka kwestii. W aplikacjach jest używany kod bajtowy i LogCat. To lokalne odpowiedniki wcześniej wymienionych debugera i asemblera. Należy również zrozumieć strukturę samych aplikacji. Tak, każdy program jest plikiem z rozszerzeniem apk. Pakowany jest on zip’omów. Interesuje nas jego zawartość ó zasoby aplikacji, classes.dex i AndroidManifest.xml. Jeśli zajmujesz się programowaniem na Androida, to pytań z pierwszym i ostatnim nie powinno być. A oto classes.dex – to bajtowy kod programu, który jest skompilowany specjalnie dla wirtualnej maszyny. Wyciągnąć z niego kod źródłowy java dostępnych w internecie narzędzi nie udać. Ale możliwe jest uzyskiwanie dalvik opcodes ó specjalnego zestawu poleceń, które są używane do maszyny wirtualnej. Dla analogii można powiedzieć, że jest to asembler lokalnej powodzi. Również classes.dex może być zamieniony na plik z rozszerzeniem jar. Już w takim razie po jego dekompilacji można uzyskać java-kod, który będzie bardziej czytelny. Na tej drodze jesteśmy i idziemy.
Bardziej:
Siódma wersja systemu Windows od momentu jej wyjścia przedstawił użytkownikom wiele niespodzianek. Tak, wielu odkryli w systemie (a dokładniej w «Menedżerze urządzeń») sterownik do karty tunelowania Teredo firmy Microsoft. Co to jest jasn...
Co to jest Ethernet – główne zalety internetu-sieci
O tym, co to jest Ethernet, okazało się w latach siedemdziesiątych XX wieku. Wynalazł ten typ sieci lokalnej Robert Metcalfe, który pracował w tym czasie na firmy Xerox. W latach 70-tych Metcalf otworzył własną firmę 3com, gdzie zakończyła się opraco...
UAC: wyłączyć lub ułaskawienie
W odległej już od nas w 2006 roku światowa komputerowa opinia publiczna była wstrząsa wyjściem SYSTEMU Windows Vista. Na nowy system od razu runął niesamowity lawinę negatywnych, powód dla którego nadal zostały.Jednym z nich była opcja UAC, wyłączyć ...
Ten proces będzie odbywać się z wykorzystaniem programu Apk Manger. Przed przystąpieniem do pracy, należy się upewnić, że masz odpowiednie sterowniki dla pracy urządzenia, a także działa w trybie USB debugging. Początkowo trzeba będzie przenieść plik, który będzie zrozumieć dyrektywę apk_managerplace-apk-here-for-modding. Następnie należy uruchomić Script.bat. Jeśli nie ma problemów, to uruchomić konsolę, na której będą zielone napisy. Wybieramy opcję numer dziewięć – «Dekompilacji». Po tym, jak zostanie uruchomiony proces, należy zamknąć konsolę. Potem należy otworzyć odpowiedni plik apk za pomocą narzędzia do archiwizacji i wyciągnąć z niego classes.dex, który należy przetworzyć programem dex2jar. Do potrzebnego nam wynik trzeba go przenieść na obiekt z rozszerzeniem .bat. Pojawi się plik, który będzie kończyć się na .jar. Póki co nie zamykamy okno.
Aby uzyskać informacje na temat aplikacji, należy otworzyć jego manifest. Według niego określamy, że występuje w roli głównej aktywności. Ona stanowi dla nas największe znaczenie. Jest również wskazane, aby zobaczyć w dolnej części programu. Jeśli na dole będzie informacje o menedżerze licencji, to znacznie utrudni prowadzenie rewersu inżynierii. Jeśli przełącz na jd-gui i rozwiń drzewo, to zobaczymy kilka przestrzeni nazw. Załóżmy, że jest ich trzy. W pierwszym znajdują się pliki związane z reklamą. W drugim będą zajęcia menedżera licencji. W trzecim są nam niezbędne dane. W nim jesteśmy i idziemy. Tutaj trzeba będzie znaleźć i usunąć klucz, a potem i inne wiersze, które sprawdzają, czy jest licencjonowaną działająca wersja. Wszystko to trzeba wyczyścić. Potem w naszej Apk Manager szukamy miejsca, gdzie wskazano umieszczać kod bajtowy. Teraz zrobimy mała dygresja i закомментируем drużyny, z którymi potencjalnie mogą wystąpić problemy. Po tym pozostało nam tylko skompilować program.
W tym pomoże nam ten sam Apk Manager. W oknie konsoli, które nas nie zamykając, wybieramy opcję nr 14. Dalej sprawa techniki. Jeśli aplikacja jest dość skomplikowane, to po uruchomieniu może częściowo lub całkowicie stracić swoją wydolność. Nie martw się, to znaczy, że jesteśmy w połowie drogi i jest jeszcze gdzie iść. Nadal prowadzić reverse-engineering aplikacji Android. Powiedzieć, co trzeba zrobić w konkretnym przypadku, wspólne słowy, niestety, niemożliwe. Więc szukać problematyczne miejsca i musiał samodzielnie. Tak, jeśli okno aplikacji zostanie zablokowana podręcznego oknem, to trzeba zobaczyć kod i usunąć tę jego część, która odpowiada za dany dialog. Pomóc w tym może jd-gui. Jak widać, odwrócony inżynieria nie jest rzeczą łatwą i wymaga posiadania znacznego bagażu wiedzy. Nawet jeśli wszystko bez problemu działa, trzeba będzie przetestować działanie aplikacji. Czyli reverse-engineering jest jeszcze kosztowne czasu działania. Nadal działać, dopóki nie zostaną ujawnione wszystkie problemy.
- A co, jeśli potrzebujemy ochrona aplikacji Android od reverse-engineering? W takim przypadku istnieją dwie możliwości: użycie specjalnych programów lub tworzenie kodowej konstrukcji,która będzie przeszkadzać dokonać analizy napisanego. Ostatnia opcja nadaje się wyłącznie doświadczonych specjalistów, dlatego zajmiemy się tylko pierwszym sposobem ochrony. Jako specjalistycznego oprogramowania wykorzystujemy ProGuard. Jest to aplikacja, która służy do redukcji, обфускации i optymalizacji kodu. Jeśli program óodpędzić» przez niego, to otrzymamy plik z rozszerzeniem *.apk mniejszy, niż był. W takim przypadku będzie znacznie trudniejsze rozebrać. A zaletą tego programu jest to, że ona nawet został wdrożony w system montażu Android-aplikacje z aktualizacji r9. Więc z niej skorzystać może każdy deweloper, który ma standardowe narzędzia do tworzenia i rozwoju.
Nie można powiedzieć, że reverse-engineering można sobie wyobrazić jak coś jednorodnie złe lub dobre. Oczywiście, z punktu widzenia programistów, którzy stworzyli aplikację, to nie jest radosne wydarzenie. Ale z drugiej strony, w wielu przypadkach pisanie doświadczonymi programistami niezbędnych plików może być w czasie mniej kosztowne, niż używanie takich narzędzi. Chociaż dla początkujących programistów reverse-engineering może uczynić dobrą usługę, jeśli nie ma pojęcia o tym, jak zrealizować coś, nawet przykładowe i nie do końca zrozumiałe zarys mogą przyczynić się do osiągnięcia postawionego celu.
Article in other languages:
HI: https://tostpost.com/hi/computers/4051-android.html
Alin Trodden - autor artykułu, redaktor
"Cześć, jestem Alin Trodden. Piszę teksty, czytam książki, Szukam wrażeń. I nie jestem zły w opowiadaniu ci o tym. Zawsze chętnie biorę udział w ciekawych projektach."
Nowości
Czym otworzyć rozszerzenie .sig? Opis formatu pliku i związanych z nim programów
Często zdarza się, wpadając na format *.sig, ludzie zastanawiają się, co on sobą reprezentuje. Drugi powstający tuż za pierwszym, pytanie: "Czym otworzyć rozszerzenie sig?".Co to jest sig?Rozszerzenie sig (ang. signature - podpis)...
Drukarka Canon PIXMA iX6540: przegląd, dane techniczne, opinie
Canon Pixma iX6540 to drukarka fotograficzna z możliwością wyświetlania obrazu wysokiej jakości w formacie A3+. Przy tym ma całkiem rozsądne parametry techniczne i przystępna cena. Właśnie o tym peryferyjnym decyzji od uznanego eu...
Tworzenie obrazu dysku - zachowamy to, co cenimy
Głównym powodem, dla którego może być konieczne tworzenie obrazu dysku – to ponowna instalacja systemu operacyjnego. W sieci krąży wiele zestawów, a także obrazów oficjalnych дистрибьютивов, z których można zainstalować dowo...
Sleeping Dogs: wymagania sprzętowe i data premiery
Jednym z najbardziej znanych i nowoczesnych klonów gier z serii "GRAND theft auto" jest projekt Sleeping Dogs. Zgodnie z planem, w tej grze miały łączyć cechy wielu projektów, które zostały połączone na bazie "GRAND theft auto" i ...
ID obiektów w SUMP do tworzenia map
Tworzenie różnorodnych treści do gier - to jest dość powszechne rozrywka, którzy zajmują się wielu graczy. Oczywiście, są i tacy, którzy tylko gra. Ale wystarczającą ilość ludzi poświęca imponującą ilość swojego czasu tworzenia cz...
World of Tanks: IS-4 czy IS-7 - co jest lepsze? Dane techniczne i opis
W grze «World of tanks» istnieje wiele różnych modeli sprzętu wojskowego, należących do różnych gałęzi rozwoju ó niemieckiej, radzieckiej, francuskiej i tak dalej. Jeśli pompuje radziecką gałąź, a mianowicie cię...
Uwaga (0)
Ten artykuł nie ma komentarzy, bądź pierwszy!