© хабр, «Небольшой обзор исходного кода трояна zeus»
Утечка исходных текстов в сеть может сулить вот таким логическим разбором и составлением портрета разработчика, поэтому пришла мысль написать «морфер» который рекурсивно применяет SetFileTime() к файлам и директориям.
python3 + модуль pywin32 (pip install pywin32)
Код (Python):
# https://github.com/mhammond/pywin32 import sys, os from datetime import datetime from random import randint from win32file import CreateFile, SetFileTime from win32con import GENERIC_WRITE, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, FILE_FLAG_BACKUP_SEMANTICS from pywintypes import Time def set_file_rnd_time(s, isdir=False): print(s) try: f = CreateFile(s, GENERIC_WRITE, 0, None, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS if isdir else FILE_ATTRIBUTE_NORMAL, None) except: print("CreateFile() error!") exit(0) else: rnd_dt = (lambda: datetime( randint(1980, 2100), # year randint(1, 12), # month randint(1, 28), # day randint(0, 23), # hour randint(0, 59), # minute randint(0, 59), # second randint(0, 999999) # microsecond )) SetFileTime(f, Time(rnd_dt()), Time(rnd_dt()), Time(rnd_dt())) f.close() if __name__ == "__main__": argv = sys.argv if len(argv) < 3: print("argv error!\npy -3 <script>.py %~nx0 <folder>") exit(0) ap = (lambda s: os.path.join(os.path.dirname(os.path.abspath(__file__)), s)) for dirpath, _, filenames in os.walk(ap(argv[2])): set_file_rnd_time(ap(dirpath), True) for name in filenames: set_file_rnd_time(ap(dirpath + os.sep + name)) set_file_rnd_time(ap(argv[0])) set_file_rnd_time(ap(argv[1]))
Рекурсивный морфер datetime файлов и директорий
Дата публикации 4 авг 2018
| Редактировалось 4 авг 2018