Create accurate hardware models
Our digital twin can help you create hardware models of systems we don’t support out of the box. It supports a wide range of architectures, it accurately models data transformations, and it has a flexible interface to give you access to how the system is behaving.
How it works
Wide range of architectures
Our digital twin uses Ghidra’s PCODE as its native language. This means any system that can be modelled in PCODE can be run in our digital twin. We currently have models of a MIPS 32bit Huawei ADSL router, an ARM5 Foscam security camera, an Infineon Tricore SoC, an ADSP Sharc, and a Coldfire SoC. We are in the process or supporting an ARM8 Beaglebone Black.
![](https://images.tuliptreetech.com/models/adsp.png)
![](https://images.tuliptreetech.com/models/nxp.png)
![](https://images.tuliptreetech.com/models/tricore.png)
![](https://images.tuliptreetech.com/twins.png)
![](https://images.tuliptreetech.com/models/foscam.png)
![](https://images.tuliptreetech.com/models/beaglebone.png)
![](https://images.tuliptreetech.com/models/hg532e.png)
High Fidelity
Since we are using Ghidra’s PCODE, our digital twin takes advantage of the atomic nature of that language to model data transformations accurately. It does not take shortcuts in instruction emulation to gain speed. By focusing on data integrity, our digital twin ensures that your target software functions exactly as it would on hardware.
![](https://images.tuliptreetech.com/ghidra_inside.png)
By leveraging PCODE, our digital twin has taint tracking built in. That functionality works out of the box on every system that we support. Using the python interface, you can instrument your target software regardless of the architecture and hardware configuration.
Flexible Interface
Our GUI was specifically designed to enable faster reverse engineering. You can view the running system through any number of perspectives. See how memory looks from the processor or the system bridge or the device itself. Interact with hardware registers on a processor or any peripheral device. See what instructions are going to executed next, including which branches your system is going to take.
To support new peripheral devices, our digital twin has a python based device interface. You can create models of peripheral devices that interact with the overall system through read, write, and tick interfaces.
![](https://images.tuliptreetech.com/embedded_systems.png)