ufrisk / pcileech

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

Unable to connect to FPGA device [0,v0.0,0000] [PCIe Squirrel] #203

Closed Creastoff closed 2 years ago

Creastoff commented 2 years ago

I have cloned the most recent version of the following projects and built and running on VS 2022 & Windows 10;

I have included FTD3XX.dll v1.3.0.4 and installed the corresponding x64 Win 10 driver for the device, transforming it from a USB device to a USB controller (VID 0403 PID 601).

There are three buttons on the device, which I don't really know what they actually do; the first seems to disconnect and reconnect the device (reboot?) the second turns a light on when i hold it the third starts a light flashing for a few seconds then stops (I assume this means I have flashed it correctly using a prebuilt binary from the bottom of the page here https://github.com/ufrisk/pcileech-fpga/tree/master/PCIeSquirrel)

I have tried 3 different cables on three different USB/USB-C slots on my host.

Any thoughts or questions?

ufrisk commented 2 years ago

what does it say if you run pcileech.exe display -min 0x1000 -v -device fpga?

Creastoff commented 2 years ago

I have just been trying to hook it up to a Ubuntu Virtual Box, doesn't get passed through for some reason. Tried a few different times, ended up reinstalling the driver a couple of times. Gave up and all of a sudden it now gets to the following message when running the command above in Windows (feels like progress):

DEVICE: FPGA: ERROR: Unable to retrieve required Device PCIe ID [4,v4.10,0000]
PCILEECH: Failed to connect to the device.
Creastoff commented 2 years ago

Closing, unfortunately no detectable fix was applied for the title issue. Will update if I work out the device pcie id issue.

ufrisk commented 2 years ago

Yeah, if you're able to retrieve the firmware version (v4.10) that means the USB is working, but you don't have a PCIe link hence the 0000 device id.

I'd recommend against running it in a VirtualBox VM. The USB, as you already noticed, is not as stable as you'd want it to be from my experience...

I'm glad you managed to get it to work though, or at least is on the right track. Best wishes with your DMA attacking!

Creastoff commented 2 years ago

Update: I had the card plugged into a x1 slot, swapped to a x16 slot and have been able to output 0x1000 to console with the above command.

./pcileech.exe display -min 0x1000 -v -device fpga

DEVICE: FPGA: ScreamerM2 PCIe gen2 x1 [300,25,500] [v4.10,0200] [ASYNC,NORM]
Memory Display: Contents for address: 0x0000000000001000
0000    e9 4d 06 00 01 00 00 00  01 00 00 00 3f 00 18 10   .M..........?...
0010    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
0020    00 00 00 00 00 00 00 00  00 00 00 00 00 9b 20 00   .............. .
0030    00 00 00 00 00 00 00 00  ff ff 00 00 00 93 cf 00   ................
0040    00 00 00 00 00 00 00 00  ff ff 00 00 00 9b cf 00   ................
0050    00 00 00 00 00 00 00 00  00 e0 3a de 00 00 00 00   ..........:.....
0060    7c 16 00 00 30 00 da 16  00 00 10 00 00 00 00 00   |...0...........
0070    f0 43 5f 44 04 f8 ff ff  00 80 00 c0 fa f7 ff ff   .C_D............
0080    06 01 07 00 06 01 07 00  01 09 00 00 00 00 00 00   ................
0090    33 00 05 80 00 00 00 00  00 00 00 00 00 00 00 00   3...............
00a0    00 d0 1a 00 00 00 00 00  78 06 17 00 00 00 00 00   ........x.......
00b0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00c0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00d0    00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
00e0    00 00 00 00 00 00 57 00  b0 7f bf c5 00 bb ff ff   ......W.. ......
00f0    00 00 00 00 00 00 ff 0f  00 50 bf c5 00 bb ff ff   .........P......