-
Notifications
You must be signed in to change notification settings - Fork 177
Device_FPGA
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.
LeechCore API:
Please specify the acquisition device type (and optionally additional configuration options) LEECHCORE_CONFIG.szDevice when calling LeechCore_Open. 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).
pcienotconnected= PCIe connection requirement: 0 = PCIe connection required (default); 1 = PCIe connection not required.
devindex= device index to open (if multiple devices exist on system).
The devindex parameter is only supported on Windows. It's ignored on Linux.
devreload= Reload bitstream / restart device: 0 = no reload (default); 1 = reload.
May sometimes unfreeze the device on AC701/ScreamerM2 devices on v4.6+ bitstreams.
readsize= max chunk read size in bytes, multiple of page (default depends on FPGA device).
readretry= number of read retries on read fail.
tmread= Read delay in uS (default depends on FPGA device); applies to old algorithm only.
tmwrite= Write delay in uS (default depends on FPGA device).
tmprobe= Probe delay in uS (default depends on FPGA device).
algo= read algorithm as per below.
| # | algorithm description |
|---|---|
| 0 | async normal read (default) |
| 1 | async tiny read |
| 2 | old normal read |
| 3 | old tiny read |
Please note that the async algorithm is only available on WIndows; Linux will fallback to the synchronous "old" algorithm automatically.
PCILeech / MemProcFS:
Please specify the device type in the -device option.
Examples:
-device FPGA
-device FPGA://devreload=1,algo=1
-device FPGA://pciegen=1,algo=2,tmread=300,tmwrite=300,tmprobe=300
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 the driver leechcore_ft601_driver_linux from the LeechCore-plugins project. Place leechcore_ft601_driver_linux.so alongside leechcore.so. This driver is pre-packaged together with the binary release distribution of LeechCore. Also 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. The leechcore_ft601_driver_linux
driver will automatically attempt to locate the kernel driver before using libusb.