<summary><strong>Aprenda hacking AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
Você também pode usar a [**extensão semgrep para o VSCode**](https://marketplace.visualstudio.com/items?itemName=Semgrep.semgrep) para obter os resultados dentro do VSCode.
Existe uma **versão gratuita instalável**, mas de acordo com a licença, você só pode **usar a versão gratuita do CodeQL em projetos de código aberto**.
A primeira coisa que você precisa fazer é **preparar o banco de dados** (criar a árvore de código) para que posteriormente as consultas sejam executadas sobre ele.
Isso **geralmente irá disparar um erro** dizendo que mais de um idioma foi especificado (ou detectado automaticamente). **Verifique as próximas opções** para corrigir isso!
* Você pode fazer isso **indicando manualmente** o **repositório** e o **idioma** ([lista de idiomas](https://docs.github.com/en/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis#running-codeql-database-create))
* Você também pode permitir que o `codeql`**identifique todos os idiomas** para você e crie um banco de dados por idioma. Você precisa fornecer um **GITHUB\_TOKEN**.
Você pode visualizar as descobertas em [**https://microsoft.github.io/sarif-web-component/**](https://microsoft.github.io/sarif-web-component/) ou usando a extensão do VSCode [**SARIF viewer**](https://marketplace.visualstudio.com/items?itemName=MS-SarifVSCode.sarif-viewer).
Você também pode usar a [**extensão do VSCode**](https://marketplace.visualstudio.com/items?itemName=GitHub.vscode-codeql) para obter as descobertas dentro do VSCode. Ainda será necessário criar um banco de dados manualmente, mas então você pode selecionar qualquer arquivo e clicar em `Botão Direito` -> `CodeQL: Executar Consultas nos Arquivos Selecionados`
Você também pode usar a [**extensão do Snyk para o VSCode**](https://marketplace.visualstudio.com/items?itemName=snyk-security.snyk-vulnerability-scanner) para obter descobertas dentro do VSCode.
* [**nodejsscan**](https://github.com/ajinabraham/nodejsscan)**:** Ferramenta de varredura de código de segurança estática (SAST) para aplicações Node.js alimentada por [libsast](https://github.com/ajinabraham/libsast) e [semgrep](https://github.com/returntocorp/semgrep).
* [**RetireJS**](https://github.com/RetireJS/retire.js)**:** O objetivo do Retire.js é ajudá-lo a detectar o uso de versões de bibliotecas JS com vulnerabilidades conhecidas.
* [**electronegativity**](https://github.com/doyensec/electronegativity)**:** É uma ferramenta para identificar configurações incorretas e padrões de segurança em aplicações baseadas em Electron.
* [**Bandit**](https://github.com/PyCQA/bandit)**:** Bandit é uma ferramenta projetada para encontrar problemas de segurança comuns em código Python. Para fazer isso, o Bandit processa cada arquivo, constrói uma AST a partir dele e executa plugins apropriados contra os nós da AST. Uma vez que o Bandit tenha terminado de escanear todos os arquivos, ele gera um relatório.
* [**safety**](https://github.com/pyupio/safety): O safety verifica as dependências do Python em busca de vulnerabilidades de segurança conhecidas e sugere as correções apropriadas para as vulnerabilidades detectadas. O safety pode ser executado em máquinas de desenvolvimento, em pipelines CI/CD e em sistemas de produção.
[Psalm](https://phpmagazine.net/2018/12/find-errors-in-your-php-applications-with-psalm.html) e [PHPStan](https://phpmagazine.net/2020/09/phpstan-pro-edition-launched.html).
* Se estiver usando jsnice.org, clique no botão de opções ao lado do botão "Nicify JavaScript" e desmarque "Infer types" para reduzir a desordem no código com comentários.
* Garanta que não haja linhas vazias antes do script, pois isso pode afetar o processo de desofuscação e fornecer resultados imprecisos.
> Esta ferramenta usa grandes modelos de linguagem (como ChatGPT e llama2) e outras ferramentas para desminificar código Javascript. Note que os LLMs não realizam alterações estruturais - eles apenas fornecem dicas para renomear variáveis e funções. O trabalho pesado é feito pelo Babel no nível AST para garantir que o código permaneça equivalente 1-1.
* Encontre o valor de retorno no final e altere para `console.log(<variávelDeRetornoDoPacker>);` para que o js desofuscado seja impresso em vez de ser executado.
* Em seguida, cole o js modificado (ainda ofuscado) em [https://jsconsole.com/](https://jsconsole.com/) para ver o js desofuscado registrado no console.
* Por fim, cole a saída desofuscada em [https://prettier.io/playground/](https://prettier.io/playground/) para embelezá-la para análise.
* **Nota**: Se você ainda estiver vendo js empacotado (mas diferente), pode estar empacotado de forma recursiva. Repita o processo.
* [Desofuscar / Desminificar Código de Aplicativos Web Obfuscados](https://gist.github.com/0xdevalias/d8b743efb82c0e9406fc69da0d6c6581#deobfuscating--unminifying-obfuscated-web-app-code)
* [Engenharia Reversa de Aplicativos Webpack](https://gist.github.com/0xdevalias/8c621c5d09d780b1d321bfdb86d67cdd#reverse-engineering-webpack-apps)