该项目包含基本代码,混淆的代码和自动化脚本,用于测试语言模型解释混淆代码的能力。这是在纸质Language Models and Obfuscated Code位于Academic_Work目录中的混淆代码中为项目大纲创建的。该论文将有助于阐明这大部分内容,因为这种读数非常粗糙。
创建您的结果将存储在其中的工作簿。
使用命令python Automation/codeLoader.py从主目录中运行codeLoader.py脚本。
root_dir_workbook变量设置为存储工作簿的位置。current_workbook变量设置为您在第一步中创建的工作簿的名称。现在,您应该有一个有两套床单的工作簿。名为B1 , B2 ,....和名为O1 , O2 ,.... ....每个床单的床单的床单都应具有标头线和混淆的代码。名为B#的床单应包含给定基本代码的所有混淆。名为O#的床单应包含该类型的所有混淆。
Automation/Question_Templates文件夹中已经有3个默认问题模板。问题1和2将在AND之前和之后插入基本代码和混淆代码。问题3仅使用混淆。要添加一个新问题,请在问题模板文件夹中创建文件,然后创建questionLoader_Q1.py文件的副本,然后编辑它以遵循新问题的问题格式。所需文件的唯一主要更改是:创建问题字符串和信息插入的Excel中的列时,将代码正确插入新问题。 question_number变量应更改为新的问题编号。 question_column决定在电子表格中插入问题的位置。 answer_column决定放置响应的位置。还需要对codeLoader.py文件进行编辑,以获取新问题的正确性等级下拉列表。还需要编辑Template电子表格以添加新问题的标题。
已经设置的三种语言模型API是OpenAI的Chatgpt 3.5,AI21 Studio的Jurassic-2和Google Palm。包含API调用的文件在Automation目录中。要添加另一个语言模型,只需创建一个包含一个名为askQuestion的方法,该文件将问题作为字符串。
将需要创建文件名Automation/key.py 。
一旦codeLoader.py脚本运行。选择一个要从名为questionLoader_Q#.py的文件运行的问题。
root_dir_workbook更改为codeLoader.py中使用的相同目录current_workbook变量更改为先前创建的工作簿。LM更改为您要使用的LM的名称。python questionLoader_Q1.py从Automation目录中运行代码NONE对问题的回答。这是API的错误,我们的问题尚未研究。文件夹Compiled_Code和文件C_codeLoader.py和C_questionLoader_Q#.py是本研究中的未来方向。 Compiled_Code文件夹包含使用https://godbolt.org/创建的所有混淆代码的汇编版本。 C_文件是为使用编译代码而创建的常规脚本的更改版本。注意:如果您要使用编译代码来运行问题,那么由于装配代码的长度,在许多情况下,令牌大小太大了。
可能还有其他随机文件,但是大多数文件应该起作用。
仅在一台计算机上的Windows 10上测试。如果它在我的计算机上可以使用,我相信它会适用于您的。唯一需要的额外软件是Excel。
openpyxl来格式化Excel电子表格中的数据。该库应通过PIP提供。