diff --git a/libclamav/filetypes.c b/libclamav/filetypes.c index 44abd6e815..c3d2e7c2fb 100644 --- a/libclamav/filetypes.c +++ b/libclamav/filetypes.c @@ -56,90 +56,91 @@ static const struct ftmap_s { const char *name; cli_file_t code; } ftmap[] = { - { "CL_TYPE_TEXT_ASCII", CL_TYPE_TEXT_ASCII }, - { "CL_TYPE_TEXT_UTF8", CL_TYPE_TEXT_UTF8 }, - { "CL_TYPE_TEXT_UTF16LE", CL_TYPE_TEXT_UTF16LE }, - { "CL_TYPE_TEXT_UTF16BE", CL_TYPE_TEXT_UTF16BE }, - { "CL_TYPE_BINARY_DATA", CL_TYPE_BINARY_DATA }, - { "CL_TYPE_IGNORED", CL_TYPE_IGNORED }, - { "CL_TYPE_ANY", CL_TYPE_ANY }, - { "CL_TYPE_MSEXE", CL_TYPE_MSEXE }, - { "CL_TYPE_ELF", CL_TYPE_ELF }, - { "CL_TYPE_MACHO", CL_TYPE_MACHO }, - { "CL_TYPE_MACHO_UNIBIN", CL_TYPE_MACHO_UNIBIN }, - { "CL_TYPE_POSIX_TAR", CL_TYPE_POSIX_TAR }, - { "CL_TYPE_OLD_TAR", CL_TYPE_OLD_TAR }, - { "CL_TYPE_CPIO_OLD", CL_TYPE_CPIO_OLD }, - { "CL_TYPE_CPIO_ODC", CL_TYPE_CPIO_ODC }, - { "CL_TYPE_CPIO_NEWC", CL_TYPE_CPIO_NEWC }, - { "CL_TYPE_CPIO_CRC", CL_TYPE_CPIO_CRC }, - { "CL_TYPE_GZ", CL_TYPE_GZ }, - { "CL_TYPE_ZIP", CL_TYPE_ZIP }, - { "CL_TYPE_BZ", CL_TYPE_BZ }, - { "CL_TYPE_RAR", CL_TYPE_RAR }, - { "CL_TYPE_ARJ", CL_TYPE_ARJ }, - { "CL_TYPE_MSSZDD", CL_TYPE_MSSZDD }, - { "CL_TYPE_MSOLE2", CL_TYPE_MSOLE2 }, - { "CL_TYPE_MSCAB", CL_TYPE_MSCAB }, - { "CL_TYPE_MSCHM", CL_TYPE_MSCHM }, - { "CL_TYPE_SIS", CL_TYPE_SIS }, - { "CL_TYPE_SCRENC", CL_TYPE_SCRENC }, - { "CL_TYPE_GRAPHICS", CL_TYPE_GRAPHICS }, - { "CL_TYPE_GIF", CL_TYPE_GIF }, - { "CL_TYPE_PNG", CL_TYPE_PNG }, - { "CL_TYPE_JPEG", CL_TYPE_JPEG }, - { "CL_TYPE_TIFF", CL_TYPE_TIFF }, - { "CL_TYPE_RIFF", CL_TYPE_RIFF }, - { "CL_TYPE_BINHEX", CL_TYPE_BINHEX }, - { "CL_TYPE_TNEF", CL_TYPE_TNEF }, - { "CL_TYPE_CRYPTFF", CL_TYPE_CRYPTFF }, - { "CL_TYPE_PDF", CL_TYPE_PDF }, - { "CL_TYPE_UUENCODED", CL_TYPE_UUENCODED }, - { "CL_TYPE_HTML_UTF16", CL_TYPE_HTML_UTF16 }, - { "CL_TYPE_SCRIPT", CL_TYPE_SCRIPT }, - { "CL_TYPE_RTF", CL_TYPE_RTF }, - { "CL_TYPE_HTML", CL_TYPE_HTML }, - { "CL_TYPE_MAIL", CL_TYPE_MAIL }, - { "CL_TYPE_SFX", CL_TYPE_SFX }, - { "CL_TYPE_ZIPSFX", CL_TYPE_ZIPSFX }, - { "CL_TYPE_RARSFX", CL_TYPE_RARSFX }, - { "CL_TYPE_CABSFX", CL_TYPE_CABSFX }, - { "CL_TYPE_ARJSFX", CL_TYPE_ARJSFX }, - { "CL_TYPE_NULSFT", CL_TYPE_NULSFT }, - { "CL_TYPE_AUTOIT", CL_TYPE_AUTOIT }, - { "CL_TYPE_ISHIELD_MSI", CL_TYPE_ISHIELD_MSI }, - { "CL_TYPE_7Z", CL_TYPE_7Z }, - { "CL_TYPE_7ZSFX", CL_TYPE_7ZSFX }, - { "CL_TYPE_SWF", CL_TYPE_SWF }, - { "CL_TYPE_ISO9660", CL_TYPE_ISO9660 }, - { "CL_TYPE_JAVA", CL_TYPE_JAVA }, - { "CL_TYPE_DMG", CL_TYPE_DMG }, - { "CL_TYPE_MBR", CL_TYPE_MBR }, - { "CL_TYPE_GPT", CL_TYPE_GPT }, - { "CL_TYPE_APM", CL_TYPE_APM }, - { "CL_TYPE_XAR", CL_TYPE_XAR }, - { "CL_TYPE_PART_ANY", CL_TYPE_PART_ANY }, - { "CL_TYPE_PART_HFSPLUS", CL_TYPE_PART_HFSPLUS }, - { "CL_TYPE_XZ", CL_TYPE_XZ }, - { "CL_TYPE_OOXML_WORD", CL_TYPE_OOXML_WORD }, - { "CL_TYPE_OOXML_PPT", CL_TYPE_OOXML_PPT }, - { "CL_TYPE_OOXML_XL", CL_TYPE_OOXML_XL }, - { "CL_TYPE_INTERNAL", CL_TYPE_INTERNAL }, - { "CL_TYPE_XDP", CL_TYPE_XDP }, - { "CL_TYPE_XML_WORD", CL_TYPE_XML_WORD }, - { "CL_TYPE_XML_XL", CL_TYPE_XML_XL }, - { "CL_TYPE_HWP3", CL_TYPE_HWP3 }, - { "CL_TYPE_XML_HWP", CL_TYPE_XML_HWP }, - { "CL_TYPE_HWPOLE2", CL_TYPE_HWPOLE2 }, - { "CL_TYPE_OOXML_HWP", CL_TYPE_OOXML_HWP }, - { "CL_TYPE_PS", CL_TYPE_PS }, - { "CL_TYPE_MHTML", CL_TYPE_MHTML }, - { "CL_TYPE_LNK", CL_TYPE_LNK }, - { "CL_TYPE_EGG", CL_TYPE_EGG }, - { "CL_TYPE_EGGSFX", CL_TYPE_EGGSFX }, - { "CL_TYPE_UDF", CL_TYPE_UDF }, - { "CL_TYPE_ONENOTE", CL_TYPE_ONENOTE }, - { NULL, CL_TYPE_IGNORED } + { "CL_TYPE_TEXT_ASCII", CL_TYPE_TEXT_ASCII }, + { "CL_TYPE_TEXT_UTF8", CL_TYPE_TEXT_UTF8 }, + { "CL_TYPE_TEXT_UTF16LE", CL_TYPE_TEXT_UTF16LE }, + { "CL_TYPE_TEXT_UTF16BE", CL_TYPE_TEXT_UTF16BE }, + { "CL_TYPE_BINARY_DATA", CL_TYPE_BINARY_DATA }, + { "CL_TYPE_IGNORED", CL_TYPE_IGNORED }, + { "CL_TYPE_ANY", CL_TYPE_ANY }, + { "CL_TYPE_MSEXE", CL_TYPE_MSEXE }, + { "CL_TYPE_ELF", CL_TYPE_ELF }, + { "CL_TYPE_MACHO", CL_TYPE_MACHO }, + { "CL_TYPE_MACHO_UNIBIN", CL_TYPE_MACHO_UNIBIN }, + { "CL_TYPE_POSIX_TAR", CL_TYPE_POSIX_TAR }, + { "CL_TYPE_OLD_TAR", CL_TYPE_OLD_TAR }, + { "CL_TYPE_CPIO_OLD", CL_TYPE_CPIO_OLD }, + { "CL_TYPE_CPIO_ODC", CL_TYPE_CPIO_ODC }, + { "CL_TYPE_CPIO_NEWC", CL_TYPE_CPIO_NEWC }, + { "CL_TYPE_CPIO_CRC", CL_TYPE_CPIO_CRC }, + { "CL_TYPE_GZ", CL_TYPE_GZ }, + { "CL_TYPE_ZIP", CL_TYPE_ZIP }, + { "CL_TYPE_BZ", CL_TYPE_BZ }, + { "CL_TYPE_RAR", CL_TYPE_RAR }, + { "CL_TYPE_ARJ", CL_TYPE_ARJ }, + { "CL_TYPE_MSSZDD", CL_TYPE_MSSZDD }, + { "CL_TYPE_MSOLE2", CL_TYPE_MSOLE2 }, + { "CL_TYPE_MSCAB", CL_TYPE_MSCAB }, + { "CL_TYPE_MSCHM", CL_TYPE_MSCHM }, + { "CL_TYPE_SIS", CL_TYPE_SIS }, + { "CL_TYPE_SCRENC", CL_TYPE_SCRENC }, + { "CL_TYPE_GRAPHICS", CL_TYPE_GRAPHICS }, + { "CL_TYPE_GIF", CL_TYPE_GIF }, + { "CL_TYPE_PNG", CL_TYPE_PNG }, + { "CL_TYPE_JPEG", CL_TYPE_JPEG }, + { "CL_TYPE_TIFF", CL_TYPE_TIFF }, + { "CL_TYPE_RIFF", CL_TYPE_RIFF }, + { "CL_TYPE_BINHEX", CL_TYPE_BINHEX }, + { "CL_TYPE_TNEF", CL_TYPE_TNEF }, + { "CL_TYPE_CRYPTFF", CL_TYPE_CRYPTFF }, + { "CL_TYPE_PDF", CL_TYPE_PDF }, + { "CL_TYPE_UUENCODED", CL_TYPE_UUENCODED }, + { "CL_TYPE_HTML_UTF16", CL_TYPE_HTML_UTF16 }, + { "CL_TYPE_SCRIPT", CL_TYPE_SCRIPT }, + { "CL_TYPE_RTF", CL_TYPE_RTF }, + { "CL_TYPE_HTML", CL_TYPE_HTML }, + { "CL_TYPE_MAIL", CL_TYPE_MAIL }, + { "CL_TYPE_SFX", CL_TYPE_SFX }, + { "CL_TYPE_ZIPSFX", CL_TYPE_ZIPSFX }, + { "CL_TYPE_RARSFX", CL_TYPE_RARSFX }, + { "CL_TYPE_CABSFX", CL_TYPE_CABSFX }, + { "CL_TYPE_ARJSFX", CL_TYPE_ARJSFX }, + { "CL_TYPE_NULSFT", CL_TYPE_NULSFT }, + { "CL_TYPE_AUTOIT", CL_TYPE_AUTOIT }, + { "CL_TYPE_ISHIELD_MSI", CL_TYPE_ISHIELD_MSI }, + { "CL_TYPE_7Z", CL_TYPE_7Z }, + { "CL_TYPE_7ZSFX", CL_TYPE_7ZSFX }, + { "CL_TYPE_SWF", CL_TYPE_SWF }, + { "CL_TYPE_ISO9660", CL_TYPE_ISO9660 }, + { "CL_TYPE_JAVA", CL_TYPE_JAVA }, + { "CL_TYPE_DMG", CL_TYPE_DMG }, + { "CL_TYPE_MBR", CL_TYPE_MBR }, + { "CL_TYPE_GPT", CL_TYPE_GPT }, + { "CL_TYPE_APM", CL_TYPE_APM }, + { "CL_TYPE_XAR", CL_TYPE_XAR }, + { "CL_TYPE_PART_ANY", CL_TYPE_PART_ANY }, + { "CL_TYPE_PART_HFSPLUS", CL_TYPE_PART_HFSPLUS }, + { "CL_TYPE_XZ", CL_TYPE_XZ }, + { "CL_TYPE_OOXML_WORD", CL_TYPE_OOXML_WORD }, + { "CL_TYPE_OOXML_PPT", CL_TYPE_OOXML_PPT }, + { "CL_TYPE_OOXML_XL", CL_TYPE_OOXML_XL }, + { "CL_TYPE_INTERNAL", CL_TYPE_INTERNAL }, + { "CL_TYPE_XDP", CL_TYPE_XDP }, + { "CL_TYPE_XML_WORD", CL_TYPE_XML_WORD }, + { "CL_TYPE_XML_XL", CL_TYPE_XML_XL }, + { "CL_TYPE_HWP3", CL_TYPE_HWP3 }, + { "CL_TYPE_XML_HWP", CL_TYPE_XML_HWP }, + { "CL_TYPE_HWPOLE2", CL_TYPE_HWPOLE2 }, + { "CL_TYPE_OOXML_HWP", CL_TYPE_OOXML_HWP }, + { "CL_TYPE_PS", CL_TYPE_PS }, + { "CL_TYPE_MHTML", CL_TYPE_MHTML }, + { "CL_TYPE_LNK", CL_TYPE_LNK }, + { "CL_TYPE_EGG", CL_TYPE_EGG }, + { "CL_TYPE_EGGSFX", CL_TYPE_EGGSFX }, + { "CL_TYPE_UDF", CL_TYPE_UDF }, + { "CL_TYPE_ONENOTE", CL_TYPE_ONENOTE }, + { "CL_TYPE_PYTHON_COMPILED", CL_TYPE_PYTHON_COMPILED }, + { NULL, CL_TYPE_IGNORED } }; // clang-format on diff --git a/libclamav/filetypes.h b/libclamav/filetypes.h index b75a9e277c..3581541908 100644 --- a/libclamav/filetypes.h +++ b/libclamav/filetypes.h @@ -93,6 +93,7 @@ typedef enum cli_file { CL_TYPE_PS, CL_TYPE_EGG, CL_TYPE_ONENOTE, + CL_TYPE_PYTHON_COMPILED, /* Section for partition types */ CL_TYPE_PART_ANY, /* unknown partition type */ diff --git a/libclamav/filetypes_int.h b/libclamav/filetypes_int.h index e3e7bd64f1..9d0f71b69e 100644 --- a/libclamav/filetypes_int.h +++ b/libclamav/filetypes_int.h @@ -205,5 +205,98 @@ static const char *ftypes_int[] = { "1:*:377abcaf271c:7zip-SFX:CL_TYPE_ANY:CL_TYPE_7ZSFX:74", "1:0:3c3f786d6c2076657273696f6e3d22312e3022{0-1024}70726f6769643d22576f72642e446f63756d656e74223f3e:Microsoft Word 2003 XML Document:CL_TYPE_ANY:CL_TYPE_XML_WORD:80", "0:0:e4525c7b8cd8a74daeb15378d02996d3:Microsoft OneNote Document:CL_TYPE_ANY:CL_TYPE_ONENOTE:200", + "0:0:02099900:Python 1.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:03099900:Python 1.1/1.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:892e0d0a:Python 1.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:04170d0a:Python 1.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:994e0d0a:Python 1.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:fcc40d0a:Python 1.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:fdc40d0a:Python 1.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:87c60d0a:Python 2.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:88c60d0a:Python 2.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2aeb0d0a:Python 2.1 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2beb0d0a:Python 2.1 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2ded0d0a:Python 2.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2eed0d0a:Python 2.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:3bf20d0a:Python 2.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:3cf20d0a:Python 2.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:45f20d0a:Python 2.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:59f20d0a:Python 2.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:63f20d0a:Python 2.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:6df20d0a:Python 2.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:6ef20d0a:Python 2.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:77f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:81f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:8bf20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:8cf20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:95f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:9ff20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:a9f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:b3f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:b4f20d0a:Python 2.5 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:c7f20d0a:Python 2.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:d1f20d0a:Python 2.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:d2f20d0a:Python 2.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:dbf20d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:e5f20d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:eff20d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:f9f20d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:03f30d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:04f30d0a:Python 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:0af30d0a:PyPy 2.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:b80b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:c20b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:cc0b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:d60b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:e00b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:ea0b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:f40b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:f50b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:ff0b0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:090c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:130c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:1d0c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:1f0c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:270c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:3b0c0d0a:Python 3.0 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:450c0d0a:Python 3.1 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:4f0c0d0a:Python 3.1 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:580c0d0a:Python 3.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:620c0d0a:Python 3.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:6c0c0d0a:Python 3.2 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:760c0d0a:Python 3.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:800c0d0a:Python 3.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:8a0c0d0a:Python 3.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:940c0d0a:Python 3.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:9e0c0d0a:Python 3.3 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:b20c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:bc0c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:c60c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:d00c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:da0c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:e40c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:ee0c0d0a:Python 3.4 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:f80c0d0a:Python 3.5.1- byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:020d0d0a:Python 3.5.1- byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:0c0d0d0a:Python 3.5.1- byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:160d0d0a:Python 3.5.1- byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:170d0d0a:Python 3.5.2+ byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:200d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:210d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2a0d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2b0d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2c0d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2d0d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:2f0d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:300d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:310d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:320d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:330d0d0a:Python 3.6 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:3e0d0d0a:Python 3.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:3f0d0d0a:Python 3.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:f00d0d0a:PyPy 3.7 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:00010d0a:PyPy 3.8 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "0:0:50010d0a:PyPy 3.9 byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", + "1:0:??0d0d0a:Python 3.7 or newer byte-compiled (.pyc):CL_TYPE_ANY:CL_TYPE_PYTHON_COMPILED:200", NULL}; #endif diff --git a/libclamav/scanners.c b/libclamav/scanners.c index 8110110499..1e129afd33 100644 --- a/libclamav/scanners.c +++ b/libclamav/scanners.c @@ -4986,6 +4986,7 @@ cl_error_t cli_magic_scan(cli_ctx *ctx, cli_file_t type) perf_nested_stop(ctx, PERFT_MACHO, PERFT_SCAN); break; + case CL_TYPE_PYTHON_COMPILED: case CL_TYPE_BINARY_DATA: ret = cli_scan_fmap(ctx, CL_TYPE_OTHER, false, NULL, AC_SCAN_VIR, NULL, NULL); break; diff --git a/libclamav_rust/src/sys.rs b/libclamav_rust/src/sys.rs index ccac0bb1de..6400b911ba 100644 --- a/libclamav_rust/src/sys.rs +++ b/libclamav_rust/src/sys.rs @@ -379,35 +379,36 @@ pub const cli_file_CL_TYPE_OOXML_HWP: cli_file = 551; pub const cli_file_CL_TYPE_PS: cli_file = 552; pub const cli_file_CL_TYPE_EGG: cli_file = 553; pub const cli_file_CL_TYPE_ONENOTE: cli_file = 554; -pub const cli_file_CL_TYPE_PART_ANY: cli_file = 555; -pub const cli_file_CL_TYPE_PART_HFSPLUS: cli_file = 556; -pub const cli_file_CL_TYPE_MBR: cli_file = 557; -pub const cli_file_CL_TYPE_HTML: cli_file = 558; -pub const cli_file_CL_TYPE_MAIL: cli_file = 559; -pub const cli_file_CL_TYPE_SFX: cli_file = 560; -pub const cli_file_CL_TYPE_ZIPSFX: cli_file = 561; -pub const cli_file_CL_TYPE_RARSFX: cli_file = 562; -pub const cli_file_CL_TYPE_7ZSFX: cli_file = 563; -pub const cli_file_CL_TYPE_CABSFX: cli_file = 564; -pub const cli_file_CL_TYPE_ARJSFX: cli_file = 565; -pub const cli_file_CL_TYPE_EGGSFX: cli_file = 566; -pub const cli_file_CL_TYPE_NULSFT: cli_file = 567; -pub const cli_file_CL_TYPE_AUTOIT: cli_file = 568; -pub const cli_file_CL_TYPE_ISHIELD_MSI: cli_file = 569; -pub const cli_file_CL_TYPE_ISO9660: cli_file = 570; -pub const cli_file_CL_TYPE_DMG: cli_file = 571; -pub const cli_file_CL_TYPE_GPT: cli_file = 572; -pub const cli_file_CL_TYPE_APM: cli_file = 573; -pub const cli_file_CL_TYPE_XDP: cli_file = 574; -pub const cli_file_CL_TYPE_XML_WORD: cli_file = 575; -pub const cli_file_CL_TYPE_XML_XL: cli_file = 576; -pub const cli_file_CL_TYPE_XML_HWP: cli_file = 577; -pub const cli_file_CL_TYPE_HWPOLE2: cli_file = 578; -pub const cli_file_CL_TYPE_MHTML: cli_file = 579; -pub const cli_file_CL_TYPE_LNK: cli_file = 580; -pub const cli_file_CL_TYPE_UDF: cli_file = 581; -pub const cli_file_CL_TYPE_OTHER: cli_file = 582; -pub const cli_file_CL_TYPE_IGNORED: cli_file = 583; +pub const cli_file_CL_TYPE_PYTHON_COMPILED: cli_file = 555; +pub const cli_file_CL_TYPE_PART_ANY: cli_file = 556; +pub const cli_file_CL_TYPE_PART_HFSPLUS: cli_file = 557; +pub const cli_file_CL_TYPE_MBR: cli_file = 558; +pub const cli_file_CL_TYPE_HTML: cli_file = 559; +pub const cli_file_CL_TYPE_MAIL: cli_file = 560; +pub const cli_file_CL_TYPE_SFX: cli_file = 561; +pub const cli_file_CL_TYPE_ZIPSFX: cli_file = 562; +pub const cli_file_CL_TYPE_RARSFX: cli_file = 563; +pub const cli_file_CL_TYPE_7ZSFX: cli_file = 564; +pub const cli_file_CL_TYPE_CABSFX: cli_file = 565; +pub const cli_file_CL_TYPE_ARJSFX: cli_file = 566; +pub const cli_file_CL_TYPE_EGGSFX: cli_file = 567; +pub const cli_file_CL_TYPE_NULSFT: cli_file = 568; +pub const cli_file_CL_TYPE_AUTOIT: cli_file = 569; +pub const cli_file_CL_TYPE_ISHIELD_MSI: cli_file = 570; +pub const cli_file_CL_TYPE_ISO9660: cli_file = 571; +pub const cli_file_CL_TYPE_DMG: cli_file = 572; +pub const cli_file_CL_TYPE_GPT: cli_file = 573; +pub const cli_file_CL_TYPE_APM: cli_file = 574; +pub const cli_file_CL_TYPE_XDP: cli_file = 575; +pub const cli_file_CL_TYPE_XML_WORD: cli_file = 576; +pub const cli_file_CL_TYPE_XML_XL: cli_file = 577; +pub const cli_file_CL_TYPE_XML_HWP: cli_file = 578; +pub const cli_file_CL_TYPE_HWPOLE2: cli_file = 579; +pub const cli_file_CL_TYPE_MHTML: cli_file = 580; +pub const cli_file_CL_TYPE_LNK: cli_file = 581; +pub const cli_file_CL_TYPE_UDF: cli_file = 582; +pub const cli_file_CL_TYPE_OTHER: cli_file = 583; +pub const cli_file_CL_TYPE_IGNORED: cli_file = 584; pub type cli_file = ::std::os::raw::c_uint; pub use self::cli_file as cli_file_t; #[repr(C)] diff --git a/libclamav_rust/src/util.rs b/libclamav_rust/src/util.rs index 47f2d8b4b3..fd15c3fe36 100644 --- a/libclamav_rust/src/util.rs +++ b/libclamav_rust/src/util.rs @@ -55,7 +55,7 @@ pub fn file_from_fd_or_handle(fd: i32) -> File { /// exceeds the lifetime of the output string. /// /// ptr must be a valid pointer to a C string. -pub unsafe fn str_from_ptr(ptr: *const i8) -> Result, std::str::Utf8Error> { +pub unsafe fn str_from_ptr(ptr: *const ::std::os::raw::c_char) -> Result, std::str::Utf8Error> { if ptr.is_null() { return Ok(None); }