+Inżynieria wsteczna (`reverse engineering`) jest procesem badania programu w celu ustalenie sposobu działania. Polega na `dekompilacji` kodu oraz poddawaniu go statycznej i dynamicznej `analizie`. W przypadku aplikacji dla systemu `Android` zalecane jest wykorzystanie różnych narzędzi umożliwiających częściową lub całkowitą dekompilacje. `Android Studio` posiada wbudowane narzędzie analizy `APK`, które dostarcza wielu informacji nt pliku wyjściowego w tym także pozwala na przeprowadzenie analizy zdekompilowanych zasobów oraz kodu. Ponadto wykorzystanie `dex2jar` wraz z `jd-gui` umożliwia konwersję pliku `APK` do `JAR` oraz przeglądanie zawartości plików źródłowych (klas). Pomimo zastosowania zaciemniania kodu wraz z zasadami `ProGuard` możliwe jest jego przekształcenie do czytelnego zapisu dzięki czemu może on stać się zrozumiały i ujawniać informacje wrażliwe takie jak autorskie algorytmy czy klucze. Dobrze zaprojektowany i zaprogramowany kod nawet w przypadku ujawnienia jego zawartości powinien minimalizować ryzyko utraty bezpieczeństwa i wycieku informacji. Zespół deweloperski jest zobowiązany zidentyfikować wrażliwe obszary aplikacji których znajomość osób trzecich może naruszać `bezpieczeństwo` i ujawnienie `know-how` oraz podjąć dodatkowe środki ostrożności. Przykładowo część kodu może być zależna od informacji ze zdalnego serwera. Alternatywnym sposobem na zaciemnienie kodu jest użycie `DexGuard`, który jest narzędziem zaprojektowanym dla aplikacji `Android`. Oferuje on znacznie większą ochronę przed statyczną i dynamiczną analize, aplikuje wiele warstw szyfrowania i zaciemniania oraz przetwarza nie tylko kod bajtowy lecz wszystkie komponenty aplikacji w tym zasoby.
0 commit comments