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 peverify filename /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
, call
e 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.rsp
resposta.
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