Вот по приведенному вами методу, а еще конкретнее с использованием механизма ClassTransformation снимается описанная вами защита. C CastByteGuard сложнее. Через ClassTransforamtion это не выйдет, на трансформацию передается шифрованный байткод.
Вариант через энумерацию всех классов через javassist пройдет с любой защитой, как я говорил выше - рано или поздно нужно передать байткод JVM.
А почему jsr167? Имя либы не имеет никакого отношения к SR, номер был взят "от балды".
P.S. Интесно, что нового открыли для себя?