Building Reverse Engineering Tools with Software Components: Ten Lessons Learned

Author(s):  
Holger M. Kienle
Author(s):  
Navid Asadizanjani ◽  
Sina Shahbazmohamadi ◽  
Mark Tehranipoor ◽  
Domenic Forte

Abstract Reverse engineering of electronics systems is performed for various reasons ranging from honest ones such as failure analysis, fault isolation, trustworthiness verification, obsolescence management, etc. to dishonest ones such as cloning, counterfeiting, identification of vulnerabilities, development of attacks, etc. Regardless of the goal, it is imperative that the research community understands the requirements, complexities, and limitations of reverse engineering. Until recently, the reverse engineering was considered as destructive, time consuming, and prohibitively expensive, thereby restricting its application to a few remote cases. However, the advents of advanced characterization and imaging tools and software have counteracted this point of view. In this paper, we show how X-ray micro-tomography imaging can be combined with advanced 3D image processing and analysis to facilitate the automation of reverse engineering, and thereby lowering the associated time and cost. In this paper, we demonstrate our proposed process on two different printed circuit boards (PCBs). The first PCB is a four-layer custom designed board while the latter is a more complex commercial system. Lessons learned from this effort can be used to both develop advanced countermeasures and establish a more efficient workflow for instances where reverse engineering is deemed necessary. Keywords: Printed circuit boards, non-destructive imaging, X-ray tomography, reverse engineering.


IEEE Software ◽  
2010 ◽  
Vol 27 (4) ◽  
pp. 30-36 ◽  
Author(s):  
Joris Van Geet ◽  
Serge Demeyer

Author(s):  
Lionel Morel ◽  
Damien Courousse ◽  
Thomas Hiscock

Cyber-attacks combine several techniques to compromise device's functionality, recover sensitive data or unveil IP design. Combined counter-measures are needed to address these complex attacks as a whole. We address attacks that rely on reverse engineering to recover application code and side-channel attacks to access sensitive data. We present POLEN, a toolchain and a processor architecture that combines two countermeasures: code encryption and code polymorphism to thwart such complex attacks. Code encryption reduces the useful information in memory dumps, preventing reverse engineering, by encrypting machine instructions before its deployment, and instructions are only decrypted inside the CPU. Code polymorphism regularly changes the observable behaviour of the program, making it unpredictable for an attacker, and reducing the possibility to exploit side-channel leakages. Using many configuration parameters, POLEN gives the developer the ability to adapt the security level to its application. We present our prototype implementation, based on the RISC-V Spike simulator and a modified LLVM toolchain. We demonstrate that POLEN reduces side-channel leakages through leakage assessments metrics. We show that POLEN achieves a good level of security against side-channel attacks while maintaining acceptable overheads on program performance.


2017 ◽  
Vol 131 ◽  
pp. 442-460 ◽  
Author(s):  
Anas Shatnawi ◽  
Abdelhak-Djamel Seriai ◽  
Houari Sahraoui ◽  
Zakarea Alshara

IEEE Software ◽  
2007 ◽  
Vol 24 (3) ◽  
pp. 84-94 ◽  
Author(s):  
Juan Pablo Carvallo ◽  
Xavier Franch ◽  
Carme Quer

Author(s):  
Yoram Retter

Aircraft design may require use of geometry that is not readable by the CAD system being used. Most notably, since aircrafts always stay in service longer than the CAD system that helped build them, such geometry will be pre-CAD real aircraft parts and the tools for manufacturing them. Other cases are data from deformed parts (real and virtual), output from analysis programs and flexible parts in a given position. Geometry from these sources can be read by the CAD system using Reverse Engineering tools and then be further processed in computer applications as required, either by itself or combined with CAD data from other sources. While this is not an every day requirement, the cases that do require such data usually have no other practical solution. This paper describes the practices used at IAI for such procedures and the lessons learned.


Sign in / Sign up

Export Citation Format

Share Document