Instalação:

OpenSolaris

  1. Verificar se awk/gawk se encontram instalados no sistema.

  2. Actualizar o gcc.

  3. Fazer download de DEEEP, do SunStudio e Splint.

  4. Instalar o SunStudio, conforme indicações da aplicação.

  5. Instalar o Splint, conforme indicações da aplicação.

  6. Descompactar o pacote tgz de DEEEP para um directório (ex. /export/home/username/).

  7. Adicionar a $PATH o caminho executável de DEEEP (ex. /export/home/username/deeep-0.4).

  8. Editar o ficheiro de configuração de deeep-0.4, o config, e confirmar se os caminhos dos executáveis make, lint e splint estão correctos de acordo com o sistema. Os mesmos, após instalação e actualização de pacotes, deverão ser para:

    • make, MAKE=/usr/xpg4/bin

    • lint, LINT=/opt/SUNWspro/bin

    • splint, SPLINT=/usr/bin

Linux

  1. Verificar se awk/gawk se encontram instalados no sistema.

  2. Actualizar o gcc.

  3. Fazer download de DEEEP, do SunStudio e Splint.

  4. Instalar o SunStudio, conforme indicações da aplicação.

  5. Instalar o Splint, conforme indicações da aplicação.

  6. Descompactar o pacote tgz de DEEEP para um directório (ex. /home/username/).

  7. Adicionar a $PATH o caminho executável de DEEEP (ex. /home/username/deeep-0.4).

  8. Editar o ficheiro de configuração de deeep-0.4, o config, e confirmar se os caminhos dos executáveis make, lint e splint estão correctos de acordo com o sistema. Os mesmos, após instalação e actualização de pacotes, deverão ser para:

    • make, MAKE=/usr/bin

    • lint, LINT="Caminho para sunstudio"/sunstudio/bin

    • splint, SPLINT=/usr/bin

Utilização:

deeep [-fl ficheiros [-hf

]] |
[-pj projecto [[-cf configure flags] [-mk make flags] [-tmp] [-cm]]]
[-w64 -help]

Opções:

  • -fl ficheiros: verifica um ou mais ficheiros .c, que não estão incluídos num projecto.

  • -hf: específica ficheiros/directórios extra de bibliotecas.
    Uma flag para cada ficheiro/directório (utilizar somente com -fl)
    Exemplo: -hf/caminhoparao/headerfile.h -hf/caminhoparao/directório

  • -pj projecto: Analisa um projecto que contém código fonte, configure, Makefile e ficheiros de bibliotecas.
    Neste caso o utilizador deve especificar o caminho do projecto.

  • -cf: passa flags opcionais ao configure.
    Exemplo: -cf --prefixe=/usr

  • -mk: passa flags opcionais ao make.
    Por defeito o deeep passa '-wki CC=gcc'
    Exemplo: -mk -n

  • -tmp: preserva os ficheiros temporários (como os resultantes do configure e do make).

  • -cm: não executa o configure.

  • -w64: apresenta somente os avisos de 64 bits.

  • -help: apresenta esta ajuda.

Publicações:

Ibéria Medeiros, Miguel Correia. Finding Vulnerabilities in Software Ported from 32 to 64-bit CPUs (fast-abstract). Actas da 39ª IEEE/IFIP Conferência International sobre Redes e Sistemas Fiáveis (DSN'09), Lisboa, Portugal, Julho, 2009.

Ibéria Medeiros. Detecção de Vulnerabilidades de Inteiros na Adaptação de Software de 32 para 64 bits. Tese de Mestrado. Faculdade de Ciências da Universidade de Lisboa, Lisboa, Março de 2008.

Ibéria Medeiros, Miguel Correia. Detecção de Vulnerabilidades de Inteiros na Adaptação de Software de 32 para 64 bits. Actas da 3ª Conferência Nacional Sobre Segurança Informática nas Organizações (SINO'07), Lisboa, Portugal, Novembro, 2007.