L’ingénierie inverse est le processus consistant à démonter quelque chose, à analyser ses caractéristiques et ses composants, et à le réassembler pour bien comprendre l’appareil. Dans les ordinateurs, les outils d’ingénierie inverse peuvent être utilisés pour décomposer des éléments tels que des logiciels et des bases de données, ou à des fins scientifiques, telles que la simplification et la décomposition du génome humain pour une meilleure compréhension et une meilleure contribution scientifique. Bien que les outils d’ingénierie inverse aient été critiqués pour leur légalité, il existe un certain nombre d’outils pour décomposer et comprendre de nombreux types de produits, en particulier les logiciels.
Certains logiciels sont disponibles sous forme d’outils d’ingénierie inverse open source et peuvent être facilement téléchargés à partir d’Internet. Un type de matériel open source comprend des outils d’ingénierie inverse Java, permettant la désobscurcissement des classes Java qui sont compilées. Ils accèdent au code source, créant un désobfuscateur qui est un quasi-code. Les outils de rétro-ingénierie sont conçus pour fonctionner en attribuant des noms aléatoires à des classes obscurcies en Java, et attribueront des verbes aléatoires de la langue anglaise aux méthodes de classe obscurcies en Java. Obtenir un outil comme celui-ci nécessite un simple téléchargement et une installation du logiciel sur un ordinateur.
D’autres outils open source qui peuvent être facilement téléchargés et installés à partir d’Internet incluent des analyseurs de protocoles réseau. Ces types de logiciels d’ingénierie capturent des paquets de données sur un réseau pour être analysés ultérieurement. Ils sont utilisés pour comprendre les opérations des protocoles de mise en réseau dans le multimédia propriétaire. Le logiciel est téléchargeable gratuitement et est constamment amélioré et amélioré.
Une autre variété de logiciels de rétro-ingénierie permet la construction d’outils d’analyse dynamique. Ces types d’outils de rétro-ingénierie sont utilisés dans la détection des bugs de threading ainsi que dans la gestion de la mémoire. Le logiciel comprend de nombreux types d’outils différents, notamment un détecteur d’erreur de mémoire, un profileur de prédiction pour les caches et les branches, et un générateur de graphiques d’appels, entre autres.
Il existe également des outils de rétro-ingénierie qui peuvent être exécutés sur certains systèmes d’exploitation (OS) en tant que débogueurs et désassembleurs. Ce type de logiciel peut être open source ou acheté sur Internet. L’un de ces outils est fourni avec des instructions PDF et des didacticiels sur la façon de l’utiliser avec différents systèmes d’exploitation, permettant à l’utilisateur de mieux comprendre les fonctionnalités de l’appareil et du système d’exploitation. Cependant, il a fait l’objet de critiques avec certains appareils mobiles et téléphones intelligents, et n’est plus facilement disponible.