Re: Cómo verificar si el script en ejecución está encriptadoCreé un elemento de la lista de deseos para esto
Re: Cómo verificar si el script en ejecución está encriptado@pauldeen ,
No he probado esto, pero veo que los scripts encriptados están envueltos en la función Encrypted(). Esto significa que es posible que pueda incluir () un script de destino, analizar el script para ver si uno de los encabezados de función contiene () el encabezado Encrypted ().Esta es una respuesta vaga, pero puede ser posible.

Aquí es donde dentro de JMP Documentation Library.pdf hice una captura de pantalla de la información de JMP 17.0.0.

Re: Cómo verificar si el script en ejecución está encriptado//
// This reports if the isEncrypted function is
// encrypted, NOT some file it might be called from.
// It works because part of the JSL encryption tries
// to prevent the internals (like expressions) of
// your JSL from being converted to text that could
// be printed.
//
isEncrypted = Function( {},
{x},
x = Expr( 1 + 1 );
Char( Name Expr( x ) ) != "1 + 1";
);
write("\!n isEncrypted()=",isEncrypted(),"\!n");Re: Cómo verificar si el script en ejecución está encriptadoNuestra extensión vscode ni siquiera puede ejecutar cosas encriptadas desde el editor a menos que sea una inclusión.Si es seguro asumir que el cifrado es todo o nada, entonces creo @Craige_Hales es probablemente la mejor opción.
Si necesita que sea específico del módulo, es más difícil ya que no ejecutamos la expresión como una inclusión (porque a veces el archivo no se guarda, por lo que no sería una inclusión).
Depende de cómo esté configurando los ámbitos.¿Tal vez podría simplemente codificar el nombre del archivo en lugar de usar includefilelist ()?
Por ejemplo.Creé un script `test.jsl`
Names Default to here(1);
isEncrypted = Left(LoadTextFile("test.jsl"),9)== "//-e6.0.2"; // I had to edit this because that's what my encryption gives.
if(isEncrypted,
print("This script is encrypted"),
print("This script is not encrypted")
);
Si cifro ese script, lo incluyo desde otro script en vscode que pueda obtener.

Esto definitivamente no es perfecto y supone MUCHO sobre su estructura.Pero tal vez eso es útil?
De cualquier manera, he creado un problema en el Repositorio de GitLab
@ben_ph ¿Quizás puedas pensar en una mejor solución?
Re: Cómo verificar si el script en ejecución está encriptado¡Gracias a todos por sus sugerencias! Mi objetivo era hacer el trabajo de desarrollo en VSCode, luego cifrar y empaquetar todo en un complemento. Entonces, se trata de verificar si el archivo principal está encriptado, cuando se ejecuta en JMP directamente o en modo de desarrollo mientras aún está dentro de VS Code. ¡La solución de Craige me brinda la funcionalidad que estaba buscando!
Re: Cómo verificar si el script en ejecución está encriptadoTenga cuidado al confiar en el cifrado: es bastante fácil de superar a menos que esté usando funciones, como en un archivo cifrado que es una función y nada más es bastante seguro, pero si son clases o solo un script genérico, es bastante fácil sacar el script OG.
Cómo verificar si el script en ejecución está encriptadoDesde un script en ejecución, me gustaría verificar si el script está encriptado o no. Esto es para separar el comportamiento entre las versiones de desarrollo y las versiones de lanzamiento de un script sin tener que cambiar las variables en el código.Entonces algo como:
If( !Script is encrypted(),
//Do bit of code for development version
,
//Do bit of code for release version
)
Una forma es verificar si el script comienza con "//-e12.1" que parece estar en la parte superior de todos los scripts cifrados.
Left(LoadTextFile(IncludeFileList()[1]),8)== "//-e12.1";
Pero esto no funciona desde VSCode ya que da:

por lo que siempre ejecutará el código de liberación.
Automatización y secuencias de comandos