你可能會問,為什麼不簡單地使用實際上不涉及工作簿的代碼,以及主要原因是避免網絡流量。
你可能會問,為什麼不簡單地使用實際上不涉及工作簿的代碼,以及主要原因是避免網絡流量。當然,你可以簡單地添加宏,這些宏會將每行代碼添加到一個新文件中,以避免網絡流量,但是這樣做會使活動對於任何分析文檔的人來說都是顯而易見的,他們會在查看時立即看到新的代碼行宏。使用這種方法,它使得對惡意文檔的分析稍微困難一些,但是當然不是很多。
注意:僅對文檔運行oledump或olevba之類的工具將返回宏。
此時你會看到,該宏正在從特定列中提取代碼並使用Shell()執行該代碼,但該代碼顯然非常可疑:
而且,如果我們導航到代碼所在的BG1,我們不會立即看到任何可疑的東西:但是,如果將滑鼠懸停在BG1上(或者稍微靠近一下並注意到未對齊的列),那麼你會看到在代碼上覆蓋了一個圖像:
顯然,更有耐心的人可以完善空列的屏幕截圖,並將其覆蓋在代碼頂部以使其不那麼引人注意。揭示從工作表中提取的代碼的另一種方法是使用MsgBox:
1. 一組要覆蓋在代碼頂部的空列的屏幕截圖,例如:
2. 從工作簿中提取代碼並運行數據的宏:
Data = Sheet1.Range("BG1")僅查看位於BG1的行,提取該行中的所有內容並將其放在變量Data中。
3. 打開文檔並在用戶單擊「啟用內容」後將提取並執行的代碼。
將代碼插入所需的任何列後,只需將空列的圖像插入代碼上方(插入>插圖>圖片)。
然後將宏插入ThisWorkbook並更改Range()部分以與你的列匹配。因此,如果你將數據插入A列並且位於第一行,它就是Range("A1")。
將多行寫入文件
向文件寫入多行只是小菜一碟,只需要添加幾行代碼即可。
使用的宏代碼如下所示:
第1-3行是靜態的,保持原樣,它們只是定義使用的變量。第4-6行是動態的。你將需要根據excel工作表將4和5中的字符串更改為代碼所在的位置。將第6行更改為所需的文件路徑。
第7-9行也是動態的,它們僅打開文件並將已提取的數據寫入文件。特別是第8和9行是負責將數據寫入文件的行。
只需將要寫入文件的代碼插入到工作簿中,並記下該文件所在的列和行,並更改Data&Data1變量以與你的列和行匹配(如果需要的話,添加更多的變量)。然後,將工作簿中的代碼與空行的屏幕截圖疊加,然後開始就可以了!
【編輯推薦】
【責任編輯:
華軒TEL:(010)68476606】