Awesome
scada-stuff
Hopper bFLT loader
A lot of ICS devices use uClinux/eCos which uses the bFLT format. The hopper_bflt_loader.py
implements basic bFLT support for Hopper. Open a binary with the settings:
Base address: 0x0
Entry point: 0x0
File offset: 0x0
CPU: ARMv6 Little endian
and then run the script on it.
The script is based on the IDA Pro loader written by Craig Heffner from Tactical Network Solutions
moxa_parse_fw.py
Extracts the firmware images of the simple Mgate and Nport devices without wireless capability.
Firmware images compatible with this tool can be found on the Moxa website.
Usage
moxa_parse_fw.py <firmware_file> <output_directory>
Output description
The output directory will contain all extracted files in a flat format. The binary firmware itself is saved to <output_directory>/fw.bin
.
Note that, depending on the device, different CPU architectures are used. Mgate devices seem to use ARM-based CPUs which can be directly loaded into Hopper/IDA Pro/Radare2 with the following settings:
Base address: 0x0
Entry point: 0x0
File offset: 0x0
CPU: ARMv6 Little endian
The NPort devices with a Moxa labelled chip are based on the R8822 (Thanks K. Reid Wightman!) architecture.
parse_upg.py
Converts .upg firmware files as used by some Schneider Electric devices into a binary file that can be loaded into a disassembler.
Usage
parse_upg.py <firmware_file> <output_file>
Moxa NPort W2150 Firmware
The firmware files for the Moxa NPort W2x50 can be loaded directlry into a disassembler with the following settings:
Base address: 0x0
Entry point: 0x0
File offset: 0x58
CPU: ARMv6 Little endian
Note that this only loads the Linux bootlaoder which uncompresses the kernel. The filesystems themselves can be extracted using binwalk -e
.
Starting with firmware version 2 the firmware is encrypted.
Advantech ADAM 4570 Firmware
The firmware file (e.g. ADAM-4570-BE_FW_D1.70_268D671C.bin
) can be directly loaded into a disassembler.