Partilhar via


Peverify.exe (ferramenta PEVerify)

A ferramenta PEVerify ajuda os desenvolvedores que geram a linguagem intermediária da Microsoft (MSIL) (como escritores de compiladores e desenvolvedores de mecanismos de script) a determinar se seu código MSIL e metadados associados atendem aos requisitos de segurança de tipo. Alguns compiladores geram código seguro de tipo verificável somente se você evitar o uso de determinadas construções de linguagem. Se você estiver usando esse compilador, convém verificar se você não comprometeu a segurança de tipo do seu código. Você pode executar a ferramenta PEVerify em seus arquivos para verificar o MSIL e os metadados.

Esta ferramenta é instalada automaticamente com o Visual Studio. Para executar a ferramenta, use o Visual Studio Developer Command Prompt ou o Visual Studio Developer PowerShell.

Sintaxe

peverify filename [options]

Parâmetros

Argumento Description
filename O arquivo executável portátil (PE) para o qual verificar o MSIL e metadados.
Opção Description
/break=maxErrorCount Anula a verificação após erros maxErrorCount .

Este parâmetro não é suportado no .NET Framework versão 2.0 ou posterior.
/relógio Mede e relata os seguintes tempos de verificação em milissegundos:

MD Val. cycle
Ciclo de validação de metadados

MD Val. puro
Validação de metadados pura

IL Ver. cycle
Ciclo de verificação de idioma intermediário da Microsoft (MSIL)

IL Ver puro
Verificação MSIL pura

Os tempos de ciclo MD Val e IL Ver. incluem o tempo necessário para executar os procedimentos de inicialização e desligamento necessários. Os tempos puros e IL Ver puros refletem apenas o tempo necessário para realizar a validação ou verificação.
/Ajuda Exibe a sintaxe do comando e as opções da ferramenta.
/hresultado Exibe códigos de erro em formato hexadecimal.
/ignore=hex.code [, hex.code] Ignora os códigos de erro especificados.
/ignore=@responseFile Ignora os códigos de erro listados no arquivo de resposta especificado.
/il Executa verificações de segurança de tipo MSIL para métodos implementados no assembly especificado pelo nome do arquivo. A ferramenta retorna descrições detalhadas para cada problema encontrado, a menos que você especifique a opção /quiet .
/md Executa verificações de validação de metadados no assembly especificado pelo nome do arquivo. Esta opção percorre toda a estrutura de metadados dentro do arquivo e relata todos os problemas de validação encontrados.
/nologo Suprime a exibição da versão do produto e informações de direitos autorais.
/nosímbolos No .NET Framework versão 2.0, suprime números de linha para compatibilidade com versões anteriores.
/silencioso Especifica o modo silencioso; suprime a saída dos relatórios de problemas de verificação. Peverify.exe ainda informa se o arquivo é seguro para tipos, mas não relata informações sobre problemas que impedem a verificação de segurança de tipo.
/transparent Verifique apenas os métodos transparentes.
/único Ignora códigos de erro repetidos.
/verbose No .NET Framework versão 2.0, exibe informações adicionais em mensagens de verificação MSIL.
/? Exibe a sintaxe do comando e as opções da ferramenta.

Observações

O Common Language Runtime depende da execução segura do código do aplicativo para ajudar a impor mecanismos de segurança e isolamento. Normalmente, o código que não é verificável tipo seguro não pode ser executado, embora você possa definir a diretiva de segurança para permitir a execução de código confiável, mas não verificável.

Se nem as opções /md nem /il forem especificadas, Peverify.exe executará ambos os tipos de verificação. Peverify.exe executa verificações /md primeiro. Se não houver erros, as verificações /il são feitas. Se você especificar /md e /il, as verificações /il serão feitas mesmo se houver erros nos metadados. Assim, se não houver erros de metadados, peverify filename é equivalente a peverifyfilename/md/il.

Peverify.exe realiza verificações abrangentes de verificação MSIL com base na análise de fluxo de dados, além de uma lista de várias centenas de regras sobre metadados válidos. Para obter informações detalhadas sobre as verificações Peverify.exe executa, consulte a "Metadata Validation Specification" e a "MSIL Instruction set Specification" na pasta Tools Developers Guide no Windows SDK.

O .NET Framework versão 2.0 ou posterior oferece suporte a retornos verificáveis byref especificados usando as seguintes instruções MSIL: dup, ldsflda, ldflda, ldelema, calle unbox.

Exemplos

O comando a seguir executa verificações de validação de metadados e verificações de segurança de tipo MSIL para métodos implementados no assembly myAssembly.exe.

peverify myAssembly.exe /md /il

Após a conclusão bem-sucedida da solicitação acima, Peverify.exe exibe a seguinte mensagem.

All classes and methods in myAssembly.exe Verified

O comando a seguir executa verificações de validação de metadados e verificações de segurança de tipo MSIL para métodos implementados no assembly myAssembly.exe. A ferramenta exibe o tempo necessário para realizar essas verificações.

peverify myAssembly.exe /md /il /clock

Após a conclusão bem-sucedida da solicitação acima, Peverify.exe exibe a seguinte mensagem.

All classes and methods in myAssembly.exe Verified
Timing: Total run     320 msec
        MD Val.cycle  40 msec
        MD Val.pure   10 msec
        IL Ver.cycle  270 msec
        IL Ver.pure   230 msec

O comando a seguir executa verificações de validação de metadados e verificações de segurança de tipo MSIL para métodos implementados no assembly myAssembly.exe. Peverify.exe para, no entanto, quando atinge a contagem máxima de erros de 100. A ferramenta também ignora os códigos de erro especificados.

peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234

O comando a seguir produz o mesmo resultado que o exemplo anterior acima, mas especifica os códigos de erro a serem ignorados no arquivo de ignoreErrors.rspresposta.

peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp

O arquivo de resposta pode conter uma lista separada por vírgulas de códigos de erro.

0x12345678, 0xABCD1234

Como alternativa, o arquivo de resposta pode ser formatado com um código de erro por linha.

0x12345678
0xABCD1234

Consulte também