Reverse engineering: Understand security
Understand software and hardware
Reverse engineering enables us to understand how software works without having access to the source code.
Software is everywhere today, running on every kind of machine. Most software packages have many dependencies that the buyer is not informed of. So what exactly does the software you're using contain? What exactly does it do? Does it enhance security, or might it actually weaken system defense?
To fathom out a binary file without having access to the source code we need specific tools and advanced know-how. It's a highly complex matter. That's our everyday business at Quarkslab: software investigation, and development of specialized tools addressing today's reverse engineering challenges.
Reverse engineering principles extend also to hardware analysis (PCB, components,…) to map hardware architecture, uncover communication busses and protocols between elements and assess their security level.
Reverse engineering can be used for various purposes that are legal in France:
- Improve understanding of code such as malware or overlooked software
- Provide patches
- Test protections (DRM, gaming, payment, etc.)
- Reconstruct exact code from a binary file (e.g. intellectual property theft)
- Examine interoperability, building third-party clients for protocol
- Use hardware methods to enable software analysis: firmware extraction (JTAG, Flash desoldering,…), observation, interception and tampering of electric signals (I2C, SPI,…) between components (MCUs, memories, peripherals, biometric sensors,…)
- Rely on side-channel analysis and fault injection to estimate the CPU processing and possibly extract cryptographic keys
- Reports explaining the code and/or hardware we've analyzed
- Extracts of code developed to reproduce or interact with the program analyzed