-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmagic_number.h
59 lines (50 loc) · 2.29 KB
/
magic_number.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#ifndef MAGIC_NUMBER_H
#define MAGIC_NUMBER_H
#include <array>
#include <vector>
#include <string>
namespace magic_numbers {
struct magic_number
{
public:
magic_number(std::string name_, std::vector<char> number_);
std::string name;
std::vector<char> number;
bool find(const char *buffer);
};
constexpr size_t maxMagicBytes = 12;
static std::vector<magic_number> mnumbers =
{
{ "elf", { '\x7F', '\x45', '\x4C', '\x46' }},
{ "rpm", { '\xED', '\xAB', '\xEE', '\xDB' }},
{ "7z", { '\x37', '\x7A', '\xBC', '\xAF', '\x27', '\x1C' }},
{ "bz2", { '\x42', '\x5A', '\x68' }},
{ "gzip", { '\x1F', '\x8B' }},
{ "rar_1", { '\x52', '\x61', '\x72', '\x21', '\x1A', '\x07', '\x00' }},
{ "rar_2", { '\x52', '\x61', '\x72', '\x21', '\x1A', '\x07', '\x01', '\x00' }},
{ "mp3_idtv2", { '\x49', '\x44', '\x33' }},
{ "mp4", { '\x00', '\x00', '\x00', '\x18', '\x66', '\x74', '\x79', '\x70', '\x6D', '\x70', '\x34', '\x32' }},
{ "pdf", { '\x25', '\x50', '\x44', '\x46', '\x2d' }},
{ "jpg_3", { '\xFF', '\xD8', '\xFF', '\xE0', '\x00', '\x10', '\x4A', '\x46', '\x49', '\x46', '\x00', '\x01' }},
{ "doc_xls_", { '\xD0', '\xCF', '\x11', '\xE0', '\xA1', '\xB1', '\x1A', '\xE1' }},
{ "mkv", { '\x1A', '\x45', '\xDF', '\xA3' }},
{ "png", { '\x89', '\x50', '\x4E', '\x47', '\x0D', '\x0A', '\x1A', '\x0A' }},
{ "bmp", { '\x42', '\x4D' }},
{ "jpg_1", { '\xFF', '\xD8', '\xFF', '\xDB' }},
{ "jpg_2", { '\xFF', '\xD8', '\xFF', '\xEE' }},
{ "gif_1", { '\x47', '\x49', '\x46', '\x38', '\x37', '\x61' }},
{ "gif_2", { '\x47', '\x49', '\x46', '\x38', '\x39', '\x61' }},
{ "zip_jar_1", { '\x50', '\x4B', '\x03', '\x04' }},
{ "zip_jar_2", { '\x50', '\x4B', '\x05', '\x06' }},
{ "zip_jar_3", { '\x50', '\x4B', '\x07', '\x08' }},
{ "tar_lzw", { '\x1F', '\x9D' }},
{ "tar_lzh", { '\x1F', '\xA0' }},
{ "tar_lzip", { '\x4C', '\x5A', '\x49', '\x50' }},
{ "class", { '\xCA', '\xFE', '\xBA', '\xBE' }},
{ "flac", { '\x66', '\x4C', '\x61', '\x43' }},
{ "psd", { '\x38', '\x42', '\x50', '\x53' }},
{ "lz", { '\x4C', '\x5A', '\x49', '\x50' }},
{ "exe", { '\x4D', '\x5A' }},
};
}
#endif // MAGIC_NUMBER_H