BinScope e ArgumentException: caracteres ilegais no caminho

1

Estou capturando um System.ArgumentException: Illegal characters in path ao tentar criar um script BinScope da linha de comando. O BinScope é uma ferramenta de auditoria SDLC da Microsoft e a saída completa está abaixo.

A exceção é reivindicar um caractere ilegal, mas não está me dizendo qual é o caractere ilegal nem sua localização. Eu estou meio perdido porque todas as opções são válidas (de acordo com binscope.exe /? ), e todos os caminhos são citados.

Qual caractere (ou caracteres) é ilegal no caminho? Como se determina o caráter ofensivo?

C:\Users\Audit\Desktop>binscope.exe /sdl "C:\Users\Audit\Deskt
op\Program\Agent\twprogram.exe" /sympath "C:\Users\Audit\De
sktop\Program\Agent\twprogram.pdb" /outdir "C:\Users\Audit\
Desktop\" /logfile twprogram.xml
Microsoft SDL BinScope binary analysis tool v1.0.4027.29711

Unhandled Exception: System.ArgumentException: Illegal characters in path.
   at System.IO.Path.CheckInvalidPathChars(String path)
   at System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
   at System.IO.Path.NormalizePath(String path, Boolean fullCheck)
   at System.IO.Path.GetFullPathInternal(String path)
   at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Bo
olean overwrite)
   at Microsoft.MSEC.BinScope.BinScopeMain.Run(BinScopeConfiguration config, Bin
ScopeScanner scanner)
   at Microsoft.MSEC.BinScope.BinScopeMain.Main(String[] args)

E:

C:\Users\Audit\Desktop>echo %PATH%
C:\Program Files (x86)\Microsoft\SDL BinScope\;C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
    
por jww 29.12.2014 / 22:31

1 resposta

1

Escape (duplique, como em Desktop\" ) ou remova a última barra invertida em /outdir "C:\Users\Audit\Desktop\" - a maneira como ele é analisado cria um caractere de escape desequilibrado ( " ) que é inválido no caminho .

btw - extraído da referência da Microsoft aqui: link

on Windows-based desktop platforms, invalid path characters might include ASCII/Unicode characters 1 through 31, as well as quote ("), less than (<), greater than (>), pipe (|), backspace (\b), null (

If a double quotation mark follows two or an even number of backslashes, each proceeding backslash pair is replaced with one backslash and the double quotation mark is removed. If a double quotation mark follows an odd number of backslashes, including just one, each preceding pair is replaced with one backslash and the remaining backslash is removed; however, in this case the double quotation mark is not removed.

) and tab (\t).

Editar: Informações adicionais sobre args C # (e também C, C ++) analisando regras no Windows (tiradas de link ):

%bl0ck_qu0te%     
por 30.12.2014 / 00:00