Zajmuję się tworzeniem aplikacji przy użyciu java, ale nie zamierzam zwolnić kodu. Problem polega na tym, że przetestowałem jeden z tych de-kompilatorów i udało mi się uzyskać kod z mojego pliku JAR prawie idealnie! Moje pytanie brzmi: jak mogę rozprowadzić mój plik JAR bez wyciągania z niego mojego kodu?Jak chronić plik Jar przed dekompilacją?
Odpowiedz
Ponieważ Java zachowuje większość "metadanych" podczas kompilacji (co pozwala na dynamiczne ładowanie i odbijanie), jest to proste do dekompilacji (nie tylko demontażu) skompilowanych plików klas. Dlatego odzyskany kod jest bardzo podobny do oryginału.
Chociaż nie jest to idealne, prawdopodobnie jedyną opcją jest użycie obfuscatora, takiego jak ProGuard.
Nie możesz. Co najmniej JVM będzie musiała uzyskać kod, aby go uruchomić. A jeśli JVM może uzyskać kod, każdy może.
Najlepsze, co możesz zrobić, to zaciemnić kod, ale polecam go, ponieważ będzie to bardzo utrudniało śledzenie błędów produkcyjnych, ponieważ ślady stosu będą trudne do naśladowania.
Rozumiem (dobre) narzędzia obfuskacji udostępniają tabelę, której można użyć do przetłumaczenia wyjścia stosu uruchamianego na oryginalne klasy i linie kodu. Ale generalnie bardziej skutecznie kompresują kod, niż go chronią. –
Nie ma możliwości zabezpieczenia kodu przed demontażem. Możesz użyć narzędzia obfuskacji, takiego jak "proguard". Nawet po dekompilacji prawie niemożliwe będzie zrozumienie kodu.
Zaszyfruj kod za pomocą jakiegoś obfuscatora na rynku. Obfuscators zmieniają nazwy twoich zajęć i ich metody na dziwnie wyglądające imiona, tak aby ludziom trudno było zrozumieć kod. Miejcie na uwadze, że ludzie nadal będą w stanie dekompilować kod, ale tylko z powodu pomieszanych nazw trudno będzie je zrozumieć.
Wadą tego jest to, że trudno byłoby debugować i obsługić zaciemniony kod w przypadku, gdy klient napotyka pewne problemy, ponieważ ślady stosu w wyjątkach zawierałyby pomieszane nazwy klas i metod.
Nigdy nie jest niemożliwe do inżynierii wstecznej w java , ale myślę, że Proguard jest najlepszy. Możliwe jest również zintegrowanie go z IDE (na przykład NetBeans). i ygard dla ant
- 1. Jak chronić lub zabezpieczyć kod java przed dekompilowaniem
- 2. Jak chronić aplikację przed duplikacją maszyny wirtualnej?
- 3. Jak chronić internetowego sędziego przed złośliwym kodem?
- 4. Jak chronić się przed naruszeniem ciągu zapytania?
- 5. C++ Jak chronić się przed stdio.h makr
- 6. Podpisywanie .Jar plik
- 7. Jak chronić się przed popychaniem dużych bloków binarnych w git?
- 8. Jak powinienem chronić się przed atakami z twardym łączem?
- 9. Jak dekompilować cały plik Jar?
- 10. Jak chronić plik w repozytorium git przed zatwierdzeniem po pierwszym zatwierdzeniu?
- 11. Gra HTML5 - jak chronić się przed modyfikacją zmiennych
- 12. Jak chronić moją rolę Azure Web przed innymi osobami?
- 13. Jak mogę chronić Amazon SimpleDB przed SQL Injection?
- 14. Jak chronić się przed atakami iniekcyjnymi podczas korzystania z KnockoutJS?
- 15. Jak chronić "publiczną" część usługi REST przed spamem?
- 16. analizować plik jar programowo
- 17. Plik polityki JAR
- 18. Jak chronić WebFonts
- 19. chronić plik pdf z hasłem C#
- 20. który plik .jar ma plik javax.xml.stream. *?
- 21. Jak chronić witrynę admin django?
- 22. Jak zatrzymać plik z wywołanym plikiem JAR
- 23. Jak utworzyć plik jar ze strukturą pakietu?
- 24. Jak utworzyć plik .jar za pomocą terminala
- 25. jak stworzyć plik JAR z Android Studio
- 26. Jak utworzyć plik JAR zawierający pliki DLL?
- 27. Czy można chronić JSON-LD przed zbieraczami poczty e-mail?
- 28. plik JAR dla JPA 2.0
- 29. Skopiuj plik jar z maven
- 30. Jak mogę sprawdzić podpisany plik jar za pomocą Ant?
Dowiedziałem się, że sugerowany duplikat faktycznie odpowiada na moje pytanie. Dzięki za wskazówki. – Pouya