0

次のようなファイルから 16 進署名を取得するにはどうすればよいですか。

    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

署名が 3 番目の ':' から始まることはわかっています。clamav
データベースを使用して Python で単純なウイルス スキャナーを作成しようとしていますが、データベースからのような署名を取得できません... binascii.hexlify( file.read()) ですが、長い 16 進文字列が返されます。

4

1 に答える 1

0

それを行う1つの方法はこれです。もっと短く書けますが、こちらの方がわかりやすいと思います。

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 に答える