:03:8000:00:028100FA
:02:8003:00:XXXXXX
:02:800B:00:XXXXXX
:02:8013:00:XXXXXX
:01:801B:00:XXXX
:01:8023:00:XXXX
:10:802B:00:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
:10:803B:00:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
:10:804B:00:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
:10:805B:00:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
我如何找出该文件属于哪种类型的处理器(Intel / ARM / PIC / ...)?以及如何拆卸呢?
字节的频率:
ebra@him:~$ cat single-byte-per-line | sort | uniq -c | sort -n
1
3 59
5 4C
6 49
6 57
6 5D
8 47
8 48
8 4A
8 4E
8 52
10 C6
11 7E
11 8F
11 9B
12 51
12 8E
12 95
12 9C
12 9D
12 B7
12 CE
13 CF
14 27
14 55
14 56
14 58
14 5C
14 7F
15 73
15 8D
15 9E
15 C7
15 D6
16 5F
16 D7
17 1B
17 A5
17 C8
17 CB
18 AF
18 B1
19 46
19 5A
19 8B
19 C1
20 D9
20 ED
21 72
21 94
21 A6
22 43
22 4F
22 71
22 AC
22 B9
22 C9
23 9F
23 A3
23 BE
24 42
24 AD
24 BD
24 BF
24 E9
25 4D
25 CC
26 87
26 A1
26 B8
26 E8
27 69
27 6F
27 88
28 F1
29 53
29 5E
29 61
29 77
29 BC
30 45
30 AB
31 1A
32 86
33 1E
33 4B
34 1C
35 1F
35 67
36 BB
36 EA
37 98
37 99
37 DD
37 F4
37 FD
38 2C
38 B2
40 3B
40 EE
41 25
41 97
41 E7
42 2D
42 D4
42 EF
43 1D
43 8C
44 5B
44 96
44 DC
46 28
46 3A
46 D5
46 DF
46 F7
46 FE
47 76
47 7D
48 C5
48 FC
49 D8
50 35
53 0E
53 B5
57 BA
57 E6
58 A7
58 C4
58 CA
59 19
59 21
59 AA
62 3D
62 A8
63 93
63 A9
65 34
65 8A
65 B0
65 F6
67 AE
67 D1
68 31
69 EC
70 26
70 41
71 14
71 81
72 23
72 3E
72 65
72 B6
74 F8
75 44
75 6B
76 64
76 7C
76 92
77 FF
78 37
78 91
78 B3
79 2F
80 A0
82 38
84 A2
85 DA
87 0D
90 24
91 6D
91 A4
93 18
95 62
95 CD
96 0B
96 3C
99 68
99 E4
101 6C
103 50
106 63
109 39
109 3F
109 DE
111 6E
112 6A
115 E1
116 36
117 70
117 89
118 D3
128 17
131 FB
134 D0
137 54
146 FA
149 0C
151 0A
154 F9
164 60
173 C3
174 2A
183 DB
184 C0
185 29
185 E3
189 16
191 83
200 2E
203 9A
204 66
207 F3
212 15
212 20
220 0F
221 7B
226 7A
240 33
241 E2
242 F5
244 EB
247 30
247 32
255 2B
256 06
261 10
275 13
284 07
286 40
288 E0
309 84
311 85
313 03
321 04
325 22
326 C2
327 F2
333 01
333 79
344 82
353 90
357 11
362 F0
376 80
414 05
422 78
436 09
467 74
489 D2
570 08
656 E5
889 B4
1301 12
1369 02
1717 00
2081 75
如果我提取所有以
75
开头的2字节序列,我就会:ebra@him:~$ cat sequence-starts-with-75 | grep -o .... | sort | uniq -c | sort -n
1 7505
1 750D
1 750E
1 7514
1 7519
1 751F
1 7521
1 7522
1 7526
1 7527
1 752D
1 7530
1 7545
1 7547
1 7548
1 754D
1 754F
1 7557
1 755F
1 7560
1 756F
1 7570
1 7571
1 7572
1 7573
1 7581
1 7587
1 758B
1 7594
1 75A8
1 75B8
1 75C8
1 75CA
1 75CB
1 75CC
1 75CD
1 75E5
1 75F2
2 7501
2 7510
2 751D
2 7525
2 7534
2 7536
2 753C
2 753D
2 7566
2 758D
2 7598
2 7599
2 75B4
2 75D0
2 75D4
3 7523
3 752F
3 757A
3 758C
4 752E
4 753A
6 7535
6 7537
6 753B
6 753F
6 7567
6 7569
7 7500
7 7540
7 757B
7 758A
8 757C
8 75A0
10 7524
11 7563
11 7574
11 7576
11 7577
11 7579
12 7518
13 7575
14 752C
16 7565
16 7578
17 7517
17 75F0
18 7528
18 7564
19 7539
19 753E
27 7562
37 7515
37 7583
38 7516
45 7533
49 756A
49 756B
50 756C
52 756E
53 756D
58 7532
68 7512
73 7568
141 752B
143 7529
144 752A
169 7582
204 7513
248 7511
对于以75开头的3字节序列:
ebra@him:~$ cat sequence-starts-with-75 | grep -o ...... | sort | uniq -c | sort -n
.. [Truncated] ...
6 750075
6 752B03
6 752B08
6 753269
6 753F00
6 756BA4
6 757500
6 757800
6 758204
6 758205
6 75820B
6 75F000
7 75120A
7 752801
7 752B05
7 756E08
8 751101
8 752910
8 756BC0
8 756D0C
8 757400
8 75A000
9 751104
9 752803
9 758200
9 758203
10 752901
10 752C80
10 756BB2
11 751864
11 753200
11 756ABC
11 758208
12 753290
13 751210
14 752B01
14 752B10
14 753910
14 756C01
14 75820F
15 752B06
16 753E00
16 756BB0
17 7517FF
17 75326A
17 753300
18 752906
19 756811
19 756E00
19 758209
20 758201
21 752904
21 752B04
22 756D00
23 756C00
24 75820A
30 756A00
34 758202
35 752902
36 758301
37 752905
46 752B02
46 756810
65 751103
77 751102
79 751100
142 752A00
#1 楼
这听起来类似于给定文档,推断语言。我将指令的频率(文件中每个值的计数)与从已知处理器类型的文件派生的指令的频率进行比较。有效的会标模型。如果您以通用格式获取文件,我可以帮助您。
#2 楼
您不能-Intel hex
格式不包含此类数据。您需要手动寻找正确的架构。您可以为此使用IDA
或Ghidra
,然后针对可能的每种体系结构在下面打开。然后您需要分解整个文件,看是否有意义。 (控制流,函数数量,外部参照等)。
或者,当然,请使用一些脚本。
评论
该文件中没有任何处理器/特定于体系结构的指令/序言吗?据我所知,指令集是不同的。对?
–亚伯拉罕
20 Dec 24 '17:21
是的,但是十六进制格式仅将字节值映射到地址空间。您可以将其视为一张大地图,上面写着哪个二进制值应该在哪个地址。十六进制格式本身并不关心体系结构。
– macro_controller
20 Dec 24 '19:01
评论
很棒的主意,我已经更新了问题。你能看看吗?
–亚伯拉罕
20 Dec 25'9:17
您能指出我一些用于各种芯片的索引十六进制格式文件吗?
– Pythonpython
20/12/25在16:18
不幸的是我没有头绪。如果可以的话,我会分享的。
–亚伯拉罕
20 Dec 25 '18:44
我将看到可以在Intel / ARM / PIC中找到的东西。
– Pythonpython
20 Dec 25 '18:50
好吧,我打开了设备的主体。大声笑。
–亚伯拉罕
20 Dec 26 '19:15