Scripts, ferramentas e informações para ajudar a plataforma de banda de base celular Exynos Cellular da Engenheiro Reverse Samsung, codinome Shannon. Essas ferramentas foram lançadas para a palestra "emulando a banda base Shannon da Samsung para testes de segurança" no Black Hat USA'2020, 5 de agosto.
reversing/ghidra/ShannonLoader Uma extensão de Ghidra para carregar modem.bin binários de quase todos os modems conhecidos até o momento. Todas as imagens de firmware de https://github.com/Grant-H/shannonfirmware são carregadas durante os testes de IC para o carregador para garantir sua compatibilidade.
reversing/ghidra/scriptsGhidra pós-carregamento Scripts Python que ajudam a anotar imagens de modem Shannon. Isso inclui a recuperação de strings de depuração e funções de nomeação automática. Use após o carregamento com ShannonLoader.
reversing/modem Raw modem.bin Extração Script em sub -partes e outros à medida que são desenvolvidos.
reversing/btlScripts e informações para analisar arquivos de log de rastreamento (BTL). Estes estão incluídos durante falhas / despejos modernos ou através da funcionalidade "CP RAM Logging". Estes são arquivos de log compactados do modem em execução real.
firmware/Informações sobre aquisição de firmware e alguns despejos de dados extraídos.
Aqui está um tutorial rápido para começar a reverter esse firmware com Ghidra.
modem.bin . Certifique -se de não ser o binário, se for comprimido.ShannonLoader.zip lançamento que está na última tag de lançamentomodem.bin . Você deve ver que o carregador deste arquivo é selecionado automaticamente como "Binário Samsung Shannon Modem". Se você não vê isso, verifique se você carregou o arquivo certo e instalou a extensão corretamente. Open Ghidra Debug Console (canto inferior direito na tela Splash) para verificar se há algum erro.ShannonTraceEntry.py Python na categoria "Shannon". Certifique -se de colocar scripts no diretório inicial do seu usuário em ~/ghidra_scripts (Linux) ou adicione o caminho a eles no gerente. Este script identificará todas as informações de depuração de rastreamento antes da análise e evitará dados de diaissessing.log_printf , levando à desmontagem quebrada em todo o binário. Se você não desmarcar isso, precisará reiniciar sua importação do zero.ShannonRename.py . Isso o ajudará a navegar pelo binário, mas lembre -se de que os nomes são determinados heuristicamente, para que a qualidade possa variar. As funções com o mesmo nome adivinhado terão um prefixo numérico anexado.Se você quiser uma rápida olhada em volta, exportamos um projeto Ghidra para uma imagem moderna de 2017.
A licença do repositório é MIT. NOTA: A licença de nível superior aborda apenas arquivos que contêm explicitamente marcas SPDX, não o repositório inteiro. Para outros arquivos, eles podem não ser licenciados (por exemplo, despejos binários, firmware) ou podem conter outras licenças permissivas.