@@ -199,29 +199,47 @@ const FFFeature g_ff_pdf[] = {
199
199
{3 , FF_NEED , 0x46 },
200
200
};
201
201
202
- const FFFeature g_ff_doc [] = {
203
- {0 , FF_NEED , 0xD0 },
204
- {1 , FF_NEED , 0xCF },
205
- {2 , FF_NEED , 0x11 },
206
- {3 , FF_NEED , 0xE0 },
202
+ const FFFeature g_ff_zip [] = {
203
+ {0 , 0 , 0x50 },
204
+ {1 , 0 , 0x4B },
205
+ {2 , 0 , 0x03 },
206
+ {3 , 0 , 0x04 },
207
+
208
+ {0 , 1 , 0x50 },
209
+ {1 , 1 , 0x4B },
210
+ {2 , 1 , 0x05 },
211
+ {3 , 1 , 0x06 },
212
+
213
+ {0 , 2 , 0x50 },
214
+ {1 , 2 , 0x4B },
215
+ {2 , 2 , 0x07 },
216
+ {3 , 2 , 0x08 },
217
+
218
+ {30 , 3 , 0x50 },
219
+ {31 , 3 , 0x4B },
220
+ {32 , 3 , 0x4C },
221
+ {33 , 3 , 0x49 },
222
+ {34 , 3 , 0x54 },
223
+ {35 , 3 , 0x45 },
224
+ };
225
+
226
+ const FFFeature g_ff_rar [] = {
227
+ {0 , FF_NEED , 0x52 },
228
+ {1 , FF_NEED , 0x61 },
229
+ {2 , FF_NEED , 0x72 },
230
+ {3 , FF_NEED , 0x21 },
207
231
208
- {4 , FF_NEED , 0xA1 },
209
- {5 , FF_NEED , 0xB1 },
210
- {6 , FF_NEED , 0x1A },
211
- {7 , FF_NEED , 0xE1 },
232
+ {4 , FF_NEED , 0x1A },
233
+ {5 , FF_NEED , 0x07 },
234
+ {6 , FF_NEED , 0x00 },
212
235
};
213
236
214
- const FFFeature g_ff_docx [] = {
215
- {4 , FF_NEED , 0x14 },
216
- {5 , FF_NEED , 0x00 },
217
- {6 , 0 , 0x06 },
218
- {6 , 1 , 0x00 },
219
- {7 , FF_NEED , 0x00 },
220
-
221
- {0 , FF_NEED , 0x50 },
222
- {1 , FF_NEED , 0x4B },
223
- {2 , FF_NEED , 0x03 },
224
- {3 , FF_NEED , 0x04 },
237
+ const FFFeature g_ff_iso [] = {
238
+ {0 , FF_NEED , 0x43 },
239
+ {1 , FF_NEED , 0x44 },
240
+ {2 , FF_NEED , 0x30 },
241
+ {3 , FF_NEED , 0x30 },
242
+ {4 , FF_NEED , 0x31 },
225
243
};
226
244
227
245
//------------------------------------------------------------------------------------------------------
@@ -348,7 +366,7 @@ const FFFeature g_ff_psb[] = {
348
366
};
349
367
350
368
//------------------------------------------------------------------------------------------------------
351
- // AUDIO & VIDEO
369
+ // AUDIO & VIDEO 1
352
370
const FFFeature g_ff_m4a [] = {
353
371
{10 , FF_NEED , 0x41 },
354
372
@@ -583,6 +601,47 @@ const FFFeature g_ff_ape[] = {
583
601
{3 , FF_NEED , 0x20 },
584
602
};
585
603
604
+ const FFFeature g_ff_rm [] = {
605
+ {0 , FF_NEED , 0x2E },
606
+ {1 , FF_NEED , 0x52 },
607
+ {2 , FF_NEED , 0x4D },
608
+ {3 , FF_NEED , 0x46 },
609
+ };
610
+
611
+ //------------------------------------------------------------------------------------------------------
612
+ // APPLICATION
613
+ const FFFeature g_ff_exe [] = {
614
+ {0 , FF_NEED , 0x4D },
615
+ {1 , FF_NEED , 0x5A },
616
+ };
617
+
618
+ //------------------------------------------------------------------------------------------------------
619
+ // DOCUMENT 2
620
+ const FFFeature g_ff_ms_doc [] = {
621
+ {0 , FF_NEED , 0xD0 },
622
+ {1 , FF_NEED , 0xCF },
623
+ {2 , FF_NEED , 0x11 },
624
+ {3 , FF_NEED , 0xE0 },
625
+
626
+ {4 , FF_NEED , 0xA1 },
627
+ {5 , FF_NEED , 0xB1 },
628
+ {6 , FF_NEED , 0x1A },
629
+ {7 , FF_NEED , 0xE1 },
630
+ };
631
+
632
+ const FFFeature g_ff_ms_docx [] = {
633
+ {4 , FF_NEED , 0x14 },
634
+ {5 , FF_NEED , 0x00 },
635
+ {6 , 0 , 0x06 },
636
+ {6 , 1 , 0x00 },
637
+ {7 , FF_NEED , 0x00 },
638
+
639
+ {0 , FF_NEED , 0x50 },
640
+ {1 , FF_NEED , 0x4B },
641
+ {2 , FF_NEED , 0x03 },
642
+ {3 , FF_NEED , 0x04 },
643
+ };
644
+
586
645
//------------------------------------------------------------------------------------------------------
587
646
// IMAGE 2
588
647
const FFFeature g_ff_svg [] = {
@@ -599,13 +658,17 @@ const FFFeature g_ff_svg[] = {
599
658
const FFFormat g_ff_formats [FFTypeXCount ] = {
600
659
{"" , 0 , NULL }, // Unknown
601
660
602
- // DOCUMENT
661
+ // BY FILE SIGNATURE
662
+
663
+ // DOCUMENT 1
603
664
{"PDF" , sizeof (g_ff_pdf )/sizeof (FFFeature ), g_ff_pdf },
604
- {"DOC" , sizeof (g_ff_doc )/sizeof (FFFeature ), g_ff_doc },
605
- {"DOCX" , sizeof (g_ff_docx )/sizeof (FFFeature ), g_ff_docx },
665
+ {"ZIP" , sizeof (g_ff_zip )/sizeof (FFFeature ), g_ff_zip },
666
+ {"RAR" , sizeof (g_ff_rar )/sizeof (FFFeature ), g_ff_rar },
667
+ {"ISO" , sizeof (g_ff_iso )/sizeof (FFFeature ), g_ff_iso },
606
668
607
669
// IMAGE 1
608
670
{"JPEG" , sizeof (g_ff_jpeg )/sizeof (FFFeature ), g_ff_jpeg },
671
+ {"JPG" , sizeof (g_ff_jpeg )/sizeof (FFFeature ), g_ff_jpeg },
609
672
{"PNG" , sizeof (g_ff_png )/sizeof (FFFeature ), g_ff_png },
610
673
{"WEBP" , sizeof (g_ff_webp )/sizeof (FFFeature ), g_ff_webp },
611
674
{"GIF" , sizeof (g_ff_gif )/sizeof (FFFeature ), g_ff_gif },
@@ -618,7 +681,7 @@ const FFFormat g_ff_formats[FFTypeXCount] = {
618
681
{"PSD" , sizeof (g_ff_psd )/sizeof (FFFeature ), g_ff_psd },
619
682
{"PSB" , sizeof (g_ff_psb )/sizeof (FFFeature ), g_ff_psb },
620
683
621
- // AUDIO
684
+ // AUDIO & VIDEO 1
622
685
{"M4A" , sizeof (g_ff_m4a )/sizeof (FFFeature ), g_ff_m4a },
623
686
{"M4B" , sizeof (g_ff_m4b )/sizeof (FFFeature ), g_ff_m4b },
624
687
{"M4P" , sizeof (g_ff_m4p )/sizeof (FFFeature ), g_ff_m4p },
@@ -635,16 +698,33 @@ const FFFormat g_ff_formats[FFTypeXCount] = {
635
698
{"MID" , sizeof (g_ff_mid )/sizeof (FFFeature ), g_ff_mid },
636
699
{"FLAC" , sizeof (g_ff_flac )/sizeof (FFFeature ), g_ff_flac },
637
700
{"APE" , sizeof (g_ff_ape )/sizeof (FFFeature ), g_ff_ape },
701
+ {"RM" , sizeof (g_ff_rm )/sizeof (FFFeature ), g_ff_rm },
702
+ {"RMVB" , sizeof (g_ff_rm )/sizeof (FFFeature ), g_ff_rm },
703
+
704
+ // APPLICATION
705
+ {"EXE" , sizeof (g_ff_exe )/sizeof (FFFeature ), g_ff_exe },
638
706
639
707
{"" , 0 , NULL }, // padding
640
708
709
+ // BY EXT NAME
710
+
711
+ // DOCUMENT 2
712
+ {"TXT" , 0 , NULL },
713
+ {"HTML" , 0 , NULL },
714
+
715
+ {"DOC" , sizeof (g_ff_ms_doc )/sizeof (FFFeature ), g_ff_ms_doc },
716
+ {"DOCX" , sizeof (g_ff_ms_docx )/sizeof (FFFeature ), g_ff_ms_docx },
717
+ {"PPT" , sizeof (g_ff_ms_doc )/sizeof (FFFeature ), g_ff_ms_doc },
718
+ {"PPTX" , sizeof (g_ff_ms_docx )/sizeof (FFFeature ), g_ff_ms_docx },
719
+ {"XML" , sizeof (g_ff_ms_doc )/sizeof (FFFeature ), g_ff_ms_doc },
720
+ {"XMLX" , sizeof (g_ff_ms_docx )/sizeof (FFFeature ), g_ff_ms_docx },
721
+
641
722
// IMAGE 2
642
723
{"SVG" , sizeof (g_ff_svg )/sizeof (FFFeature ), g_ff_svg },
643
724
{"DIB" , 0 , NULL },
644
725
{"TGA" , 0 , NULL },
645
726
646
727
// AUDIO & VIDEO 2
647
-
648
728
{"WMA" , sizeof (g_ff_asf )/sizeof (FFFeature ), g_ff_asf },
649
729
{"WMV" , sizeof (g_ff_asf )/sizeof (FFFeature ), g_ff_asf },
650
730
{"ASF" , sizeof (g_ff_asf )/sizeof (FFFeature ), g_ff_asf },
0 commit comments