|
4 年之前 | |
---|---|---|
.settings | 4 年之前 | |
.vscode | 4 年之前 | |
docs | 4 年之前 | |
lib | 4 年之前 | |
src | 4 年之前 | |
.classpath | 4 年之前 | |
.gitignore | 4 年之前 | |
.project | 4 年之前 | |
CHANGELOG.md | 4 年之前 | |
COPYING | 4 年之前 | |
README.md | 4 年之前 | |
TODO.md | 4 年之前 | |
pom.xml | 4 年之前 |
The DuPAL Analyzer is a companion software to the DuPAL board. It uses the board's REMOTE CONTROL mode to remotely toggle the pins and read the outputs, and is meant to perform blackbox analisys on the registered PAL devices, which are a bit too much for the MCU firmware to handle by itself.
Despite the "DUmper" part of the name, this tool is NOT meant to produce 1:1 binary dumps of the content of a PAL device, it is meant as an aid to the reversing procedure of an unknown PAL, automating a good part of the black box analisys.
It will produce a JSON file containing every recorded state change of the PAL (outputs states at the beginning, applied inputs and output states at the end), that can then be converted into an espresso truth table or manipulated for further analisys.
The analyzer lets the user select which type of PAL is inserted in the board's ZIF socket, whether the IO pins that are set as outputs are known (which saves some time by avoiding autodetection), what is the board's serial interface, and where to save the output file. Once this is known, the application will:
The following PAL models are supported:
The format for command line execution is the following:
java -jar /path/to/dupal_analyzer.jar <serial_port> <pal_type> <output_file> [hex_output_mask]
The output mask is a byte represented as an hex value, where a bit is set when the corrisponding pin is considered an output. From MSB to LSB for a 20 pins PAL:
7 6 5 4 3 2 1 0
.----.----.----.----.----.----.----.----.
| 12 | 19 | 13 | 14 | 15 | 16 | 17 | 18 |
'----'----'----'----'----'----'----'----'
From MSB to LSB for a 24 pins PAL:
7 6 5 4 3 2 1 0
.----.----.----.----.----.----.----.----.
| 22 | 21 | 20 | 19 | 18 | 17 | 16 | 15 |
'----'----'----'----'----'----'----'----'
Setting the mask to 0x02
, for example, will notify the analyzer that pin 17 on a 20 pins PAL or pin 16 on a 24 pins PAL is configured as an OUTPUT.
Pay attention to the weird position for pin 19, that position is caused by a desire to save a few lines on the firmware.
Make sure you have at least a Java 1.8 compatible JRE installed and have access to your serial port devices (In linux it's usually sufficient to add your user to the dialout
group).