Jump to content

    
Sign in to follow this  
zombi

PCI Express дамп всей памяти

Recommended Posts

Существует ли некое устройство (живьём или теоретически) подключив которое

к шине PCIe другого (исследуемого) устройства получить полный дамп памяти оного?

Т.е. прочитать абсолютно всё адресное пространство.

Исследуемое устройство что-то типа ПК на linux и/или windows.

Share this post


Link to post
Share on other sites

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

 

Если же нужна железка, которая сможет это сделать, то теоритически это тоже возможно (но вряд ли есть практически)

 

Share this post


Link to post
Share on other sites
23 minutes ago, xvr said:

Теоритически программа на том самом ПК может это сделать.

Есть физический доступ только к разъёму PCIe.

23 minutes ago, xvr said:

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

Не страшно. Это не система управления ЯО :biggrin:

А регистры можно и "перепрыгнуть" :dirol:

23 minutes ago, xvr said:

Если же нужна железка, которая сможет это сделать, то теоретически это тоже возможно (но вряд ли есть практически)

Жаль, думал мир не стоит на месте.

Да, нужна именно шелезяка.

Share this post


Link to post
Share on other sites
5 часов назад, zombi сказал:

Существует ли некое устройство (живьём или теоретически) подключив которое

к шине PCIe другого (исследуемого) устройства получить полный дамп памяти оного?

Т.е. прочитать абсолютно всё адресное пространство.

Исследуемое устройство что-то типа ПК на linux и/или windows.

Такое устройство можно сделать на базе любого отладочного кита с ПЛИС и интерфейсом PCIe. Но есть много "но", о которых написано, например, здесь: https://lwn.net/Articles/767281/

Т.е. это решение будет очень узкоспециализированным, поскольку с точки зрения утройства-мастера на шине PCIe в качестве слейва выступает оперативная память (DMA}.

Share this post


Link to post
Share on other sites

Если в системе используется IOMMU, то произвольный доступ через PCIe в системную память вполне может быть заблокирован. Кроме того, PCIe устройство - это периферия, её нужно настроить. Для этого оно сперва должно пройти так называемую енумерацию - этим занимается либо BIOS, либо ОС, затем драйвер устройства должен настроить внутренние регистры устройства, чтобы оно могло корректно работать с PCIe шиной. Наверное, можно настройку сделать автономно, но для этого надо знать как и что сделать, а это не такое простое дело. В случае ошибок можно легко завалить весь хост.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this