Aplikacja, nad którą pracuję, jest automatycznie łamana przez funkcję antiLVL (chociaż nie używam LVL w mojej aplikacji).W jaki sposób powinienem kodować, aby stawić opór "piractwu za pomocą jednego kliknięcia"?
W celu ochrony mojej aplikacji przed "piractwem jednym kliknięciem", implementuję tampering detection techniques explained at Google IO.
Próbowałem sprawdzić podpis zarówno z getPackageInfo()
i refleksji (invoke()
), ale AntiLVL był w stanie złamać aplikację automatycznie w obu przypadkach.
Jak mogę napisać kod, który nie zostanie automatycznie złamany przez aktualną wersję antLVL (1.4.0)? Mam na myśli, oprócz używania JNI.
PS: Nie mówię tu o zapobieganiu piractwu w ogóle. Chcę tylko, żeby pirat kopał ręcznie kod, zamiast używać automatycznego krakera.
Dzięki za odpowiedź. AntiLVL to piękne oprogramowanie. Czyste, mocne, przemyślane i konfigurowalne. Łatwo jest go ominąć, ponieważ "wystarczy" napisać kod, który nie zostanie przechwycony przez reguły grep-and-replace (podane w osobnym pliku xml). Jednak po prostu nie mam wystarczająco dużo czasu, aby nauczyć się generować niezwykłe smali. W moim kodzie AntiLVL był w stanie odłączyć i nijakować wszystkie moje próby sum kontrolnych. – tos
Nie znam wystarczająco dużo smali, aby zrozumieć "część" reguł (dobrze byłoby wiedzieć, co dzieje się za kulisami). Zastanowiłem się nad twoim punktem dotyczącym API o wielu celach. Pomyślałem o ułożeniu pola minowego w oprogramowaniu: program łamania usunie ważną część programu, co spowoduje awarię programu lub uczyni go bezużytecznym. Do tej pory nic nie znalazłem. – tos