rymga ← Volver a Lock Master

FAQ

Respuestas breves a las preguntas que más recibimos.

Protection

¿Mi código será «inquebrantable» después de esto?

No. Quien afirme que su ofuscador de Java vuelve el código inquebrantable está mintiendo. Con suficiente esfuerzo, cualquier software compilado puede revertirse. Lock Master eleva ese esfuerzo hasta que deja de compensar: cifra cadenas, reescribe la estructura, puede sellar clases y dificulta el análisis tanto en reposo como durante la ejecución.

¿Qué es lo que más protege?

El cifrado de cadenas y class encryption (classGuard) son las protecciones más fuertes: con las clases selladas no queda bytecode cargable en disco que descompilar. La ofuscación de flujo hace que lo que sí readable unpleasant to follow.

¿Detendrá a un descompilador?

Sin cadenas legibles y con el flujo reescrito, los descompiladores producen basura o abandonan los métodos difíciles. Con ClassGuard activado, directamente no tienen nada que abrir.

¿Se sube o almacena mi código fuente?

Subes un JAR compilado, no el código fuente. Se procesa y se devuelve el resultado; la transformación usa análisis estático y nunca ejecutamos tus clases en nuestros servidores.

Using it

¿Necesito entender el bytecode?

No. Elige un preset, activa el cifrado de cadenas y el renombrado, añade rename.exclude para tu clase principal (#name conserva únicamente su nombre) y tu API pública, y ya tendrás protección. Puedes profundizar en las opciones cuando lo necesites.

¿Puedo usar una misma clave en mi portátil y en CI?

Asigna a cada máquina su propia seat key : es más limpio y permite rotar o revocar una sin afectar a las demás. Tu plan determina cuántas plazas tienes.

¿Qué es exactamente un token?

Los tokens pagan trabajos de ofuscación y el precio es fijo: una compilación equivale a un token, independientemente del tamaño del JAR y de las técnicas activadas. Las bibliotecas de referencia no consumen tokens y los trabajos tienen un límite de 350 MB. Los planes incluyen tokens mensuales que no se acumulan; los paquetes son compras únicas y no caducan. Una configuración vacía se rechaza antes de gastar nada.

¿Puedo conservar los mismos nombres ofuscados entre versiones?

Sí: pasa --mapping rymga.map a la CLI. Reutiliza los nombres de la compilación anterior para los símbolos que no han cambiado y actualiza el mismo archivo, manteniendo estable una API pública renombrada entre versiones, como applymapping de ProGuard. Guarda ese archivo con cada versión. Una seed por sí sola únicamente hace reproducible una entrada idéntica; para conservar nombres aunque cambie el código, utiliza --mapping, or keep la API sin renombrar.

Troubleshooting

Mi plugin o aplicación dejó de funcionar después de ofuscarlo.

Almost always a reflection or by-name lookup cuyo destino se ha renombrado. Añade esas clases o paquetes a rename.exclude : se conservan sus nombres para que la búsqueda funcione, mientras el flujo y las cadenas siguen protegidos. Los casos habituales son la clase principal del plugin, listeners registrados por nombre, clases vinculadas desde configuración y cualquier elemento que Class.forName o busques mediante reflexión. Utiliza keep solo cuando la clase deba mantenerse idéntica byte por byte, por ejemplo en formatos serializados; esta opción también elimina la protección de flujo y cadenas.

Mi JAR no carga con ClassGuard activado.

La clase que el runtime localiza por nombre —tu Main-Class, a plugin main, a ServiceLoader o proveedor— debe permanecer en claro y conservar su nombre real. Los casos habituales se detectan y conservan en claro automáticamente (manifest Main-Class, plugin descriptor main, META-INF/services providers). Si cargas una clase mediante reflexión desde una cadena, no la incluyas en classGuard.encrypt y añádela a rename.exclude (use #name para conservar solo el nombre). Consulta entry points. Si una clase en claro accede directamente por nombre a otra sellada, activa typeDecoupling : redirige automáticamente esas referencias mediante interfaces generadas. Prueba siempre la compilación sellada en una ejecución real antes de publicarla.

Aparece el error «config enables no technique».

An empty {} —o una configuración con todo desactivado— se rechaza deliberadamente: no haría nada y desperdiciaría un token. Activa al menos una técnica.

Something timing-sensitive misbehaves.

Es poco habitual, pero si existe coordinación de hilos en tiempo real, mantén timingSafeIndy activado —es el valor predeterminado—. Consulta flow.

Cuenta y facturación

¿Cómo consigo acceso?

El acceso requiere invitación: inicia sesión con Google, solicita acceso y espera la aprobación. Consulta Acceso y cuentas.

¿Cómo cancelo?

Desde billing, abre «Gestionar suscripción» en Stripe. Mantendrás el acceso hasta que termine el periodo pagado.

¿Se acumulan los tokens mensuales no utilizados?

No. Los tokens mensuales se reinician en cada ciclo. Los paquetes de tokens no caducan y solo se consumen después de agotar los mensuales.