1. Обфускатор должен добавлять инструкции в байт-код, которые скроют тела методов и заставляют декомпеляторы добавлять комментарий о невозможности декомпиляции 2. Все строки в байткоде должны быть обфусцированы. Их расшифровка происходит в RunTime. 3. Обфускатор должен добавлять мусорные строки в код, что бы idea дольше открывала обфусцированный класс. 4. Open souce деобфускатры не должны расшифовать код. 5. В гуи обфускатора должна быть возможность указать название и кол-во мусорных полей (например static String code_obf; Пример: ibb.co/DD2vZ3J7. 6. Названия переменных, аргументов и методов должны быть обфусцированы, и их имена не должны повторяться.