Compute Fluke ROM signatures (with a little help of ChatGPT)

Portrait photo of Andreas Pehnack

Andreas Pehnack

Photo of Fluke 9010A micro-system troubleshooter

While Fluke micro-system troubleshooters date back to the 1980's and 1990's they still have their fans nowadays. They were versatile universal test systems that were designed for use in a wide range of testing and troubleshooting applications. Some of the functions that they can perform include:

  1. Component testing: The Fluke 9010A can perform a wide range of tests on electronic components, including diodes, capacitors, resistors, and transistors.

  2. Circuit testing: The system can test both analog and digital circuits, and can perform a variety of tests to verify circuit functionality and diagnose problems.

  3. Data acquisition: The Fluke 9010A can be used to collect and analyze data from sensors, transducers, and other measurement devices.

  4. Functional testing: The system can perform functional tests on a variety of devices, including switches, relays, and motors.

  5. System-level testing: The Fluke 9010A can be used to test entire systems, including complex electronic systems, control systems, and power systems.

  6. Troubleshooting: The Fluke 9010A is designed to help users diagnose and troubleshoot problems in electronic systems quickly and efficiently.

Overall, the Fluke 9010A is a powerful tool for electronic testing and troubleshooting that can help users identify problems and verify the functionality of electronic devices and systems.

ROM signatures#

Fluke developed a special signature (checksum) algorithm to verify the integrity of ROM files which can be loaded onto the devices.

While there was some source code available as a C function it was necessary to convert it to Python or Lua in order to work with Synalyze It! Pro and Hexinator. Fortunately this is a task that can be done almost entirely by ChatGPT. You can find the C source code here: GitHub repo.

In the C source the input buffer was passed as an unsigned int and converted inside the function to a pointer. After modifying the code so that a pointer to the buffer is passed to the function, the whole Python code generated by ChatGPT could be used without modification.

Screenshot Synalyze It! with Fluke 9010A ROM signature computed

In Synalyze It! Pro and Hexinator there are different places where scripts can be applied. In this case the script operates on the whole file opened in the hex editor. The computed script is displayed in the log view. You can open it by pulling the split view at the bottom of the hex editor window.

You can download the script on this page: Synalysis Scripts.

Remark on ChatGPT#

While I recognize the dangers of an AI like ChatGPT, ignoring it is not a viable option for software developers. As seen in this case it can eliminate tasks that would cost considerable time when done manually. I personally believe that AI will increase the productivity of software developers dramatically.