| ... | ... |
@@ -148,6 +148,7 @@ static const char *ftypes_int[] = {
|
| 148 | 148 |
"0:0:cffaedfe:Mach-O LE 64-bit:CL_TYPE_ANY:CL_TYPE_MACHO:45", |
| 149 | 149 |
"0:0:feedface:Mach-O BE:CL_TYPE_ANY:CL_TYPE_MACHO:45", |
| 150 | 150 |
"0:0:feedfacf:Mach-O BE 64-bit:CL_TYPE_ANY:CL_TYPE_MACHO:45", |
| 151 |
+ "1:*:496e7374616c6c536869656c6400{292}06000000:ISHIELD-MSI:CL_TYPE_ANY:CL_TYPE_ISHIELD_MSI:45",
|
|
| 151 | 152 |
NULL |
| 152 | 153 |
}; |
| 153 | 154 |
|
| ... | ... |
@@ -104,6 +104,8 @@ |
| 104 | 104 |
#include <stddef.h> |
| 105 | 105 |
#endif |
| 106 | 106 |
|
| 107 |
+static int cli_scanishield_msi(int desc, cli_ctx *ctx, off_t off) { cli_dbgmsg("in ishield-msi\n"); return CL_CLEAN; }
|
|
| 108 |
+ |
|
| 107 | 109 |
static int cli_scanfile(const char *filename, cli_ctx *ctx); |
| 108 | 110 |
|
| 109 | 111 |
static int cli_scandir(const char *dirname, cli_ctx *ctx, cli_file_t container) |
| ... | ... |
@@ -1792,6 +1794,13 @@ static int cli_scanraw(int desc, cli_ctx *ctx, cli_file_t type, uint8_t typercg, |
| 1792 | 1792 |
} |
| 1793 | 1793 |
break; |
| 1794 | 1794 |
|
| 1795 |
+ case CL_TYPE_ISHIELD_MSI: |
|
| 1796 |
+ if(SCAN_ARCHIVE && type == CL_TYPE_MSEXE /* FIXMEISHIELD && (DCONF_ARCH & ARCH_CONF_ISHIELD)*/) {
|
|
| 1797 |
+ cli_dbgmsg("ISHIELD-MSI signature found at %u\n", (unsigned int) fpt->offset);
|
|
| 1798 |
+ nret = cli_scanishield_msi(desc, ctx, fpt->offset + 14); |
|
| 1799 |
+ } |
|
| 1800 |
+ break; |
|
| 1801 |
+ |
|
| 1795 | 1802 |
case CL_TYPE_PDF: |
| 1796 | 1803 |
if(type != CL_TYPE_PDF && SCAN_PDF && (DCONF_DOC & DOC_CONF_PDF)) {
|
| 1797 | 1804 |
cli_dbgmsg("PDF signature found at %u\n", (unsigned int) fpt->offset);
|
| ... | ... |
@@ -1965,6 +1974,11 @@ int cli_magic_scandesc(int desc, cli_ctx *ctx) |
| 1965 | 1965 |
ret = cli_scanautoit(desc, ctx, 23); |
| 1966 | 1966 |
break; |
| 1967 | 1967 |
|
| 1968 |
+ case CL_TYPE_ISHIELD_MSI: |
|
| 1969 |
+ if(SCAN_ARCHIVE /* FIXMEISHIELD && (DCONF_ARCH & ARCH_CONF_ISHIELD)*/) |
|
| 1970 |
+ ret = cli_scanishield_msi(desc, ctx, 14); |
|
| 1971 |
+ break; |
|
| 1972 |
+ |
|
| 1968 | 1973 |
case CL_TYPE_MSSZDD: |
| 1969 | 1974 |
if(SCAN_ARCHIVE && (DCONF_ARCH & ARCH_CONF_SZDD)) |
| 1970 | 1975 |
ret = cli_scanszdd(desc, ctx); |