C'è un modo, usando TCPdump, Wireshark o qualsiasi libreria basata su questo, per sapere se qualcuno sta scaricando un file specifico, ad esempio abc.exe, ispezionando il pacchetto http? http, non https
Sì.
Dato che conosci il contenuto del file, ottieni una certa sezione (o meglio - più campioni dal file da punti diversi) e confronta i bit con codifica esadecimale con i dati nel pacchetto. Se alcuni o tutti corrispondono, è possibile presumere che il file contenesse i dati.
Esempio:
Pacchetto sniffato:
00000000: 00 00 00 00 01 4e 56 41 52 33 00 ff ff ff 82 03 .....NVAR3......
00000010: 49 63 63 41 64 76 61 6e 63 65 64 53 65 74 75 70 IccAdvancedSetup
00000020: 44 61 74 61 56 61 72 00 00 00 00 00 00 00 00 00 DataVar.........
00000030: 00 00 00 00 00 00 00 00 4e 56 41 52 1c 00 ff ff ........NVAR....
00000040: ff 82 04 4e 65 77 4f 70 74 69 6f 6e 50 6f 6c 69 ...NewOptionPoli
00000050: 63 79 00 00 4e 56 41 52 21 00 ff ff ff 82 05 4e cy..NVAR!......N
00000060: 65 74 77 6f 72 6b 53 74 61 63 6b 56 61 72 00 01 etworkStackVar..
00000070: 01 00 00 00 01 4e 56 41 52 2a 00 ff ff ff 82 00 .....NVAR*......
00000080: 53 64 69 6f 44 65 76 43 6f 6e 66 69 67 75 72 SdioDevConfigur
Esempi di dati dell'eseguibile:
00000000: 61 56 61 72 aVar
00000000: 42 6f 6f 74 Boot
00000000: 64 69 6f 44 65 76 43 dioDevC
Confronto:
00000000: 00 00 00 00 01 4e 56 41 52 33 00 ff ff ff 82 03 .....NVAR3......
00000010: 49 63 63 41 64 76 61 6e 63 65 64 53 65 74 75 70 IccAdvancedSetup
00000020: 44 61 74 61 56 61 72 00 00 00 00 00 00 00 00 00 DataVar.[MATCH]
00000030: 00 00 00 00 00 00 00 00 4e 56 41 52 1c 00 ff ff ........NVAR....
00000040: ff 82 04 4e 65 77 4f 70 74 69 6f 6e 50 6f 6c 69 ...NewOptionPoli
00000050: 63 79 00 00 4e 56 41 52 21 00 ff ff ff 82 05 4e cy..NVAR!......N
00000060: 65 74 77 6f 72 6b 53 74 61 63 6b 56 61 72 00 01 etworkStackVar..
00000070: 01 00 00 00 01 4e 56 41 52 2a 00 ff ff ff 82 00 .....NVAR......
00000080: 53 64 69 6f 44 65 76 43 6f 6e 66 69 67 75 72 SdioDevConfigur
[MATCH]