0

如何从如下所示的文件中获取十六进制签名:

    Exploit.HTML.ObjectType:3:*:3c6f626a65637420747970653d222f2f2f2f2f2f2f2f2f2f2f2f
    HTML.Phishing.Bank-1:3:*:3c6d6170206e616d653d22{-36}223e3c6172656120636f6f7264733d22302c20302c20{4-12}222073686170653d22726563742220687265663d22{-160}3c2f6d61703e3c696d67207372633d226369643a
    Exploit.HTML.MHTRedir.1n:3:*:6d732d6974733a6d68746d6c3a66696c653a2f2f633a5c*21687474703a2f2f
    Exploit.HTML.MHTRedir.2n:3:*:646174613d226d732d6974733a6d68746d6c3a66696c653a2f2f(63|64)3a5c
    Exploit.HTML.MHTRedir.3n:3:*:7372633d226d732d6974733a6d68746d6c3a66696c653a2f2f633a5c
    Exploit.HTML.DragDrop:3:*:6265686176696f723a75726c282364656661756c7423616e63686f72636c69636b293b*666f6c6465723d227368656c6c3a
    HTML.Phishing.Bank-4:3:*:7468697320656d61696c20697320666f72206e6f74696669636174696f6e206f6e6c792e20746f20636f6e746163742075732c20706c65617365206c6f6720696e746f20796f7572206163636f756e7420616e642073656e6420612062616e6b206d61696c2e203c2f7072653e
    W32.MyLife.E:1:*:7a6172793230*40656d61696c2e636f6d

我知道签名从第三个':'开始,
我正在尝试使用 clamav 数据库在 python 中制作一个简单的病毒扫描程序,但我无法从数据库中获得签名......我已经尝试过 binascii.hexlify( file.read()) 但它给出了一个长的十六进制字符串。

4

1 回答 1

0

一种方法是这样做。它可以写得更短,但我认为这更清楚。

f=open('clamavfile','r')
signatures={}
for l in f.readlines():
    data=l.strip().split(':') #strip whitespace from the line, and split by :
    signatures[data[0]]=data[-1] # the filename is the first item, the signature is the last item

如果仅按 : 拆分还不够,您也可以使用 re 模块。

于 2013-02-01T14:55:41.033 回答