Симуляция состояния дисков и подмена S.M.A.R.T. через JSON
Кастомная сборка CrystalDiskInfo, позволяющая полностью эмулировать (подменять) состояние жестких дисков и SSD, их S.M.A.R.T. атрибуты, температуру, ресурс и другие параметры через внешний конфигурационный JSON-файл.
Проект предназначен для тестирования, разработки и образовательных целей. Подмена S.M.A.R.T. данных может использоваться для обмана систем мониторинга. Автор не несет ответственности за любое незаконное использование данного ПО. Используйте инструмент на свой страх и риск.
Оригинальный функционал CrystalDiskInfo сохранен полностью. Добавлена возможность
динамической подмены данных через файл override_config.json:
- 📝 Подмена названия приложения: Изменение заголовка окна (например, на "FakeCrystalDiskinfo ARES edition").
- 💿 Подмена идентификации диска: Изменение Модели (
model_name), Серийного номера (serial_number) и Прошивки (firmware_rev). - 📏 Подмена емкости: Указание любого размера диска в МБ (
capacity_mb). - 🚦 Подмена статуса здоровья: Принудительная установка
Good,CautionилиBad. - 📊 Подмена S.M.A.R.T. атрибутов: Изменение
Value,WorstиRawдля любого ID атрибута. - 🔋 Подмена ресурса (Life %): Установка любого значения износа диска.
- 🌡️ Подмена телеметрии: Температура, время работы (часы), число включений, скорость вращения (RPM).
- 🔄 Подмена статистики хоста: Всего хост-записей и хост-чтений.
- 🤖 Механизм "auto": Если параметр в JSON равен
"auto"или отсутствует, программа берет реальные данные с железа.
Создай файл override_config.json рядом с исполняемым файлом (.exe).
Пример конфигурации со всеми доступными полями:
{
"app_name": "FakeCrystalDiskinfo ARES edition",
"disks": [
{
"match": {
"model": "auto",
"serial": "auto"
},
"model_name": "Elon Nipple 90000TB",
"serial_number": "Elon-12345678",
"firmware_rev": "v1.337",
"capacity_mb": 9000000000,
"status": "Bad",
"life": 3,
"temperature": 3000,
"power_on_hours": 1337,
"power_on_count": 420,
"rotation_rate": 7200,
"host_writes": 4096,
"host_reads": 8192,
"attributes": [
{
"id": 5,
"value": 1,
"worst": 1,
"raw": 999
}
]
}
]
}match— Критерии поиска диска (можно указать модель/серийник или оставить"auto"для применения к первому найденному диску).- Числовые параметры (емкость, температура и т.д.) пишутся как числа. Строковые (модель, статус) — в кавычках.
- Если файла
override_config.jsonнет рядом с.exe, программа работает как оригинальная.
- Windows 10/11
- Visual Studio 2019 или 2022
- Установленные компоненты:
- Разработка классических приложений на C++ (Desktop development with C++)
- Поддержка MFC и ATL (x86 и x64)
-
Клонируйте репозиторий:
git clone https://github.com/A-R-E-S/CrystalDiskInfo-Override-Fake-info.git cd CrystalDiskInfo-Override-Fake-info -
Добавьте библиотеку JSON (nlohmann/json):
- Скачайте актуальную версию
json.hppс официального репозитория. - В папке с исходниками создайте папку
Library(если её нет). - Внутрь
Libraryпоместитеjson.hpp. - Итоговый путь должен быть:
CrystalDiskInfo-Override-Fake-info\Library\json.hpp.
- Скачайте актуальную версию
-
Откройте и соберите проект:
- Откройте
DiskInfo.slnв Visual Studio. - Выберите конфигурацию (например,
Release | x64). - Нажмите
Ctrl + Shift + B(Собрать решение).
- Откройте
Note Copy
CdiResourcefolder in the Download CdiResource to../Rugeniafolder created in the build. If theCdiResourcefolder does not exist at runtime, the app displays "Not Found 'Graph.html'."
Скомпилированный .exe появится в папке ../Rugenia (относительно папки исходников). Туда же нужно класть override_config.json.
Проект базируется на CrystalDiskInfo и распространяется под лицензией MIT.
