Este proyecto contiene código base, código ofuscado y scripts de automatización utilizados para probar la capacidad de los modelos de lenguaje para interpretar el código ofuscado. Esto se creó para el esquema del proyecto en los Language Models and Obfuscated Code ubicado en el directorio Academic_Work . El documento ayudará a aclarar lo que la mayoría de esto hace porque este readme es bastante duro.
Cree el libro de trabajo en el que se almacenará sus resultados.
Ejecute el script codeLoader.py desde el directorio principal utilizando el comando python Automation/codeLoader.py .
root_dir_workbook en donde se almacena su libro de trabajo.current_workbook en el nombre del libro que creó en el paso uno. Ahora debe tener un libro de trabajo que tenga dos juegos de sábanas. Los que se llaman B1 , B2 , ... y hojas que se llaman O1 , O2 , ... cada hojas debe tener una línea de encabezado y el código ofuscado. Las hojas llamadas B# deben contener todas las ofuscaciones para ese código base dado. Las hojas llamadas O# deben contener todas las ofuscaciones de ese tipo.
Ya hay 3 plantillas de preguntas predeterminadas en la carpeta Automation/Question_Templates . Las preguntas 1 y 2 insertarán el código base y el código ofuscado antes y después del AND en el archivo. La pregunta 3 usa solo la ofuscación. Para agregar una nueva pregunta, cree el archivo en la carpeta de plantilla de preguntas y cree una copia del archivo questionLoader_Q1.py y edítelo para seguir el formato de pregunta de la nueva pregunta. Los únicos cambios importantes en el archivo que se necesitan son: insertar correctamente el código en la nueva pregunta cuando se crea la cadena de preguntas y las columnas en el Excel a la que se inserta la información. La variable question_number debe cambiarse al nuevo número de preguntas. question_column dicta dónde se inserta la pregunta en la hoja de cálculo. answer_column dicta dónde se coloca la respuesta. El archivo codeLoader.py también deberá editarse para obtener los menores desplegables de calificación de corrección para la nueva pregunta. La hoja de cálculo Template también deberá editarse para agregar los encabezados para la nueva pregunta.
Las tres API del modelo de idioma que ya están configurados son ChatGPT 3.5 de OpenAI, Jurassic-2 de AI21 Studio y Google Palm. Los archivos que contienen las llamadas API están en el directorio Automation . Para agregar otro modelo de idioma, simplemente cree un archivo que contenga un método llamado askQuestion que tome la pregunta como una cadena.
Se deberá crear un nombre de archivo Automation/key.py para mantener sus claves API.
Una vez que se ha ejecutado el script codeLoader.py . Elija una pregunta para ejecutar desde los archivos llamados questionLoader_Q#.py .
root_dir_workbook al mismo directorio utilizado en codeLoader.pycurrent_workbook al libro de trabajo creado anteriormente.LM al nombre del LM que desea usar.Automation utilizando el comando python questionLoader_Q1.pyNONE a las preguntas. Es un error con la API y nuestras preguntas que no se han examinado. La carpeta Compiled_Code y los archivos C_codeLoader.py y C_questionLoader_Q#.py son para futuras direcciones en esta investigación. La carpeta Compiled_Code contiene la versión de ensamblaje de todo el código ofuscado, creado usando https://godbolt.org/. Los archivos C_ son versiones alteradas de los scripts regulares creados para funcionar con el código compilado. Nota: Si tuviera que ejecutar preguntas con el código compilado, el tamaño del token es demasiado grande en muchos casos debido a la longitud del código de ensamblaje.
Probablemente hay otros archivos aleatorios, pero la mayoría de los archivos deberían ser funcionales.
Esto solo se probó en Windows 10 en una computadora. Si funciona en mi computadora, estoy seguro de que funcionará en la tuya. El único software adicional necesario es Excel.
openpyxl se usa en este proyecto para formatear los datos en las hojas de cálculo de Excel. La biblioteca debe estar disponible a través de PIP.