日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

深入理解.bin文件和.nb0文件的结构

發(fā)布時(shí)間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深入理解.bin文件和.nb0文件的结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?.bin文件是一個(gè)描述性質(zhì)的映像文件,它由文件頭(head)、鏡像數(shù)據(jù)目的起始地址(ImageStart)、鏡像數(shù)據(jù)長度(ImageLength)和多條相對(duì)獨(dú)立的記錄(record)構(gòu)成。

? 文件頭(head)由7個(gè)字節(jié)組成,內(nèi)容是:42 30 30 30 46 46 0A,即“B000FF/x0A”,這是判斷鏡像文件是.bin類型的依據(jù)。

? 鏡像數(shù)據(jù)目的起始地址(ImageStart)由4個(gè)字節(jié)組成,它定義了鏡像文件解析后裝載在內(nèi)存中的起始地址。

? 鏡像數(shù)據(jù)長度(ImageLength)也由4個(gè)字節(jié)組成,它表示.bin鏡像文件解析后在內(nèi)存中占用的總的存儲(chǔ)空間大小。

? 每條記錄(record)由4字節(jié)的起始存儲(chǔ)地址(RecordStart)、4字節(jié)的數(shù)據(jù)長度(RecordLength)、4字節(jié)的校驗(yàn)碼(RecordCheckSum)和RecordLength個(gè)字節(jié)的記錄數(shù)據(jù)(RecordData)組成。

? 由以上.bin的文件格式可知,.bin文件不是內(nèi)存程序空間的一個(gè)簡單的拷貝。所以它不能直接用串口燒寫進(jìn)內(nèi)存或FLASH空間來直接運(yùn)行,必須通過PB下載,通過EBOOT按照.bin文件的格式解析出來具體的內(nèi)容并重新裝載后才能運(yùn)行。

? 而.nb0文件就不一樣,它是內(nèi)存運(yùn)行程序映像的一個(gè)硬拷貝,其數(shù)據(jù)內(nèi)容和程序運(yùn)行時(shí)在內(nèi)存中的數(shù)據(jù)是一樣的。鑒于此,.nb0可以通過串口下載到指定的位置直接運(yùn)行。很明顯,.nb0是一個(gè)不存在格式的映像文件。

? 下面,我通過一個(gè)具體的.bin文件以及對(duì)應(yīng)的nb0文件來幫助大家加深對(duì)以上概念的理解:

? 用UltraEdit打開我們要分析的NK.bin文件和NK.nb0文件,為了方便分析,我分別截取了NK.bin和NK.nb0文件的一小部分:

?????????? NK.bin文件的部分內(nèi)容:

?????????? 00000000h: 42 30 30 30 46 46 0A 00 00 00 80 64 67 FA 00 00

?????????? 00000010h: 00 00 80 04 00 00 00 EB 01 00 00 FE 03 00 EA 40

?????????? 00000020h: 00 00 80 08 00 00 00 EE 02 00 00 45 43 45 43 1C

?????????? 00000030h: 48 FA 80 48 00 00 80 04 00 00 00 5E 01 00 00 1C

?????????? 00000040h: 48 FA 00 00 10 00 80 A0 3D 05 00 14 E3 F3 01 00

?????????? 00000050h: 00 0F E1 13 00 A0 E3 80 00 80 E3 40 00 80 E3 00

?????????? ..................: ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...

?????????? 00053dd0h: F7 03 80 BC F7 03 80 A0 F7 03 80 01 00 00 00 84

?????????? 00053de0h: F2 04 80 A8 F2 04 80 EC F2 04 80 AC F2 04 80 A0

?????????? ..................: ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...

?????????? 00f40960h: 12 00 00 00 12 00 00 64 AE 80 80 1C 36 FA 80 00

?????????? 00f40970h: 00 00 00 00 10 00 80 00 00 00 00

?????????? 對(duì)應(yīng)的NK.nb0文件的部分內(nèi)容:

?????????? 00000000h: FE 03 00 EA 00 00 00 00 00 00 00 00 00 00 00 00

?????????? 00000010h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? 00000020h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? 00000030h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? 00000040h: 45 43 45 43 1C 48 FA 80 1C 48 FA 00 00 00 00 00

?????????? 00000050h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? ..................: ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...

?????????? 000000ff0h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? 00001000h: 00 00 0F E1 13 00 A0 E3 80 00 80 E3 40 00 80 E3

?????????? 00001010h: 00 F0 23 E1 10 0F 11 EE 01 0A C0 E3 04 00 C0 E3

?????????? ..................: ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...

?????????? 00054D90h: 84 F2 04 80 A8 F2 04 80 EC F2 04 80 AC F2 04 80

?????????? ..................: ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...? ...

??????????? 00fa6760h: 1C 36 FA 80 00 00 00 00 00 00 00 00 00 00 00 00

??????????? 00fa6770h: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

?????????? ..................: ...? ...? ... 填充0一直到文件末尾...??? ...? ...? ...? ...? ...? ...
?????????? 下面我們來分析上面的映像:
??????????? 首先看.bin映像:
??????????? 1.最開始是7字節(jié)的文件頭42 30 30 30 46 46 0A;
??????????? 2.接下是4字節(jié)映像數(shù)據(jù)目的起始地址00 00 00 80,指出目的起始地址0x80000000;從而也告訴我們對(duì)應(yīng)的.nb0文件運(yùn)行時(shí)將裝載到0x80000000去運(yùn)行。
??????????? 3.接下來是4字節(jié)的映像數(shù)據(jù)長度64 67 FA 00,指出映像數(shù)據(jù)解析后所占的存儲(chǔ)空間長度是0X00FA6764字節(jié);我們?cè)倏?nb0文件地址0x00fa6760處的16字節(jié)的數(shù)據(jù)是1C 36 FA 80 00 00 00 00 00 00 00 00 00 00 00 00,而且從此以后的數(shù)據(jù)全部是00,由此可知0x00fa6764是最后的有效數(shù)據(jù)的地址。我想到這里朋友們已經(jīng)知道.bin文件和.nb0文件之間的聯(lián)系了。
??????????? 4.接下來4字節(jié)是第1條記錄的起始地址00 00 00 80,指出第1條記錄的起始地址是0x80000000;
??????????? 5.接下來4字節(jié)是第1條記錄的長度 04 00 00 00,指出第1條記錄的數(shù)據(jù)域長度是4個(gè)字節(jié)。
??????????? 6.接下來4字節(jié)是第1條記錄的校驗(yàn)碼EB 01 00 00;
??????????? 7.接下來4字節(jié)是第1條記錄的數(shù)據(jù)內(nèi)容FE 03 00 EA。到這里,我相信朋友們已經(jīng)想起點(diǎn)什么。查看.nb0文件的起始4字節(jié),正是我們剛才分析的第1條記錄的數(shù)據(jù)內(nèi)容。
??????????? 8.接下來4字節(jié)是第2條記錄的起始地址40 00 00 80,指出第2條記錄的起始地址是0x80000040;
??????????? 9.接下來4字節(jié)是第2條記錄的長度 08 00 00 00,指出第2條記錄的數(shù)據(jù)域長度是8個(gè)字節(jié)。
??????????? 10.接下來4字節(jié)是第2條記錄的校驗(yàn)碼EE 02 00 00;
??????????? 11.接下來8字節(jié)是第2條記錄的數(shù)據(jù)內(nèi)容45 43 45 43 1C 48 FA 80。再查看.nb0文件中0x00000040地址8字節(jié)內(nèi)容:45 43 45 43 1C 48 FA 80,正是.bin文件中第2條記錄的數(shù)據(jù)域內(nèi)容。
??????????? 如此類推,我們采用同樣的方法可以解析出.bin文件中的所有記錄項(xiàng)。并能根據(jù).bin的記錄構(gòu)造出對(duì)應(yīng)的.nb0文件。
??????????? 到此,我相信朋友們已經(jīng)很深入的了解了.bin文件的格式,并清楚了.bin文件和.nb0文件的區(qū)別和聯(lián)系了。

總結(jié)

以上是生活随笔為你收集整理的深入理解.bin文件和.nb0文件的结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。