該項目包含基本代碼,混淆的代碼和自動化腳本,用於測試語言模型解釋混淆代碼的能力。這是在紙質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提供。