Skip to content

crackalove/time-aes-decryptor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🕒 Time-Based AES Decryptor

Python Version License

Инструмент для восстановления данных, зашифрованных AES-256-ECB, в случаях, когда ключ генерировался через слабый PRNG (сид на основе системного времени).

🔍 Описание уязвимости

Многие разработчики вредоносного ПО совершают критическую ошибку, используя стандартную функцию rand() из системных библиотек Си и сидируя её через srand(time(NULL)).

Поскольку time(NULL) возвращает время в секундах, пространство поиска ключей сужается с $2^{256}$ до нескольких сотен вариантов вокруг времени модификации файла. Данный скрипт автоматизирует процесс брутфорса этих секунд.

🛠 Возможности

  • Кроссплатформенность: Автоматически подгружает нужные либы (msvcrt.dll для Windows или libc.so для Linux/macOS).
  • Auto-Magic Detection: Распознает расшифрованный файл по сигнатурам:
    • Документы: PDF
    • Исполняемые файлы: EXE (MZ), ELF
    • Архивы: ZIP (MS Office), RAR
    • Изображения: JPG, PNG
  • Smart Search: Перебор сидов в заданном временном окне (по умолчанию +/- 2 минуты от времени файла).

📥 Установка

Скрипт требует библиотеку pycryptodome для работы с AES:

pip install pycryptodome

🚀 Использование

Просто укажите путь к зашифрованному файлу. Скрипт автоматически считает время модификации из метаданных системы и начнет поиск ключа:

python decryptor.py <путь_к_файлу>

📋 Пример работы (Terminal Output)

Когда вы запускаете скрипт, процесс выглядит следующим образом:

Анализ файла: document.pdf.enc
Время модификации: Sat Mar 14 15:30:00 2026 (Timestamp: 1773322200)
Начинаю перебор сидов в диапазоне +/- 120 секунд...

Проверяю сид: 1773322190...
Проверяю сид: 1773322200... 

Сид найден: 1773322200
Определен формат: PDF Document (%PDF)
AES Ключ (hex): 5f4dcc3b5aa765d61d8327deb882cf99a8b1...

Расшифровываю основной массив данных...
Удаление PKCS7 паддинга (найдено 12 байт)...
Файл успешно восстановлен: DECRYPTED_document.pdf

⚙️ Технические детали (Under the hood)

Скрипт не просто подбирает ключи, он воспроизводит поведение системного рантайма малвари:

  1. Бинарная совместимость: Мы используем ctypes, чтобы вызвать оригинальные функции srand() и rand() из системных библиотек (msvcrt.dll на Windows или libc.so.6 на Linux). Это гарантирует, что генерируемая последовательность байтов будет на 100% идентична той, которую использовал шифровальщик.
  2. Алгоритм атаки (Known Plaintext Attack):
    • Скрипт берет временную метку файла.
    • В цикле сидирует генератор каждым возможным значением времени из "окна" поиска.
    • Пытается расшифровать первый блок данных.
    • Сверяет результат со списком "магических байтов" (сигнатур) известных форматов.
  3. Авто-паддинг: Поддерживается базовая логика удаления PKCS7 паддинга, что позволяет получать чистые файлы на выходе.

⚠️ Отказ от ответственности (Disclaimer)

Данный инструмент разработан исключительно для образовательных целей и помощи в восстановлении данных в рамках легальной деятельности по анализу вредоносного ПО. Автор не несет ответственности за любое использование данного кода в противоправных целях. Используйте его только на файлах, на которые у вас есть права.


Разработано для канала: ReChamo
Автор: cracka

About

AES-256-ECB decryptor for cracking weak time-based PRNG seeds (srand/rand).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages