



Degate es un software multiplataforma para ingeniería inversa VLSI semiautomática de lógica digital en chips. Este repositorio es una continuación del proyecto Degate original, con cambios importantes y un nuevo mantenedor. Para obtener más información, visite nuestra página Wiki y, si desea chatear, visite nuestro Gitter. El mantenedor principal actual de Degate es Dorian Bachelot.
Degate fue desarrollado activamente por Martin Schobert, durante su tesis, de 2008 a 2011. De 2013 a 2018, el proyecto fue principalmente inactivo y solo obtuvo algunas pequeñas soluciones a lo largo de los años. En este momento, el proyecto estaba compuesto por una biblioteca (libgate) y una interfaz GUI (degate).
Degate definitivamente tiene un gran potencial, principalmente porque es el único software gratuito y de código abierto para la ingeniería inversa de chips de hardware, pero nunca supo cómo imponerse en la comunidad. Una posible razón para eso es que se sabía que Degate era inestable y tenía insectos impactantes en primer lugar.
Puede navegar por el código de delgate antiguo aquí y el antiguo repositorio aquí:
https://github.com/nitram2342/degate
Este proyecto reemplaza el viejo Degate, con un enfoque en el soporte de Windows, Linux y MacOS, obteniendo una mejor estabilidad y modernización general. Para lograr esto, el primer paso fue dejar caer GTK, moverse a QT y fusionar la Lib y la parte GUI del proyecto. Otro objetivo era minimizar el número de dependencias, por ahora usa solo Boost y Qt y el objetivo de mediano plazo es mantener solo QT y eliminar el impulso.
La estabilidad era el principal problema del viejo Degate y la razón principal por la cual la comunidad no se había unido a su alrededor. Con respecto a eso, queremos tener menos errores como sea posible, incluso si se debe eliminar alguna funcionalidad (por el momento).
Por el momento tenemos (como funcionalidades):
Dejamos esas funcionalidades de Old Degate:
Se solucionaron muchos errores en esta versión más reciente, y debería ser una mejor base para mejorar el inyección aún más en el futuro.
Todavía hay mucho que hacer en esta nueva versión, pero se implementan todas las funcionalidades centrales (y aún más).
Las funcionalidades futuras restantes para implementar (no limitadas):
Para una hoja de ruta más precisa, consulte el archivo Roadmap.md.
La documentación oficial de Degate está disponible aquí. Todavía está en construcción.
Además, puede encontrar aquí el Wiki oficial de Degate. Por ejemplo, puede encontrar en ella una lista de tutoriales para Degate y para ingeniería inversa de IC.




Degate tiene solo 2 dependencias: Boost y Qt6.
Utilizamos VCPKG para manejar la instalación de ellos, consulte la sección #de arranque rápido a continuación.
Para Linux (lea la sección de Linux a continuación, solo se necesitan algunas dependencias si se usa el QT de VCPKG ):
Para macOS (lea la sección MacOS a continuación):
Si está utilizando una instalación local de QT6:
Primero, clone este repositorio (ayuda aquí):
> git clone https://github.com/DegateCommunity/Degate
> git submodule update --init --recursivePrepare la instalación de dependencias (algunas de ellas solo son necesarias si usan el QT de VCPKG ):
> ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
> apt install ' ^libxcb.*-dev ' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev
libxkbcommon-x11-dev libegl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev
autoconf autoconf-archiveSi falta algo, se le debe pedir ayuda sobre cómo instalar las herramientas necesarias.
Construir (en la carpeta 'construir', por ejemplo):
> cmake .. -DVCPKG_QT=1
> makeLos binarios están en la carpeta 'construir/out/bin'.
Si prefiere utilizar su instalación local de QT (y evitar la reconstrucción de Qt a través de VCPKG), utilice la opción -DVCPKG_QT=0 .
Instalar dependencias:
> . v cpkg b ootstrap-vcpkg.bat -disableMetricsConstruir (en la carpeta 'construir', por ejemplo):
> cmake .. -DVCPKG_QT=1
> cmake --build .Los binarios están en la carpeta 'construir/out/bin'.
Si prefiere usar su instalación local de Qt (y evitar reconstruir QT a través de VCPKG), use la opción -DVCPKG_QT=0 y especifique la ruta de Qt6 con -DCMAKE_PREFIX_PATH="path_to_qt" .
Prepare la instalación de dependencias:
> ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
> brew install autoconf autoconf-archive automake Construir (en la carpeta 'construir', por ejemplo):
> cmake .. -DVCPKG_QT=1
> cmake --build .Los binarios están en la carpeta 'construir/out/bin' en el formato de paquete ".App".
Si prefiere utilizar su instalación local de QT (y evitar la reconstrucción de Qt a través de VCPKG), utilice la opción -DVCPKG_QT=0 .
Could NOT find Boost (missing: filesystem system thread) (found version "1.71.0")
Este mensaje puede ser causado por opciones predeterminadas que obligan a usar la versión estática y multiproceso de la biblioteca Boost. Por ejemplo, este es un problema al instalar Boost con MacPorts en MacOS porque la versión instalada no proporciona una versión estática de forma predeterminada. Para cambiar estas opciones predeterminadas, puede usar estos dos comandos al llamar a CMake (encendido/apagado):
> cmake .. -DBoost_USE_STATIC_LIBS=OFF -DBoost_USE_MULTITHREADED=OFFEn Windows esto también puede ser causado por una versión instalada de Boost que no coincide con su compilador instalado.
/etc/cmake/ConfigureFiles.cmake:25 (file): file failed to open for reading (No such file or directory): .../VERSION
Este mensaje puede aparecer para los usuarios de MacOS. El problema proviene de espacios en los nombres de los directores, este es un error de CMake. Simplemente mueva su carpeta degate a un árbol de archivos sin espacios en los nombres de los directorio.
CMake Error at vcpkg_execute_required_process.cmake:127 (message): Command failed: vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v
Consulte la salida de VCPKG, esto está vinculado a la instalación de QT que necesitan dependencias preinstaladas en algunas plataformas. Por ejemplo, en Linux debe ejecutar: sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev y sudo apt-get install libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev .
Puedes encontrar proyectos de demostración aquí.
Lea el archivo "contribuyente.md".
Por ahora, solo el inglés y el francés son compatibles, pero si lo desea, puede ayudar fácilmente. Degate use QT Linguist para la traducción, puede obtener más información aquí: https://doc.qt.io/qt-5/linguist-translators.html. Puede encontrar archivos .ts (para usar con Linguist QT) en 'Res/Languages'.
Idiomas:
Para agregar un nuevo idioma, abre un nuevo problema, o use nuestro proyecto Crowdin: https://crowdin.com/project/degate.
Degate se publica bajo la versión de Licencia Pública General de GNU 3. Consulte License.txt para más detalles.
El actual mantenedor principal de Degate es Dorian Bachelot [email protected] y el mantenedor de Degate original es Martin Schobert [email protected].