# ¿Qué es Software Reverse Engineering?

Es el proceso de analizar hacia atrás los códigos o la estructura de un software ya preparado para comprender cómo funciona.

## Definición
Es un trabajo de detective que se realiza cuando sólo se tiene un programa en funcionamiento pero no se puede acceder a su código fuente. Al analizar los binarios del programa, se descubre su lógica, vulnerabilidades o principios operativos.

## Cómo funciona
Los códigos de máquina del software se hacen legibles mediante el uso de herramientas de análisis especiales (desensamblador/descompilador). Luego, se ejecutan procesos de razonamiento sobre estos códigos.

## Dónde se usa
Se utiliza en investigaciones de seguridad, análisis de software competitivo o modernización de sistemas heredados.

## Suele confundirse con
No se puede confundir con escribir código; El objetivo aquí no es producir, sino solucionar el existente.

## Preguntas frecuentes
**¿Es legal?**
Generalmente aceptado para investigaciones de seguridad, pero se debe tener precaución con respecto a los derechos de autor y los acuerdos de licencia.


## Términos relacionados
- [Vulnerability Scanning](/es/dictionary/vulnerability-scanning/)
- [Binary](/es/dictionary/binary/)
- [Security Scanner](/es/dictionary/security-scanner/)

## Herramientas relacionadas
- [Ghidra](/es/discover/ghidra/)

---
Fuente: TreScout Glosario · https://trescout.com/es/dictionary/software-reverse-engineering/
