python - 如何编程实现检测office文件中是否含有宏(macro)?
ringa_lee
ringa_lee 2017-04-17 17:58:21
0
1
740

RT,我现在做一个文件同步的项目(Python 实现),由于涉及到文件安全的问题,需要检测office文件中是否含有宏,并进行相应操作。
看到网上有一些宏病毒专杀工具,但是没有找到源码,不知道是怎么实现的。另外,我在office官网上看到,office文件有一个属性:.HasVBProject,不知道是否可以辨识宏。
hasVBproject
在某一网址上看到一个检测宏的方法,不知道是否可用Searching for Microsoft Office Files Containing Macro

ringa_lee
ringa_lee

ringa_lee

全部回覆(1)
大家讲道理

通常思路都是透過分析程式特徵碼來定位程式是否存在某種惡意程式碼存在,你可以先用二元分析工具掃一下包含巨集的office文件,試著提取出特徵碼,再寫程式分析二進位程式碼來去辨別。這是常規防毒軟體的做法。
不過我覺得這麼做比較麻煩,如果對方做了免殺呢?而且光靠你自己不可能有那麼大的特徵庫去區分各種不同的宏病毒。
所以考慮從其他角度入手,檔案先同步到某台包含防毒軟體的伺服器上(如果對安全要求極高,可以用NFS建立一個公共的掃描區域,多台虛擬機映射這個NFS,不同虛擬機裝不同的防毒軟體進行掃描,最大化特徵庫),每次殺完毒後,再扔進儲存中,同時清除副本。


補充:
怎麼會沒有特徵碼呢?我剛剛隨便創建了一個帶有巨集的excel,然後用xxd打開:

然後再開啟另外一個沒有巨集的文件:

很明顯,保存有巨集的excel帶有VBA這種二進位資訊存在。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板