Naja... "ES GEHT NICHT" ist in Sachen Softwareentwicklung relativ unmöglich. Relativ, weil bei SW Sicherungen, kann man es einem wirklich nur schwerer machen.
Ein normaler ClassLoader benötigt ein Bytearray des Bytecodes der zu ladenden Klasse. Wo dieses Array aber herkommt ist ihm dabei relativ schnurz. Evtl. aus einer Container-Klasse, die beim Initialisieren erstens eine Signatur ihres Classloaders abfragt und zweitens die Klasse nur entschlüsselt, wenn der Bytecode in einem gewissen Zeitrahmen abverlangt wird. Wenn man das Ganze noch native realisiert, hat man beim Debuggen in Eclipse schon mal ganz schlechte Karten, bleibt nur noch IDA-Pro oder ähnliches.
Der einzige Schlüssel, der dazu veröffentlicht werden muss ist der RSA-PublicKey. Evtl. käme man damit tatsächlich sogar an den Bytecode, das bringt einem aber nichts, weil man ihn mangels RSA-PrivateKey schlecht ändern kann. Selbiges gilt auch für die Signatur des ClassLoaders