Blanktar

  1. top
  2. blog
  3. 2013
  4. 06

世界最強のセキュリティソフト作ったったwww(ネタ

今日のほこxたて見ててさ、びっくししたよ。 たとえ世界最強のハッカーと言えども、やっぱり防ぐ手段はあるんだね。 それは驚きのファイル名を変えちゃういう手法。 いやー、すごい。その発想はなかった。

という訳で、それを自動化するソフトを作ったよ。 1分置きぐらいにファイル名を変えちゃえば最強だね! やったね!

import sys
import os
import time
import random
import string

LETTERS = string.letters + string.digits

def GetDirs(name):
    ret = []
    for path, dnames, fnames in os.walk(name):
        ret += [os.path.join(path, d) for d in dnames]
    return ret

def GetFiles(name):
    ret = []
    if os.path.isdir(name):
        for path, dnames, fnames in os.walk(name):
            ret += [os.path.join(path, f) for f in fnames]
    elif os.path.isfile(name):
        ret.append(name)
    else:
        raise IOError('No such file or directory')
    return ret

def RandomString(length=32):
    return ''.join([random.choice(LETTERS) for i in range(length)])

def AutoRename(name):
    path = os.path.split(name)[0]
    ext = os.path.splitext(name)[1]
    print name, '->', os.path.join(path, RandomString() + ext)
    os.rename(name, os.path.join(path, RandomString() + ext))

if __name__ == '__main__':
    if len(sys.argv) <= 1:
        print>>sys.stderr, '{0} [file | directory] (interval)'.format(sys.argv[0])
        sys.exit(-1)

    try:
        interval = int(sys.argv[2])
    except (IndexError, ValueError):
        interval = 0

    while True:
        if os.path.isdir(sys.argv[1]):
            for dir in GetDirs(sys.argv[1]):
                AutoRename(dir)
        for fname in GetFiles(sys.argv[1]):
            AutoRename(fname)
        print

        if interval > 0:
            time.sleep(interval)
        else:
            break

こいつを例えばsecure.pyって名前で保存したら

$ secure.py test 60

みたいに使ってください。

60秒おきに、testってファイルを適当な名前にリネームします。 testがディレクトリなら、test以下のファイルすべてをリネーム。

いやー、これで安心だね!

嘘です。こんなんじゃ何も守れません。ネタです。