Záchrana dat z RAM zaseklého běžícího počítače

Re:Záchrana dat z RAM zaseklého běžícího počítače
« Odpověď #30 kdy: 05. 02. 2024, 10:46:27 »
IIRC hotplug na PCIe* není úplně samozřejmost.

*) Předpokládám, že nebylo myšleno původní PCI.


RDa

  • *****
  • 2 620
    • Zobrazit profil
    • E-mail
Re:Záchrana dat z RAM zaseklého běžícího počítače
« Odpověď #31 kdy: 05. 02. 2024, 10:51:04 »
Nejsem si jistý, zda přístup z PCI do adresního prostoru hostitelova procesoru (resp. fyzické DRAM) podléhá nějakým omezením, a jakým. Vím že PCI host bridge (a další bridge za ním) filtrují/dekódují přístup z hostitele do MMIO oken periferií - ale opačným způsobem... nevím. Je možné, že se toto v průběhu desítek let vývoje PCI nějak vyvíjelo, předpokládal bych směrem k utužení bezpečnosti. Určitě do toho má co mluvit IOMMU v případě mapování PCI(e) zařízení guestům, ale nejsem si jistý, zda v defaultní konfiguraci prostě pustí BM transakce ze strany PCI sběrnice kamkoli do RAMky fyzického hostitele.

Pokud mas IOMMU a je nastaveno, tak to kazdou kartu pusti jen na vyhrazeny pisecek - aktualne mapovany region, o ktery pozadal driver.

Pokud nemas IOMMU, tak muze karta cist co chce. Prakticky omezeni pak je takove, ze kdyz pak ctes region ktery bys cist nemel (smm ram, nebo jine vyhrazene oblasti resp diry v regionu fyzicke pameti), tak je vysoka sance ze se HW dostane do stavu, ve kterem to prestane fungovat i na teto urovni a nezbyva ti nic jineho nez power cycle.

Tech karet je mnoho, ale prave kvulio iommu je pouziti na modernim hw spatne (pokud si clovek explicitne nevypne iommu): https://github.com/ufrisk/pcileech-fpga