



A DeGate é um software multi-plataforma para engenharia reversa semi-automática do VLSI da lógica digital em chips. Este repositório é uma continuação do projeto de Degate original, com grandes mudanças e um novo mantenedor. Para mais informações, visite nossa página do Wiki e, se você quiser conversar, visite nosso Gitter. O atual mantenedor principal de DeGate é Dorian Bachelot.
DeGate foi desenvolvido ativamente por Martin Schobert, durante sua tese, de 2008 a 2011. De 2013 a 2018, o projeto ficou principalmente inativo e só conseguiu algumas pequenas correções ao longo dos anos. Nesse momento, o projeto era composto por uma biblioteca (libgate) e uma interface GUI (DeGate).
A DeGate tem definitivamente um grande potencial, principalmente porque é o único software gratuito e de código aberto para engenharia reversa de hardware de chips, mas nunca soube como se impor na comunidade. Uma possível razão para isso é que DeGate era conhecido por ser instável e ter bugs de impacto em um primeiro lugar.
Você pode navegar pelo antigo código de Degate aqui e o antigo repositório aqui:
https://github.com/nitram2342/degate
Este projeto substitui o antigo departamento, pelo foco no suporte ao Windows, Linux e MacOS, obtendo melhor estabilidade e modernização geral. Para conseguir isso, o primeiro passo foi soltar o GTK, mudar para QT e mesclar a parte da LIB e da GUI do projeto. Outro objetivo era minimizar o número de dependências, pois agora ele usa apenas impulso e qt e o objetivo médio é manter apenas o qt e remover o aumento.
A estabilidade foi o principal problema do antigo DeGate e a principal razão pela qual a comunidade ainda não havia se unido em torno dele. Em relação a isso, queremos ter menos bugs possível, mesmo que alguma funcionalidade precise ser descartada (no momento).
No momento, temos (como funcionalidades):
Abaixamos essas funcionalidades do antigo DeGate:
Muitos bugs foram corrigidos nesta versão mais recente, e deve ser uma base melhor para melhorar ainda mais o DeGate no futuro.
Ainda há muito o que fazer nesta nova versão, mas todas as funcionalidades principais (e ainda mais) são implementadas.
Funcionalidades futuras restantes para implementar (não limitadas):
Para um roteiro mais preciso, consulte o arquivo Roteiro.md.
A documentação oficial de Degate está disponível aqui. Ainda está em construção.
Além disso, você pode encontrar aqui o wiki oficial de Degate. Por exemplo, você pode encontrar nele uma lista de tutoriais para o DeGate e para a engenharia reversa do IC.




DeGate possui apenas 2 dependências: Boost e Qt6.
Usamos o VCPKG para lidar com a instalação deles, consulte a seção #Quick-Start abaixo.
Para Linux (leia a seção Linux abaixo, algumas dependências são necessárias apenas se usar o QT do VCPKG ):
Para MacOS (leia a seção MacOS abaixo):
Se você estiver usando uma instalação local QT6:
Primeiro, clone este repositório (ajuda aqui):
> git clone https://github.com/DegateCommunity/Degate
> git submodule update --init --recursivePrepare a instalação de dependências (alguns deles são necessários apenas se usar o QT do 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-archiveSe estiver faltando alguma coisa, você deve ser solicitado com a ajuda de como instalar as ferramentas necessárias.
Build (na pasta 'Build', por exemplo):
> cmake .. -DVCPKG_QT=1
> makeOs binários estão na pasta 'Build/Out/Bin'.
Se você preferir usar a instalação do QT local (e para evitar a reconstrução do qt através do VCPKG), use a opção -DVCPKG_QT=0 .
Instale dependências:
> . v cpkg b ootstrap-vcpkg.bat -disableMetricsBuild (na pasta 'Build', por exemplo):
> cmake .. -DVCPKG_QT=1
> cmake --build .Os binários estão na pasta 'Build/Out/Bin'.
Se você preferir usar a instalação do QT local (e para evitar a reconstrução do qt através do VCPKG), use a opção -DVCPKG_QT=0 e especifique o caminho do QT6 com -DCMAKE_PREFIX_PATH="path_to_qt" .
Prepare a instalação de dependências:
> ./vcpkg/bootstrap-vcpkg.sh -disableMetrics
> brew install autoconf autoconf-archive automake Build (na pasta 'Build', por exemplo):
> cmake .. -DVCPKG_QT=1
> cmake --build .Os binários estão na pasta 'Build/Out/Bin' no formato Pacote ".App".
Se você preferir usar a instalação do QT local (e para evitar a reconstrução do qt através do VCPKG), use a opção -DVCPKG_QT=0 .
Could NOT find Boost (missing: filesystem system thread) (found version "1.71.0")
Esta mensagem pode ser causada por opções padrão que forçam a usar a versão estática e multithread da biblioteca Boost. Por exemplo, este é um problema ao instalar o Boost com Macports no macOS porque a versão instalada não fornece uma versão estática por padrão. Para alterar essas opções padrão, você pode usar esses dois comandos ao ligar para o cmake (ON/OFF):
> cmake .. -DBoost_USE_STATIC_LIBS=OFF -DBoost_USE_MULTITHREADED=OFFNo Windows, isso também pode ser causado por uma versão instalada do Boost que não corresponde ao compilador instalado.
/etc/cmake/ConfigureFiles.cmake:25 (file): file failed to open for reading (No such file or directory): .../VERSION
Esta mensagem pode aparecer para os usuários do MacOS. O problema vem de espaços em nomes de diretórios, este é um bug do cmake. Basta mover sua pasta degrada para uma árvore de arquivos sem espaços em nomes de diretórios.
CMake Error at vcpkg_execute_required_process.cmake:127 (message): Command failed: vcpkg/downloads/tools/ninja/1.10.2-linux/ninja -v
Consulte a saída VCPKG, isso está vinculado à instalação QT que precisa de dependências pré-instaladas em algumas plataformas. Por exemplo, no Linux, você precisa executar: sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev libegl1-mesa-dev sudo apt-get install libxi-dev libgl1-mesa-dev libglu1-mesa-dev mesa-common-dev libxrandr-dev libxxf86vm-dev .
Você pode encontrar projetos de demonstração aqui.
Leia o arquivo "Contribuindo.md".
Por enquanto, apenas o inglês e o francês são apoiados, mas se você deseja ajudar facilmente. Use degate Linguista QT para tradução, você pode aprender mais aqui: https://doc.qt.io/qt-5/linguist-translators.html. Você pode encontrar arquivos .ts (para usar com o lingüista QT) em 'res/idiomas'.
Idiomas:
Para adicionar um novo idioma, abre um novo problema ou use nosso projeto Crowdin: https://crowdin.com/project/degate.
A DeGate é divulgada no GNU Licença Pública GNU Versão 3. Consulte License.txt para obter detalhes.
O atual mantenedor principal de DeGate é Dorian Bachelot [email protected] e o mantenedor de departamento original é martin schobert [email protected].