Skip to content

Device_FPGA

Ulf Frisk edited this page Jul 19, 2020 · 17 revisions

Memory Acquisition Method: FPGA (Hardware)

The LeechCore library supports reading memory using PCILeech FPGA PCIe to USB hardware.

Facts in short:

  • Is supported on all supported platforms.
  • Acquires memory in read/write mode.
  • Acquired memory is assumed to be volatile.
  • Have additional requirements.

Connection string:

LeechCore API:

Please specify the acquisition device type (and optionally additional configuration options) LC_CONFIG.szDevice when calling LcCreate. Most configuration options should ideally never be used and only exists for debugging purposes. Examples: FPGA FPGA://pciegen=1,tmread=500,tmwrite=200,deviceindex=2.

Options:

pciegen= PCIe generation - 2 (default) or 1 (PCIe gen1).

tmread= Read delay in uS (default depends on FPGA device).

tmwrite= Write delay in uS (default depends on FPGA device).

tmprobe= Probe delay in uS (default depends on FPGA device).

algo= read algorithm: 1 (normal) or 2 (tiny).

readsize= max chunk read size in bytes, multiple of page (default depends on FPGA device).

readretry= number of read retries on read fail.

deviceindex= device index to open (if multiple devices exist on system).

PCILeech / MemProcFS:

Please specify the device type in the -device option.

Examples:

-device FPGA

-device FPGA://pciegen=2,tmread=300

-device FPGA://pciegen=1,tmread=300,tmwrite=300,tmprobe=300


Requirements:

Requires the FPGA hardware which is connected to the target computer over PCIe and to the analysis computer over USB.

Windows: FTDI drivers have to be installed if FPGA is used on Windows. Download the 64-bit FTD3XX.dll from FTDI and place it alongside leechcore.dll.

Linux: Requires libusb (apt-get install libusb-1.0-0) and access to the usb device (permission change or run as root may be required) alternatively a Kernel Driver provided by LambdaConcept. LeechCore will automatically attempt to locate the kernel driver before using libusb.