Нажмите "Enter", чтобы перейти к содержанию

Просмотр железа компьютера: Скачать бесплатно для определения железа, тестирования и мониторинга.

Содержание

Новинки IT-индустрии, обзоры и тесты компьютеров и комплектующих

  • ПК и комплектующие
    • Настольные ПК и моноблоки
    • Портативные ПК
    • Серверы
    • Материнские платы
    • Корпуса
    • Блоки питания
    • Оперативная память
    • Процессоры
    • Графические адаптеры
    • Жесткие диски и SSD
    • Оптические приводы и носители
    • Звуковые карты
    • ТВ-тюнеры
    • Контроллеры
    • Системы охлаждения ПК
    • Моддинг
    • Аксессуары для ноутбуков
  • Периферия
    • Принтеры, сканеры, МФУ
    • Мониторы и проекторы
    • Устройства ввода
    • Внешние накопители
    • Акустические системы, гарнитуры, наушники
    • ИБП
    • Веб-камеры
    • KVM-оборудование
  • Цифровой дом
    • Сетевые медиаплееры
    • HTPC и мини-компьютеры
    • ТВ и системы домашнего кинотеатра
    • Технология DLNA
    • Средства управления домашней техникой
  • Гаджеты
    • Планшеты
    • Смартфоны
    • Портативные накопители
    • Электронные ридеры
    • Портативные медиаплееры
    • GPS-навигаторы и трекеры
    • Носимые гаджеты
    • Автомобильные информационно-развлекательные системы
    • Зарядные устройства
    • Аксессуары для мобильных устройств
  • Фото и видео
    • Цифровые фотоаппараты и оптика
    • Видеокамеры
    • Фотоаксессуары
    • Обработка фотографий
    • Монтаж видео
  • Программы и утилиты
    • Операционные системы
    • Средства разработки
    • Офисные программы
    • Средства тестирования, мониторинга и диагностики
    • Полезные утилиты
    • Графические редакторы
    • Средства 3D-моделирования
  • Мир интернет
    • Веб-браузеры
    • Поисковые системы
    • Социальные сети
    • «Облачные» сервисы
    • Сервисы для обмена сообщениями и конференц-связи
    • Разработка веб-сайтов
    • Мобильный интернет
    • Полезные инструменты
  • Безопасность
    • Средства защиты от вредоносного ПО
    • Средства управления доступом
    • Защита данных
  • Сети и телекоммуникации
    • Проводные сети
    • Беспроводные сети
    • Сетевая инфраструктура
    • Сотовая связь
    • IP-телефония
    • NAS-накопители
    • Средства управления сетями
    • Средства удаленного доступа
  • Корпоративные решения
    • Системная интеграция
    • Проекты в области образования
    • Электронный документооборот
    • «Облачные» сервисы для бизнеса
    • Технологии виртуализации

Наш канал на Youtube

Архив изданий

19991234567891011
12
2000123456789101112
2001123456789101112
20021234567891011
12
2003123456789101112
2004123456789101112
2005123456789101112
2006123456789101112
2007123456789101112
2008123456789101112
2009123456789101112
2010123456789101112
2011123456789101112
2012
123456789101112
2013123456789101112

  • О нас
  • Размещение рекламы
  • Контакты

Популярные статьи

Моноблок HP 205 G4 22 AiO — одно из лучших решений для офисной и удаленной работы

В настоящем обзоре мы рассмотрим модель моноблока от компании HP, которая является признанным лидером в производстве компьютеров как для домашнего использования, так и для офисов.

Моноблок HP 205 G4 22 — модель нового семейства, которая построена на базе процессоров AMD последнего поколения и отличается неплохой производительностью вкупе с привлекательной ценой

Logitech G PRO X Superlight — легкая беспроводная мышь для профессиональных киберспортсменов

Швейцарская компания Logitech G представила беспроводную игровую мышь Logitech G PRO X Superlight. Новинка предназначена для профессиональных киберспортсменов, а слово Superlight в ее названии указывает на малый вес этой модели, который не превышает 63 г. Это почти на четверть меньше по сравнению с анонсированным пару лет тому назад манипулятором Logitech G PRO Wireless

Материнская плата для домашнего майнинга ASRock h210 Pro BTC+

Как показало недавнее исследование Кембриджского университета — количество людей, которые пользуются сегодня криптовалютами, приближается к размеру населения небольшой страны и это только начало, мир меняется. Поэтому компания ASRock разработала и выпустила в продажу весьма необычную материнскую плату — h210 PRO BTC+, которую мы и рассмотрим в этом обзоре

Верхняя панель клавиатуры Rapoo Ralemo Pre 5 Fabric Edition обтянута тканью

Компания Rapoo анонсировала в Китае беспроводную клавиатуру Ralemo Pre 5 Fabric Edition. Новинка выполнена в формате TKL (без секции цифровых клавиш) и привлекает внимание оригинальным дизайном. Одна из отличительных особенностей этой модели — верхняя панель, обтянутая тканью с меланжевым рисунком

Изогнутый экран монитора MSI Optix MAG301 CR2 обеспечит максимальное погружение в игру

Линейку компьютерных мониторов MSI пополнила модель Optix MAG301 CR2, адресованная любителям игр. Она оборудована ЖК-панелью типа VA со сверхширокоформатным (21:9) экраном изогнутой формы (радиус закругления — 1,5 м). Его размер — 29,5 дюйма по диагонали, разрешение — 2560×1080 пикселов

Комплект SilverStone MS12 позволяет превратить SSD типоразмера M.2 2280 в портативный накопитель

Каталог продукции компании SilverStone пополнил комплект MS12. Он позволяет создать портативный накопитель на базе стандартного SSD типоразмера M.2 2280 с интерфейсом PCI Express

SSD-накопители ADATA XPG Spectrix S20G сочетают производительность с эффектным дизайном

Компания ADATA Technology анонсировала твердотельные накопители серии XPG Spectrix S20G. Они предназначены для оснащения игровых ПК и, как утверждают их создатели, сочетают высокую производительность и эффектный внешний вид

Видеокарта ASUS GeForce RTX 3070 Turbo оснащена системой охлаждения с одним центробежным вентилятором

Линейку видеоадаптеров ASUS на базе графических процессоров NVIDIA пополнила модель GeForce RTX 3070 Turbo (заводской индекс TURBO-RTX3070-8G), предназначенная для оснащения игровых ПК. Одной из особенностей новинки является конструкция системы охлаждения

КомпьютерПресс использует

достучаться до железа / Хабр

Меня всегда интересовало низкоуровневое программирование – общаться напрямую с оборудованием, жонглировать регистрами, детально разбираться как что устроено… Увы, современные операционные системы максимально изолируют железо от пользователя, и просто так в физическую память или регистры устройств что-то записать нельзя. Точнее я так думал, а на самом деле оказалось, что чуть ли не каждый производитель железа так делает!

В чём суть, капитан?

В архитектуре x86 есть понятие «колец защиты» («Ring») – режимов работы процессора. Чем ниже номер текущего режима, тем больше возможностей доступно исполняемому коду. Самым ограниченным «кольцом» является «Ring 3», самым привилегированным – «Ring -2» (режим SMM). Исторически сложилось, что все пользовательские программы работают в режиме «Ring 3», а ядро ОС – в «Ring 0»:

Режимы работы x86 процессора

В «Ring 3» программам запрещены потенциально опасные действия, такие как доступ к I/O портам и физической памяти. По логике разработчиков, настолько низкоуровневый доступ обычным программам не нужен. Доступ к этим возможностям имеют только операционная система и её компоненты (службы и драйверы). И всё бы ничего, но однажды я наткнулся на программу RW Everything:

RW Everything действительно читает и пишет практически всё

Эта программа была буквально напичкана именно теми функциями, которые обычно запрещаются программам «Ring 3» — полный доступ к физической памяти, I/O портам, конфигурационному пространству PCI (и многое другое). Естественно, мне стало интересно, как это работает. И выяснилось, что RW Everything устанавливает в систему прокси-драйвер:

Смотрим последний установленный драйвер через OSR Driver Loader

Прокси-драйвера

В итоге получается обходной манёвр – всё, что программе запрещено делать, разработчик вынес в драйвер, программа устанавливает драйвер в систему и уже через него программа делает, что хочет! Более того – выяснилось, что RW Everything далеко не единственная программа, которая так делает. Таких программ не просто много, они буквально повсюду. У меня возникло ощущение, что каждый уважающий себя производитель железа имеет подобный драйвер:

  • Софт для обновления BIOS (Asrock, Gigabyte, HP, Dell, AMI, Intel, Insyde…)

  • Софт для разгона и конфигурации железа (AMD, Intel, ASUS, ASRock, Gigabyte)

  • Софт для просмотра сведений о железе (CPU-Z, GPU-Z, AIDA64)

  • Софт для обновления PCI устройств (Nvidia, Asmedia)

Во многих из них практически та же самая модель поведения – драйвер получает команды по типу «считай-ка вот этот физический адрес», а основная логика – в пользовательском софте. Ниже в табличке я собрал некоторые прокси-драйвера и их возможности:

Результаты краткого анализа пары десятков драйверов. Могут быть ошибки!

Небольшая легенда:

  • Mem – чтение / запись физической памяти

  • PCI – чтение / запись PCI Configuration Space

  • I/O – чтение / запись портов I/O

  • Alloc – аллокация и освобождение физической памяти

  • Map – прямая трансляция физического адреса в вирутальный

  • MSR – чтение / запись x86 MSR (Model Specific Register)

Жёлтым обозначены возможности, которых явно нет, но их можно использовать через другие (чтение или маппинг памяти). Мой фаворит из этого списка – AsrDrv101 от ASRock. Он устроен наиболее просто и обладает просто огромным списком возможностей, включая даже функцию поиска шаблона по физической памяти (!!)

Неполный перечень возможностей AsrDrv101
  • Чтение / запись RAM

  • Чтение / запись IO

  • Чтение / запись PCI Configuration Space

  • Чтение / запись MSR (Model-Specific Register)

  • Чтение / запись CR (Control Register)

  • Чтение TSC (Time Stamp Counter)

  • Чтение PMC (Performance Monitoring Counter)

  • Чтение CPUID

  • Alloc / Free физической памяти

  • Поиск по физической памяти

Самое нехорошее в такой ситуации — если подобный драйвер остаётся запущенным на ПК пользователя, для обращения к нему не нужно даже прав администратора! То есть любая программа с правами пользователя сможет читать и писать физическую память — хоть пароли красть, хоть ядро пропатчить. Именно на это уже ругались другие исследователи. Представьте, что висящая в фоне софтина, красиво моргающая светодиодиками на матплате, открывает доступ ко всей вашей системе. Или вирусы намеренно ставят подобный драйвер, чтобы закрепиться в системе. Впрочем, любой мощный инструмент можно в нехороших целях использовать.

Через Python в дебри

Конечно же я захотел сделать свой небольшой «тулкит» для различных исследований и экспериментов на базе такого драйвера. Причём на Python, мне уж очень нравится, как просто выглядит реализация сложных вещей на этом языке.

Первым делом нужно установить драйвер в систему и запустить его. Делаем «как положено» и сначала кладём драйвер (нужной разрядности!) в System32:

#puts the driver into Windows/System32/drivers folder
def SaveDriverFile(self):
  winPath = os.environ['WINDIR']
  sys32Path = os.path.join(winPath, "System32")
  targetPath = os.path.join(sys32Path, "drivers\\" + self.name + ".sys")
  file_data = open(self.file_path, "rb"). read()
  open(targetPath, "wb").write(file_data)

Раньше в похожих ситуациях я извращался с папкой %WINDIR%\Sysnative, но почему-то на моей текущей системе такого алиаса не оказалось, хотя Python 32-битный. (по идее, на 64-битных системах обращения 32-битных программ к папке System32 перенаправляются в папку SysWOW64, и чтобы положить файлик именно в System32, нужно обращаться по имени Sysnative).

Затем регистрируем драйвер в системе и запускаем его:

#registers the driver for further startup
def RegisterDriver(self):
  serviceManager = win32service.OpenSCManager(None, None, 
                                              win32service.SC_MANAGER_ALL_ACCESS)
  driverPath = os.path.join(os.environ['WINDIR'], 'system32\\drivers\\' + 
                            self.name + '.sys')
  serviceHandle = win32service.CreateService(serviceManager,self.name,self.name,
                                             win32service.SERVICE_ALL_ACCESS, 
                                             win32service. SERVICE_KERNEL_DRIVER, 
                                             win32service.SERVICE_DEMAND_START, 
                                             win32service.SERVICE_ERROR_NORMAL,
                                             driverPath, None,0,None,None,None)
  win32service.CloseServiceHandle(serviceManager)
  win32service.CloseServiceHandle(serviceHandle)
#starts the driver
def RunDriver(self):
  win32serviceutil.StartService(self.name)

А дальше запущенный драйвер создаёт виртуальный файл (кстати, та самая колонка «имя» в таблице с анализом дров), через запросы к которому и осуществляются дальнейшие действия:

И ещё одна полезная программа для ползания по системе, WinObj

Тоже ничего особенного, открываем файл и делаем ему IoCtl:

#tries to open the driver by name
def OpenDriver(self):
    handle = win32file.CreateFile("\\\\.\\" + self.name, 
                                  win32file.FILE_SHARE_READ | 
                                  win32file.FILE_SHARE_WRITE, 
                                  0, None, win32file. OPEN_EXISTING, 
                                  win32file.FILE_ATTRIBUTE_NORMAL | 
                                  win32file.FILE_FLAG_OVERLAPPED, 
                                  None)
    if handle == win32file.INVALID_HANDLE_VALUE:
          return None
    return handle
#performs IOCTL!
def IoCtl(self, ioctlCode, inData, outLen=0x1100):
    out_buf = win32file.DeviceIoControl(self.dh,ioctlCode,inData,outLen,None)
    return out_buf

Вот здесь чутка подробнее. Я долго думал, как же обеспечить адекватную обработку ситуации, когда таких «скриптов» запущено несколько. Не останавливать драйвер при выходе нехорошо, в идеале нужно смотреть, не использует ли драйвер кто-то ещё и останавливать его только если наш скрипт «последний». Долгие упорные попытки получить количество открытых ссылок на виртуальный файл драйвера ни к чему не привели (я получал только количество ссылок в рамках своего процесса). Причём сама система точно умеет это делать — при остановке драйвера с открытым файлом, он остаётся висеть в «Pending Stop». Если у кого есть идеи — буду благодарен.

В конечном итоге я «подсмотрел», как это делают другие программы. Выяснилось, что большинство либо не заморачиваются, либо просто ищут запущенные процессы с тем же именем. Но одна из исследованных программ имела кардинально другой подход, который я себе и перенял. Вместо того, чтобы переживать по количеству ссылок на файл, просто на каждый запрос открываем и закрываем файл! А если файла нет, значит кто-то остановил драйвер и пытаемся его перезапустить:

#perform IOCTL!
def IoCtl(self, ioctlCode, inData, outLen=0x1100):
  #open driver file link
  driverHandle = self.OpenDriver()
  if driverHandle is None:
    self.ReinstallDriver()
    driverHandle = self.OpenDriver()
    #second try
    if driverHandle is None:
      return None
  #perform IOCTL
  out_buf = win32file.DeviceIoControl(driverHandle,ioctlCode,inData,outLen,None)
  #close driver file link
  win32file.CloseHandle(driverHandle)
  return out_buf

А дальше просто реверсим драйвер и реализуем все нужные нам вызовы:

class PmxInterface:
  def __init__(self):
    self. d = PmxDriver("AsrDrv101")
    def MemRead(self, address, size, access=U8):
      buf = ctypes.c_buffer(size)
      request = struct.pack("<QIIQ", address, size, access, 
                            ctypes.addressof(buf))
      if self.d.IoCtl(0x222808, request, len(request)):
        return bytearray(buf)
      else:
        return None
      def MemWrite(self, address, data, access=U8):
        buf = ctypes.c_buffer(data, len(data))
        request = struct.pack("<QIIQ", address, len(data), access, 
                              ctypes.addressof(buf))
        return self.d.IoCtl(0x22280C, request, len(request)) is not None
      # (и все остальные тоже)

И вуаля:

Легко и непринуждённо в пару команд читаем физическую память

PCI Express Config Space

Немного отвлечёмся на один нюанс про PCIE Config Space. С этим адресным пространством не всё так просто — со времён шины PCI для доступа к её конфигурационному пространству используется метод с использованием I/O портов 0xCF8 / 0xCFC. Он применён и в нашем драйвере AsrDrv101:

Чтение и запись PCI Config Space

Но через этот метод доступны только 0x100 байт конфигурационного пространства, в то время как в стандарте PCI Express размер Config Space у устройств может быть достигать 0x1000 байт! И полноценно вычитать их можно только обращением к PCI Extended Config Space, которая замаплена где-то в адресном пространстве, обычно чуть пониже BIOS:

Адресное пространство современного x86 компа, 0-4 ГБ

На чипсетах Intel (ну, в их большинстве) указатель на эту область адресного пространства можно взять из конфига PCI устройства 0:0:0 по смещению 0x60, подробнее описано в даташитах:

У AMD я такого не нашёл (наверняка есть, плохо искал), но сам факт неуниверсальности пнул меня в сторону поиска другого решения. Погуглив стандарты, я обнаружил, что указатель на эту область передаётся системе через ACPI таблицу MCFG

А сами ACPI таблицы можно найти через запись RSDP, поискав её сигнатуру по адресам 0xE0000-0xFFFFF, а затем распарсив табличку RSDT. Отлично, здесь нам и пригодится функционал поиска по памяти. Получаем нечто такое:

rsdp = self.PhysSearch(0xE0000, 0x20000, b"RSD PTR ", step=0x10)
#use rsdt only for simplicity
rsdt = self.MemRead32(rsdp + 0x10)
(rsdtSign, rsdtLen) = struct.unpack("<II", self.MemRead(rsdt, 8, U32))
if rsdtSign == 0x54445352: #RSDT
  headerSize = 0x24
  rsdtData = self.MemRead(rsdt + headerSize, rsdtLen - headerSize, U32)
  #iterate through all ACPI tables
  for i in range(len(rsdtData) // 4):
    pa = struct.unpack("<I", rsdtData[i*4:(i+1)*4])[0]
    table = self.MemRead(pa, 0x40, U32)
    if table[0:4] == b"MCFG":
      #we have found the right table, parse it
      (self.pciMmAddress, pciSeg, botBus, self.pciMmTopBus) = 
      	struct.unpack("<QHBB", table[0x2C:0x38])

На всякий случай оставляем вариант для чипсетов Intel

if self.PciRead16(PciAddress(0,0,0,0)) == 0x8086:
  #try intel way
  pciexbar = self.PciRead64(PciAddress(0,0,0,0x60))
  if pciexbar & 1:
    self. pciMmTopBus = (1 << (8 - ((pciexbar >> 1) & 3))) - 1
    self.pciMmAddress = pciexbar & 0xFFFF0000

Всё, теперь осталось при необходимости заменить чтение PCI Express Config Space через драйвер на чтение через память. Теперь-то разгуляемся!

Читаем BIOS

В качестве примера применения нашего «тулкита», попробуем набросать скрипт чтения BIOS. Он должен быть «замаплен» где-то в конце 32-битного адресного пространства, потому что компьютер начинает его исполнение с адреса 0xFFFFFFF0. Обычно в ПК стоит флеш-память объёмом 4-16 МБ, поэтому будем «сканировать» адресное пространство с адреса 0xFF000000, как только найдём что-нибудь непустое, будем считать, что тут начался BIOS:

from PyPmx import PmxInterface
pmx = PmxInterface()
for i in range(0xFF000000, 0x100000000, 0x10000):
  data = pmx.MemRead(i, 0x20)
  if data != b"\xFF"*0x20 and data != b"\x00"*0x20:
    biosLen = 0x100000000-i
    print("BIOS Found at 0x%x" % i)
    f = open("dump.bin", "wb")
    for j in range(0, biosLen, 0x1000):
      data = pmx. MemRead(i + j, 0x1000)
      f.write(data)
      break

В результате получаем:

Вот так в 10 строчек мы считали BIOS

Но подождите-ка, получилось всего 6 мегабайт, а должно быть 4 или 8 что-то не сходится. А вот так, у чипсетов Intel в адресное пространство мапится не вся флешка BIOS, а только один её регион. И чтобы считать всё остальное, нужно уже использовать SPI интерфейс.

Не беда, лезем в даташит, выясняем, что SPI интерфейс висит на PCI Express:

И для его использования, нужно взаимодействовать с регистрами в BAR0 MMIO по алгоритму:

  1. Задать адрес для чтения в BIOS_FADDR

  2. Задать параметры команды в BIOS_HSFTS_CTL

  3. Прочитать данные из BIOS_FDATA

Пилим новый скрипт для чтения через чипсет:

from PyPmx import PmxInterface, PciAddress, U32
spi = PciAddress(0, 31, 5)
pmx = PmxInterface()
spiMmio = pmx.PciRead32(spi + 0x10) & 0xFFFFF000
f = open("dump.bin", "wb")
for i in range(0, 0x800000, 0x40):
  # write BIOS_FADDR
  pmx. MemWrite32(spiMmio + 0x08, i)
  # write BIOS_HSFTS_CTL
  #        read      0x40 bytes      start     clear fcerr & fgo
  cmd = (0 << 17) | (0x3F << 24) | (1 << 16) |         3
  pmx.MemWrite32(spiMmio + 0x04, cmd)
  # wait for read or error
  curCmd = pmx.MemRead32(spiMmio + 0x04)
  while curCmd & 3 == 0:
    curCmd = pmx.MemRead32(spiMmio + 0x04)
  # read BIOS_FDATA
  data = pmx.MemRead(spiMmio + 0x10, 0x40, U32)
  f.write(data)

Исполняем и вуаля — в 20 строчек кода считаны все 8 МБ флешки BIOS! (нюанс — в зависимости от настроек, регион ME может быть недоступен для чтения).

Точно так же можно делать всё, что заблагорассудится — делать снифер USB пакетов, посылать произвольные ATA команды диску, повышать частоту процессора и переключать видеокарты. И это всё — с обычными правами администратора:

Немного помучившись, получаем ответ от SSD на команду идентификации

А если написать свой драйвер?

Некоторые из вас наверняка уже подумали — зачем так изворачиваться, реверсить чужие драйвера, если можно написать свой? И я о таком думал. Более того, есть Open-Source проект chipsec, в котором подобный драйвер уже разработан.

Зайдя на страницу с кодом драйвера, вы сразу наткнетесь на предупреждение:

WARNING
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!
!! Chipsec should only be run on test systems! 
!! It should not be installed/deployed on end-user systems!
!! 
!! There are multiple reasons for that:
!! 
!! 1. Chipsec kernel drivers provide raw access to HW resources to 
!! user-mode applications (like access to physical memory). This would 
!! allow malware to compromise the OS kernel.
!! 2. The driver is distributed as a source code. In order to load it
!! on OS which requires signed drivers (e.g. x64 Microsoft Windows 7 
!! and higher), you'll need to enable TestSigning mode and self-sign 
!! the driver binary. Enabling TestSigning (or equivalent) mode also 
!! turns off important protection of OS kernel.
!!
!! 3. Due to the nature of access to HW resources, if any chipsec module 
!! issues incorrect access to these HW resources, OS can crash/hang. 
!!
!! If, for any reason, you want to production sign chipsec driver and 
!! deploy chipsec on end-user systems,
!! DON'T!
!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

В этом предупреждении как раз и описываются все опасности, о которых я рассказывал в начале статьи — инструмент мощный и опасный, следует использовать только в Windows режиме Test Mode, и ни в коем случае не подписывать. Да, без специальной подписи на обычной системе просто так запустить драйвер не получится. Поэтому в примере выше мы и использовали заранее подписанный драйвер от ASRock.

Если кто сильно захочет подписать собственный драйвер — понадобится регистрировать собственную компанию и платить Microsoft. Насколько я нагуглил, физическим лицам такое развлечение недоступно.

Точнее я так думал, до вот этой статьи, глаз зацепился за крайне интересный абзац:

У меня под рукой нет Windows DDK, так что я взял 64-битный vfd.sys, скомпилированный неким critical0, и попросил dartraiden подписать его «древне-китайским способом». Такой драйвер успешно загружается и работает, если vfdwin запущена с правами администратора

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

Как оказалось, сведения о подписи можно просто посмотреть в свойствах.. А я в HEX изучал

Немного поиска этого имени в гугле, и я натыкаюсь на вот эту ссылку, откуда узнаю, что:

  • есть давно утёкшие и отозванные ключи для подписи драйверов

  • если ими подписать драйвер — он прекрасно принимается системой

  • малварщики по всему миру используют это для создания вирусни

Основная загвоздка — заставить майкрософтский SignTool подписать драйвер истёкшим ключом, но для этого даже нашёлся проект на GitHub. Более того, я нашёл даже проект на GitHub для другой утилиты подписи драйверов от TrustAsia, с помощью которого можно подставить для подписи вообще любую дату.

Несколько минут мучений с гугл-переводчиком на телефоне, и мне удалось разобраться в этой утилите и подписать драйвер одним из утекших ключей (который довольно легко отыскался в китайском поисковике):

И в самом деле, китайская азбука

И точно так же, как и AsrDrv101, драйвер удалось без проблем запустить!

А вот и наш драйвер запустился

Из чего делаю вывод, что старая идея с написанием своего драйвера вполне себе годная. Как раз не хватает функции маппинга памяти. Но да ладно, оставлю как TODO.

Выводы?

Как видите, имея права администратора, можно делать с компьютером практически что угодно. Будьте внимательны — установка утилит от производителя вашего железа может обернуться дырой в системе. Ну а желающие поэкспериментировать со своим ПК — добро пожаловать на низкий уровень! Наработки выложил на GitHub. Осторожно, бездумное использование чревато BSODами.

Небольшой Update

В Windows есть фича «Изоляция ядра», которая включает I/O MMU, защищает от DMA атак и так далее (кстати об этом — в следующих сериях)

Так вот, при включении этой опции, некоторые драйвера (в том числе RW Everything и китайско-подписанный chipsec_hlpr) перестают запускаться:

Тем не менее, рассмотренный пример утилиты на базе AsrDrv работает:

Как найти характеристики и оборудование компьютера

Версия 2 совместима с Windows 8.1 или 10

Версия 3 совместима с Windows 10 или 11


Шаг 1. Откройте меню «Пуск»

Щелкните правой кнопкой мыши значок Windows в нижнем левом углу экрана, чтобы открыть меню «Пуск» Windows .

Шаг 2: Найдите свой процессор и оперативную память

Щелкните левой кнопкой мыши System , чтобы открыть экран «О настройках».

Здесь вы найдете Процессор и RAM (память) компьютера.

Обязательно запишите эту информацию. Получив эти данные, вы найдете видеокарту.


Шаг 3: Найдите свою видеокарту

Щелкните правой кнопкой мыши значок Windows , чтобы открыть меню «Пуск» Windows .

Щелкните левой кнопкой мыши Диспетчер устройств , чтобы открыть сведения.

 

Дважды щелкните левой кнопкой мыши Адаптеры дисплея.

Здесь вы найдете Graphics Card. Обязательно запишите эту информацию.

Если у вас есть ноутбук, док-станция или другое подключение, у вас может быть более одного видеоадаптера. Вы хотите отметить основное устройство NVIDIA или AMD.

Шаг 3: Подтвердите свое оборудование

После того, как у вас есть процессор, оперативная память и видеокарта, перейдите к нашим требованиям к оборудованию, чтобы определить, будет ли программное обеспечение работать на вашем компьютере.

Если у вас есть какие-либо вопросы о компьютере или компоненте, напишите нам по адресу [email protected].



Рейтинг компьютера

Перед установкой Версия 3 автоматически просканирует ваш компьютер, чтобы убедиться, что он готов к запуску программного обеспечения.

Это сканирование предоставит вам ценную информацию, сообщив не только о том, готов ли ваш компьютер к Версии 3, но и о визуальном качестве, которое обеспечит вам текущая настройка.

Ваш процессор, оперативная память и видеокарта получат оценку из 100.  

Оптимальный (оценка от 80 до 100)

При оценке от 80 до 100 отображается зеленая полоса.

Отлично подходит для создания детализированных высококлассных проектов и обширных ландшафтов с высочайшим качеством визуализации.

Оптимальная оценка означает, что ваш компьютер готов отображать потрясающие изображения.

От минимального до рекомендуемого (оценка от 41 до 79)

При оценке от 41 до 79 отображается желтая полоса.

Рекомендовано: Хороший баланс между стоимостью и производительностью. Тени, отражения и освещение теряют некоторую дополнительную глубину, но эти изменения незначительны.

Отлично подходит для оформления всей собственности (переднего и заднего двора) с множеством объектов, таких как деревья, освещение и мебель.

Минимум: Несмотря на то, что оценка сравнительно низкая, компьютер по-прежнему полностью способен работать с набором инструментов Версии 3.

Ниже минимума (оценка от 1 до 40)

При оценке от 1 до 40 отображается красная полоса.

Ваш компьютер не поддерживает версию 3. Вы можете продолжать разработку в версии 2.

Что такое аппаратное обеспечение компьютера? — Глоссарий ИТ

Ресурсы

Компьютерное железо

Узнайте о компьютерном оборудовании, в том числе о важности мониторинга оборудования в корпоративных средах и центрах обработки данных.

  • Определение аппаратного обеспечения компьютера
  • Мониторинг компьютерного оборудования предприятия
  • Мониторинг оборудования центра обработки данных
  • Релевантность конфигурации оборудования и производительности среды
  • Инвентаризация оборудования и мониторинг обновлений
  • Программное обеспечение для инвентаризации оборудования и SCCM
  • Аппаратные проблемы компьютера и методы диагностики
  • Определение аппаратного обеспечения компьютера

    Компьютерное аппаратное обеспечение Определение

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

  • Мониторинг компьютерного оборудования предприятия

    Мониторинг компьютерного оборудования предприятия

    Сбои в работе ИТ часто происходят из-за отказа оборудования. На производительность сервера могут повлиять такие факторы, как отказ вентилятора, высокая температура сервера, загрузка ЦП, а также высокое и низкое напряжение. Проблемы с перегревом и перегрузкой сервера могут привести к повреждению устройства и простоям. Иногда может быть несколько причин для конкретной проблемы. Например, повышение температуры может произойти из-за ошибок кода или неисправности оборудования, что может повлиять на производительность системы. Выявление таких проблем может быть сложной задачей.

     

    Мониторинг компьютерного оборудования важен, поскольку он помогает получить важную информацию о состоянии и производительности серверного оборудования. Это может помочь уменьшить простои системы, определяя основную причину потенциальных проблем, чтобы обеспечить бесперебойную работу системного оборудования.

     

    Как работает программное обеспечение для мониторинга компьютерного оборудования предприятия

     

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

  • Мониторинг оборудования центра обработки данных

    Мониторинг оборудования центра обработки данных

    Центр обработки данных помогает упорядочивать, хранить, обрабатывать и распространять критически важные для бизнеса данные. Он предназначен для поддержки бизнес-приложений и действий, таких как совместное использование файлов, базы данных, планирование ресурсов предприятия, управление взаимоотношениями с клиентами, виртуальные рабочие столы, большие данные и многое другое. Основные компоненты центра обработки данных включают маршрутизаторы, коммутаторы, системы хранения, базы данных, брандмауэры, контроллеры доставки приложений и многое другое. Организации используют центры обработки данных для управления критически важными для бизнеса данными и приложениями. Любой сбой или время простоя может привести к значительным потерям доходов, потере доверия и клиентов.

     

    Становится важным отслеживать инфраструктуру центра обработки данных, включая аппаратные устройства и программные приложения, чтобы обеспечить их бесперебойную работу. Мониторинг оборудования центра обработки данных предупреждает вас о возможных сбоях, таких как колебания мощности, температурные помехи, проблемы с конфигурацией оборудования и многое другое.

     

    С помощью подходящего инструмента для мониторинга оборудования центра обработки данных вы можете легко отслеживать аппаратные устройства, их работоспособность и производительность. Это помогает вам устранять проблемы и узкие места в режиме реального времени, тем самым повышая качество бизнеса.

  • Релевантность конфигурации оборудования и производительности среды

    Релевантность конфигурации оборудования и производительности среды

    Независимо от того, связана ли проблема с ЦП, жестким диском, устройствами ввода-вывода или материнской платой, безвозвратная потеря данных является одним из основных последствий сбоя оборудования. Однако этого можно избежать, запланировав регулярные резервные копии и проверки работоспособности оборудования, а также настроив конфигурации оборудования. Физическое повреждение аппаратных устройств компьютера дорого и сложно, и для решения проблем требуются специалисты.

     

    Роль конфигураций оборудования в производительности оборудования

     

    Конфигурации оборудования — это настройки системных ресурсов, назначенные конкретным аппаратным устройствам. Вы можете изменить эти конфигурации, чтобы оптимизировать общую производительность системы. Параметры конфигурации устройства включают:

     

    • Адрес памяти: Каждому устройству присваивается двоичный номер, известный как уникальный идентификатор для отслеживания местоположения памяти.
    • Линии запроса прерывания (IRQ) : Это аппаратные линии, используемые для отправки сигналов прерывания микропроцессору о событии периферийного устройства. Эти конфигурации помогают управлять различными аппаратными операциями.
    • Каналы прямого доступа к памяти (DMA): DMA — это канал, используемый аппаратными устройствами для доступа, передачи и совместного использования информации непосредственно из основной памяти независимо от ЦП.
    • Порт ввода/вывода: Эти конфигурации используются для подключения устройств ввода и вывода к компьютеру с помощью адресов памяти, назначенных каждому порту.

     

    Конфигурации оборудования включают информацию о:

     

    • Доступная память
    • Подключенные устройства, такие как модемы, дисководы и последовательные порты
    • Функции управления питанием
  • Инвентаризация оборудования и мониторинг обновлений

    Инвентаризация оборудования и мониторинг обновлений

    Традиционное управление инвентаризацией оборудования включало ручные обновления, бумажные записи и электронные таблицы для управления активами оборудования. Этот процесс был не только подвержен ошибкам, но и требовал человеческих ресурсов для выполнения задачи. Использование передового программного обеспечения для управления аппаратными активами упростило этот процесс, уменьшило вероятность человеческой ошибки и сэкономило время и ресурсы.

     

    Инвентаризация оборудования или управление активами помогают определить работоспособность и производительность аппаратных активов, установленных в вашей ИТ-инфраструктуре. Программное обеспечение для управления запасами ИТ-оборудования позволяет легко визуализировать полный жизненный цикл активов, включая журналы обслуживания, серийные номера, местоположение, информацию о гарантии, модели и типы активов.

     

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

     

    Как работает программное обеспечение для инвентаризации оборудования

     

    • Автоматизирует процесс управления запасами: Программное обеспечение для управления запасами оборудования упрощает мониторинг устройств, даже если они развернуты в нескольких местах. Программное обеспечение может автоматизировать весь жизненный цикл ИТ-активов, создавая обширную инвентаризацию ИТ-активов в вашей бизнес-сети. Эта автоматизация помогает вам получить обновленный список всех аппаратных активов в сети.
    • Эффективное планирование ИТ-изменений: Благодаря функциям автоматического обнаружения и сетевого сканирования этот инструмент может в режиме реального времени предоставлять данные об инвентаризации вашего ИТ-оборудования, включая новые и существующие устройства, такие как ПК, принтеры, компьютеры и многое другое. Вы можете использовать эту информацию для планирования или планирования замены оборудования, обслуживания, обмена и обновлений. Инструмент инвентаризации оборудования также помогает свести к минимуму время простоя, информируя вашу команду о производительности, сроке службы и потенциальных будущих аппаратных ошибках. Таким образом, вы можете обновить инвентаризацию оборудования до того, как возникнут какие-либо простои или аппаратные ошибки.
    • Получите подробные сведения: Инструмент инвентаризации оборудования может связывать компьютеры, устройства и данные инвентаризации оборудования с записями об изменениях, инцидентами и ошибками, чтобы вам было проще отслеживать историю и записи о прошлых проблемах для отдельных устройств.
  • Программное обеспечение для инвентаризации оборудования и SCCM

    Программное обеспечение для инвентаризации оборудования и SCCM

    System Center Configuration Manager (SCCM) — это пакет системного управления, разработанный Microsoft, который позволяет управлять серверами на базе Windows. Это также помогает в развертывании и защите устройств и приложений на предприятии. SCCM предлагает управление исправлениями, удаленное управление, защиту сети, развертывание операционной системы и многое другое. Он может помочь в управлении инвентаризацией оборудования, помощи в установке приложений и развертывании обновлений и исправлений безопасности по сети. Вместе программные модули и серверное оборудование составляют архитектуру SCCM.

     

    Преимущества использования SCCM

     

    • SCCM обеспечивает гибкость и функции, предназначенные для создания отчетов для всей системы. Он также позволяет вам управлять серверами Windows по сети с помощью централизованной консоли. Кроме того, он предоставляет набор инструментов для защиты конечных точек для защиты ваших сетевых устройств.
    • Поскольку SCCM является продуктом Microsoft, он хорошо интегрируется со всеми системами Windows в вашей ИТ-инфраструктуре и другими продуктами Microsoft. Он также поддерживает использование собственных устройств (BYOD), что означает, что устройства, добавленные отдельными сотрудниками, также можно контролировать, обновлять и помечать с помощью SCCM.
    • SCCM прост в освоении и внедрении, поскольку им можно управлять с помощью простого графического пользовательского интерфейса (GUI). Он также имеет хорошую поддержку через каналы сообщества Microsoft и разработчиков.

     

    Как SCCM обрабатывает инвентаризацию оборудования?

     

    Инвентаризация оборудования в SCCM используется для сопоставления информации об аппаратных устройствах в вашей ИТ-инфраструктуре. Чтобы начать сбор данных инвентаризации оборудования, вам нужно включить несколько настроек. После включения параметров инвентаризации оборудования вы можете легко хранить информацию об инвентаризации в базе данных SCCM.

  • Аппаратные проблемы компьютера и методы диагностики

    Проблемы с компьютерной техникой и методы диагностики

    Сегодня поиск и устранение неисправностей компьютерной техники стало проще, быстрее и удобнее. С помощью подходящего инструмента управления ИТ-инвентарем вы можете легко определить, на каком устройстве возникают проблемы.

     

    Программное обеспечение для автоматизированного управления ИТ-инвентарем значительно повышает эффективность методов управления. Эти инструменты помогают оптимизировать процессы управления активами, чтобы сопоставлять, анализировать и отслеживать изменения для предоставления оптимальных услуг. Они помогают устранить необходимость в ручных обновлениях и упрощают отслеживание производительности каждого актива, позволяя создавать подробные записи и документировать сроки обслуживания.

     

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

     

    • Автоматическое обнаружение активов и немедленный сбор данных ИТ-инвентаризации
    • Отправка предупреждений в режиме реального времени об аппаратных проблемах, связанных с ЦП и материнской платой, или о появлении обновлений прошивки, операционной системы и программного обеспечения.
    • Мониторинг и управление жизненными циклами оборудования и потребностями в обслуживании
    • Запись состояния обновлений серверной операционной системы
    • Обнаружение и отслеживание изменений конфигурации с помощью надежного программного обеспечения для управления запасами ИТ

Представлено в этом ресурсе

Как то, что вы видите? Попробуйте продукт.

Монитор серверов и приложений

Комплексный мониторинг серверов и приложений стал проще

СКАЧАТЬ БЕСПЛАТНУЮ ПРОБНУЮ ПРОБНУЮ ВЕРСИЮ Полная функциональность в течение 30 дней ССЫЛКА НА ПРОБНУЮ ПРОБНУЮ ЭЛЕКТРОННУЮ ПОЧТУ Полная функциональность в течение 30 дней

Мы созданы на основе компьютерных технологий.

Ваш комментарий будет первым

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *