Jump to content

    

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

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

к шине 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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now