610-459-9646
sales@sciotex.com

Reverse Engineering Undocumented Industrial Software

Written by Sciotex Engineering
In this article

Many machines, test stands and control systems run on software nobody fully understands anymore. The original developer has left, the documentation is missing, and sometimes the source code is too. Reverse engineering recovers what that software actually does, so it can be supported, modernized or replaced safely. Sciotex can often reverse engineer old, undocumented industrial systems and modernize their software.

Why undocumented industrial software is a risk

  • Nobody can fix it confidently when it fails
  • Small changes cause unexpected side effects
  • Hardware cannot be replaced because nobody knows how it is used
  • Knowledge depends on one person, or on no one
  • Audits and quality reviews cannot show how results are produced

What reverse engineering recovers

WhatHow it is recovered
Logic and sequencesReading source code, compiled programs, PLC and DCS projects, scripts and configuration files
Signals and hardwareTracing wiring, I/O channels, device addresses and communication protocols
TimingMeasuring how fast loops run, when outputs change and how devices are synchronized
DataDecoding file formats, databases and messages the system reads and writes
BehaviorRecording inputs and outputs across normal runs, faults and edge cases

How the process works

Step 1
Inventory
List the software, hardware, files and any partial documentation that exists.
Step 2
Read and trace
Recover logic from code and trace every signal to a physical device.
Step 3
Observe
Record real runs, including faults and unusual cases, without disturbing production.
Step 4
Document
Write down architecture, I/O lists, sequences and data formats.
Step 5
Verify
Turn recordings into test cases that prove any new software behaves the same.

When the source code is missing

Missing source code makes the job harder, but not always impossible. Compiled programs, PLC uploads, configuration files, log data and careful observation of the running system can often reveal enough to rebuild the software with confidence. In the worst cases, the requirements are rebuilt from behavior alone, with the old system kept available for side-by-side comparison.

What comes after reverse engineering

Recovered knowledge is the foundation for every next step: documenting and maintaining the system, refactoring or rewriting it, replacing obsolete hardware, or upgrading the operator interface. See the industrial software modernization guide for the full process.

Inherited a system nobody understands? Sciotex reverse engineers undocumented industrial software in LabVIEW, C#, C++, Python, PLC and DCS environments. Talk to our industrial software development team.

Frequently asked questions

Can undocumented industrial software be modernized?

Often, yes. Reverse engineering recovers the logic, signals and behavior of the existing system, which then guides documentation, refactoring, re-platforming or a rewrite.

Can you reverse engineer software without source code?

Sometimes. Compiled programs, PLC uploads, configuration and log files, and observation of the running system can reveal enough to rebuild it, with the old system kept for side-by-side comparison.

How do you prove the new software behaves the same?

By recording the old system’s inputs and outputs across normal runs, faults and edge cases, and using those recordings as acceptance tests for the new software.

Does reverse engineering disrupt production?

It shouldn’t. Most of the work uses copies of the software and passive observation of the running system, scheduled around production.

Related articles

Written by

Sciotex Engineering

The Sciotex engineering team has designed and built industrial, test and scientific software since 1997.

Have a software project or legacy system?

Talk it through with a Sciotex engineer.

In this article
Need help with industrial software?

Talk it through with a Sciotex engineer.

Next step

See what modern, supportable software could do for your system