clamav: não é possível digitalizar a partir de uma lista de arquivos no Windows?

1

salt win8 grains.item osfullname

win8:
    ----------
    osfullname:
        Microsoft Windows 8.1 Enterprise Evaluation

salt win8 cmd.run shell='powershell' '& "C:\Program Files\ClamAV-x64\clamdscan.exe" -V'

win8:
    ClamAV 0.98.7/21375/Tue Feb 16 05:36:54 2016

clamd está sendo executado em uma VM do Ubuntu. Aqui está a configuração em um cliente Windows (modo de rede):

TCPAddr <clamd.server.ip.address>
TCPSocket 3310
User Administrator

e gostaria de verificar apenas os arquivos das últimas 24 horas usando algo assim:

salt win8 cmd.run shell='powershell' 'Get-ChildItem "C:\Program Files\ClamAV-x64" -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } | % { $_.FullName }'

win8:
    C:\Program Files\ClamAV-x64\eicar.com.txt
    C:\Program Files\ClamAV-x64\file_to_scan.txt
    C:\Program Files\ClamAV-x64\report.txt
    C:\Program Files\ClamAV-x64\scan.ps1
    C:\Program Files\ClamAV-x64\sendmail.ps1

escreva essa lista em um arquivo:

| Out-File "C:\Program Files\ClamAV-x64\file_to_scan.txt"

e use a opção -f :

salt win8 cmd.run shell='powershell' '& "C:\Program Files\ClamAV-x64\clamdscan.exe" -h'

win8:

                           ClamAV Daemon Client 0.99
               By The ClamAV Team: http://www.clamav.net/about.html#credits
               (C) 2007-2015 Cisco Systems, Inc.

        --file-list=FILE    -f FILE        Scan files from FILE

mas recebi este erro ao digitalizar:

salt win8 cmd.run shell='powershell' '& "C:\Program Files\ClamAV-x64\clamdscan.exe" -f "C:\Program Files\ClamAV-x64\file_to_scan.txt"'

win8:

    ----------- SCAN SUMMARY -----------
    Infected files: 0
    Total errors: 1
    Time: 0.000 sec (0 m 0 s)
    ERROR: Can't access file C:\Windows\system32\config\systemprofile\ÿþC

Ele sempre disse que não pode acessar um arquivo estranho chamado ÿþC no diretório de trabalho atual:

salt win8 cmd.run shell='powershell' 'cd \; & "C:\Program Files\ClamAV-x64\clamdscan.exe" -f "C:\Program Files\ClamAV-x64\file_to_scan.txt"'

win8:

    ----------- SCAN SUMMARY -----------
    Infected files: 0
    Total errors: 1
    Time: 0.000 sec (0 m 0 s)
    ERROR: Can't access file C:\ÿþC

O que é ÿþC ? E por que disse isso?

PS: O cliente do OS X funcionou bem:

clamdscan -f file_to_scan

    /Users/quanta/Downloads/eicar.com.txt: Eicar-Test-Signature FOUND

----------- SCAN SUMMARY -----------
Infected files: 1
Time: 4.359 sec (0 m 4 s)

Ter 16 de fevereiro 22:54:26 ICT 2016

Tem outro nome de arquivo estranho se estiver sendo executado diretamente na VM do Windows:

PS C:\Windows\system32> & 'C:\Program Files\ClamAV-x64\clamdscan.exe' -f 'C:\Program Files\ClamAV-x64\file_to_scan.txt'
ERROR: Can't access file C:\Windows\system32\ ■C

----------- SCAN SUMMARY -----------
Infected files: 0
Total errors: 1
Time: 0.000 sec (0 m 0 s)
    
por quanta 16.02.2016 / 10:50

1 resposta

0

What is ÿþC?

ÿþ é uma representação da BOM (marca de pedido de byte) por codificação UTF-16 (LE) .

And why it said that?

Porque o Out-File usa a codificação da página de código ANSI atual do sistema por padrão:

-Encoding

Specifies the type of character encoding used in the file. Valid values are "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default", and "OEM". "Unicode" is the default. "Default" uses the encoding of the system's current ANSI code page.

A solução é usar -Encoding ASCII para se livrar de caracteres ilegíveis:

"C:\Program Files\ClamAV-x64" -Recurse | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-1) } | % { $_.FullName } | Out-File "C:\Program Files\ClamAV-x64\file_to_scan.txt" -Encoding ASCII'

Files\ClamAV-x64'; & 'C:\Program Files\ClamAV-x64\clamdscan.exe' -f .\file_to_scan.txt"

win8:
    C:\Program Files\ClamAV-x64\eicar.com.txt: Eicar-Test-Signature FOUND
    C:\Program Files\ClamAV-x64\file_to_scan.txt: OK
    C:\Program Files\ClamAV-x64\report.txt: OK
    C:\Program Files\ClamAV-x64\scan.ps1: OK
    C:\Program Files\ClamAV-x64\sendmail.ps1: OK

    ----------- SCAN SUMMARY -----------
    Infected files: 1
    Time: 5.845 sec (0 m 5 s)
    ERROR: Minions returned with non-zero exit code

Fonte: link

    
por 16.02.2016 / 18:45