Skip to main content
Back to Glossary (R)
Glossary · R

Reverse Engineering.

Reverse engineering means examining an existing system from the outside in to understand how it works: software, an interface, a file format or a device. The aim is usually to become compatible with it, find bugs, uncover security vulnerabilities or replace an old system whose documentation is missing.

Illustration of "Reverse Engineering": Process in 5 steps: Legacy system → Observe → Understand format → Migrate → New system Legacy systemno docs01Observe02Understandformat03Migrate04New system05

Reverse Engineering — Explained in Detail

Reverse engineering is as old as technology itself. Anyone who unscrews a device to see how it is built is already doing it. In software it means observing which data a program sends and receives, reading file formats, analysing a web app's network requests in the browser or translating compiled code back into a readable form. The result is a description of what the system does, without access to the source code or the developers.

For SMEs the most common scenario is unspectacular: an old industry application is to be replaced, but the vendor no longer exists and nobody knows exactly how the data is stored. Or a device, a till system or a machine is to be connected to a new system and there is no documented API. Reverse engineering then clarifies which data sits where and how to migrate it cleanly. This is often the basis for moving to custom software or escaping vendor lock-in.

AI agents are changing the craft. They can read large amounts of code, logs or network traffic, recognise patterns and produce documentation or even a reimplementation of an interface. Tools are appearing on GitHub with which coding agents analyse web apps and programs systematically. This speeds up the work considerably but requires oversight: agents can misinterpret relationships, and what they infer must be checked against the real system.

Legally, reverse engineering in Switzerland is neither banned across the board nor allowed without limits. Article 21 of the Swiss Copyright Act (URG) allows lawful users of a program to decode the code in order to obtain information about interfaces to independently created programs, i.e. for interoperability. The information obtained may only be used for that purpose. Licence agreements, the protection of technical measures (Art. 39a URG) and the protection of trade secrets also apply. Text: fedlex.admin.ch, SR 231.1. This overview is not legal advice; in individual cases a specialist should assess the situation.

What reverse engineering is used for in projects

Data migration: extracting data from old software whose format is undocumented and transferring it completely into a new system. Interoperability: connecting a new application to an existing device or program that offers no official interface. Security: testing your own systems the way an attacker would. Documentation: understanding systems that have grown over time and whose original developers are no longer available.

It does not include rebuilding someone else's software to sell it, circumventing copy protection or harvesting content and data from third-party platforms against their terms. How we approach replacing legacy systems is described on custom software Switzerland and web app development.

Example: a garage changes its workshop software

A constructed example: a garage in Thurgau has worked for years with workshop software whose vendor has ceased trading. The software still runs, but there are no more updates. The database holds the customer base, vehicles and service history, and no export is provided.

By analysing the database files and the screens, it is reconstructed which table contains what and how customers, vehicles and jobs are linked. A script transfers the data to the new solution, and spot checks against the old software confirm the migration. The garage uses only its own data and software it has lawfully licensed. Whether the licence agreement contains restrictions is checked beforehand.

Frequently Asked Questions About Reverse Engineering

Partly. Art. 21 of the Copyright Act allows lawful users to decode a program to obtain interface information for independently created, compatible programs. Other purposes, licence agreements, technical protection measures and trade secrets can set limits. Have individual cases reviewed legally.

In many cases yes, because it is your data. Still, it is worth checking the licence agreement and, if appropriate, asking the vendor. Under the Data Protection Act, data subjects also have rights to their personal data that must be respected during a migration.

They can speed up a large part of the analysis, such as reading code, recognising patterns in data and writing documentation. But what they infer must be checked against the real system, and no agent settles the legal question.

Ready for Your Project?

Apply this knowledge to your website — DLM Digital will help you.