ufrisk / pcileech

Direct Memory Access (DMA) Attack Software
GNU Affero General Public License v3.0
5.04k stars 735 forks source link

DMA problem: Insufficient memory[-] bulk transfer error #280

Open EmhyrVarEmreis opened 11 months ago

EmhyrVarEmreis commented 11 months ago

I have a problem using my screamer (PCIe Squirrel).

Target hw: i9-13900K ASUS PRIME Z790-P ASUS RTX 4090 VT-d disabled

Pcileech running hw: Rpi5 (ubuntu, self compiled pcileech) / asus laptop win11

Case No2 seems to work for a few seconds and after that I am getting this Insufficient memory. After that resetting screamer does not work until I restart target pc. What can cause that error?

PCI No1:

[+] using FTDI device: 0403:601f (bus 2, device 4)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
DEVICE: FPGA: ScreamerM2 PCIe gen2 x1 [300,25,500] [v4.11,0600] [ASYNC,NORM]
FPGA: TINY PCIe TLP algrithm auto-selected!
 Memory Map:
 START              END               #PAGES

 Current Action: Probing Memory
 Access Mode:    Normal
 Progress:       4096 / 4096 (100%)
 Speed:          71 MB/s
 Address:        0x0000000100000000
 Pages read:     0 / 1048576 (0%)
 Pages failed:   1048576 (100%)
Memory Probe: Completed.

PCI No2:

[+] using FTDI device: 0403:601f (bus 2, device 5)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
DEVICE: FPGA: ScreamerM2 PCIe gen2 x1 [300,25,500] [v4.11,0700] [ASYNC,NORM]
 Memory Map:
 START              END               #PAGES
 0000000000000000 - 000000000009ffff  000000a0
 00000000000c0000 - 000000003cffffff  0003cf40

 Current Action: Probing Memory
 Access Mode:    Normal
 Progress:       976 / 34808 (2%)
 Speed:          244 MB/s
 Address:        0x000000003D000000
 Pages read:     249824 / 8910848 (2%)
 Pages failed:   32 (0%)
[-] bulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001                                         00000000000c0000 - 000000003dbfffff  0003db40
                                                 ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Current Action: Probing Memory
 Access Mode:    Normal                                                       put Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Progress:       992 / 34808 (2%)           001
 Speed:          165 MB/s                        ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Address:        0x000000003E000000
 Pages read:     252896 / 8910848 (2%)           ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Pages failed:   1056 (0%)                  001
[+] using FTDI device: 0403:601f (bus 2, device 5)lk transfer error: Input/Output Error
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
[-] bulk transfer error: Insufficient memory[-] bulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
[-] bulk transfer error: Insufficient memory[-] bulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
[-] bulk transfer error: Insufficient memory[-] bulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001                                         00000000000c0000 - 000000003dbfffff  0003db40
                                                 ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Current Action: Probing Memory
 Access Mode:    Normal                                                       put Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Progress:       1008 / 34808 (2%)           01
 Speed:          126 MB/s                        ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Address:        0x000000003F000000
 Pages read:     252896 / 8910848 (2%)           ulk transfer error: Input/Output Error[+] using FTDI device: 0403:601f (bus 2, device 5)
 Pages failed:   5152 (0%)                  001
[+] using FTDI device: 0403:601f (bus 2, device 5)lk transfer error: Input/Output Error
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
ufrisk commented 11 months ago

probing is super aggressive and you can try to dump memory instead, i.e. with ./pcileech dump -out none -device fpga -v to see if things improve.

possibly also use a memory map

Please let me know if this was sufficient to resolve your issue.

The error looks kinda bad anyway so I'm not sure it will resolve the issue. Its an error with libusb usb transfers. Also make sure to use the latest download of pcileech when you try this.

If its still around I don't have access to a RPI5 right now I'm afraid. It's on my purchase list though :)

EmhyrVarEmreis commented 11 months ago

It is much better, now it reached 97% with dump. After this error (and previous ones) I got PCILEECH: Failed to connect to the device. next time launching pcileech until I restart target PC.

I will check if mount with MemProcFS mount will be stable

[+] using FTDI device: 0403:601f (bus 2, device 8)
[+] FTDIFTDI SuperSpeed-FIFO Bridge000000000001
DEVICE: FPGA: ScreamerM2 PCIe gen2 x1 [300,25,500] [v4.12,0700] [ASYNC,NORM]
 Memory Map:
 START              END               #PAGES
 0000000100000000 - 000000087f7fffff  0077f800
 0000000000000000 - 000000000009ffff  000000a0
 0000000000100000 - 0000000075ffffff  00075f00
 0000000078010000 - 000000007a3fffff  000023f0
 000000007a800000 - 000000007affffff  00000800

 Current Action: Dumping Memory
 Access Mode:    Normal
 Progress:       33888 / 34808 (97%)
 Speed:          103 MB/s
 Address:        0x00000000C685F000
 Pages read:     8356752 / 8910848 (93%)
 Pages failed:   318672 (3%)
[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer 000000007a800000 - 000000007affffff  00000800   : Input/Output Error[-] bulk transfer erro
                                                 ut/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 Current Action: Dumping Memory                             error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error
 Access Mode:    Nor 000000007a800000 - 000000007affffff  00000800            er error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-
                                                  transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error:
 Current Action: Dumping Memory                             or[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-]
 Access Mode:    Nor 000000007a800000 - 000000007affffff  00000800            Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error:
                                                   tput Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-]
 Current Action: Dumping Memory                             or: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] 000000007a800000 - 000000007affffff  00000800   transfer error: I
                                                                              ut Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer erro
 Current Action: Dumping Memory                             rror[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 Access Mode:    Nor 000000007a800000 - 000000007affffff  00000800            t Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error
                                                         fer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer erro
 Current Action: Dumping Memory                             rror[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 000000007a800000 - 000000007affffff  00000800   affffff  00000800            t Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error
                                                    transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer erro
 Current Action: Dumping Memory                             rror[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 Access Mode:    Normal                                                       ut Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer erro
 Progress:       34808 / 34808 (100%)              /Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 Speed:          106 MB/s                        k transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error
 Address:        0x0000000100000000                      fer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer erro
 Pages read:     8356752 / 8910848 (93%)           /Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[
 Pages failed:   554096 (6%)                  bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error: Input/Output Error[-] bulk transfer error
Memory Dump: Successful.
EmhyrVarEmreis commented 11 months ago

Is there a way to reduce speeed of the process?

ufrisk commented 11 months ago

You can try to add -device fpga://algo=2 and retry, maybe it will be more stable (but also a bit slower unfortunately, but if it works the speed will still be decent.

There are some additional parameters that can be used on conjunction with fpga://algo=2, for more info about those have a look here: https://github.com/ufrisk/LeechCore/wiki/Device_FPGA Mainly tmread, tmwrite will be of interest.