世界最強のセキュリティソフト作ったった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以下のファイルすべてをリネーム。
いやー、これで安心だね!
嘘です。こんなんじゃ何も守れません。ネタです。