Flash: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
= Structure = | = Structure = | ||
{|style="border:1px solid black; background-color:#eeeeee" | |||
asdf | |||
|} | |||
* 0x0 > 0x400 = Headers | * 0x0 > 0x400 = Headers |
Revision as of 06:55, 11 May 2011
Structure
asdf- 0x0 > 0x400 = Headers
- 0x400 > 0x800 = File table
- 0x800 > 0xF00000 = Region 1
- 0x800 > 0x2F000 = asecure_loader region
- 0x840 > 0xF110 = metldr
- 0xF00000 > 0xFFFFFF = region 2
- unknown format
Region 1 Format
Magic header
First 512 Bytes
Example
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000010 00 00 00 00 0F AC E0 FF 00 00 00 00 DE AD BE EF .....¬àÿ....Þ.¾ï 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 00 ..............x. 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Unknown Header
The next block of 512 bytes only has the first 16 bytes written. Unsure exactly what this means.
Example
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000200 49 46 49 00 00 00 00 01 00 00 00 02 00 00 00 00 IFI............. 00000210 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000220 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000002F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 00000390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ 000003F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Entry Table
The next 1024 bytes contain the file entry table:
Format
First is a header, this tells us how many files are stored here.
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000400 00 00 00 01 00 00 00 0B 00 00 00 00 00 EF FC 00 .............ïü. u32 - unknown (0x01) u32 - Entry count (0x0B) u64 - Length of Region (0xEFFC00)
Then follows a 32 byte entry for each file
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000410 00 00 00 00 00 00 04 00 00 00 00 00 00 02 E8 00 ..............è. 00000420 61 73 65 63 75 72 65 5F 6C 6F 61 64 65 72 00 00 asecure_loader.. 00000430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ u64 - offset - Relative to 0x400 (0x400) u64 - size (0x2E800) char[32] - name (asecure_loader)
Example
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000400 00 00 00 01 00 00 00 0B 00 00 00 00 00 EF FC 00 .............ïü. 00000410 00 00 00 00 00 00 04 00 00 00 00 00 00 02 E8 00 ..............è. 00000420 61 73 65 63 75 72 65 5F 6C 6F 61 64 65 72 00 00 asecure_loader.. 00000430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000440 00 00 00 00 00 02 EC 00 00 00 00 00 00 01 00 00 ......ì......... 00000450 65 45 49 44 00 00 00 00 00 00 00 00 00 00 00 00 eEID............ 00000460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000470 00 00 00 00 00 03 EC 00 00 00 00 00 00 00 08 00 ......ì......... 00000480 63 49 53 44 00 00 00 00 00 00 00 00 00 00 00 00 cISD............ 00000490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000004A0 00 00 00 00 00 03 F4 00 00 00 00 00 00 00 08 00 ......ô......... 000004B0 63 43 53 44 00 00 00 00 00 00 00 00 00 00 00 00 cCSD............ 000004C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000004D0 00 00 00 00 00 03 FC 00 00 00 00 00 00 02 00 00 ......ü......... 000004E0 74 72 76 6B 5F 70 72 67 30 00 00 00 00 00 00 00 trvk_prg0....... 000004F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000500 00 00 00 00 00 05 FC 00 00 00 00 00 00 02 00 00 ......ü......... 00000510 74 72 76 6B 5F 70 72 67 31 00 00 00 00 00 00 00 trvk_prg1....... 00000520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000530 00 00 00 00 00 07 FC 00 00 00 00 00 00 02 00 00 ......ü......... 00000540 74 72 76 6B 5F 70 6B 67 30 00 00 00 00 00 00 00 trvk_pkg0....... 00000550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000560 00 00 00 00 00 09 FC 00 00 00 00 00 00 02 00 00 ......ü......... 00000570 74 72 76 6B 5F 70 6B 67 31 00 00 00 00 00 00 00 trvk_pkg1....... 00000580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000590 00 00 00 00 00 0B FC 00 00 00 00 00 00 70 00 00 ......ü......p.. 000005A0 72 6F 73 30 00 00 00 00 00 00 00 00 00 00 00 00 ros0............ 000005B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000005C0 00 00 00 00 00 7B FC 00 00 00 00 00 00 70 00 00 .....{ü......p.. 000005D0 72 6F 73 31 00 00 00 00 00 00 00 00 00 00 00 00 ros1............ 000005E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000005F0 00 00 00 00 00 EB FC 00 00 00 00 00 00 04 00 00 .....ëü......... 00000600 63 76 74 72 6D 00 00 00 00 00 00 00 00 00 00 00 cvtrm........... 00000610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000006F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00000790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000007F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
asecure_loader region
Within asecure_loader is another file table similar to region 1
Header
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000800 00 00 00 01 00 00 00 01 00 00 00 00 00 02 E8 00 ..............è. u32 - unknown (0x01) u32 - Entry count (0x01) u64 - Length of Region (0x2E800)
Entry Table
Then follows a 32 byte entry for each file
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000810 00 00 00 00 00 00 00 40 00 00 00 00 00 00 E8 D0 .......@......èÐ 00000820 6D 65 74 6C 64 72 00 00 00 00 00 00 00 00 00 00 metldr.......... 00000830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ u64 - offset - Relative to region start (0x40) u64 - size (0xE8D0) char[32] - name (metldr)
Example
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000800 00 00 00 01 00 00 00 01 00 00 00 00 00 02 E8 00 ..............è. 00000810 00 00 00 00 00 00 00 40 00 00 00 00 00 00 E8 D0 .......@......èÐ 00000820 6D 65 74 6C 64 72 00 00 00 00 00 00 00 00 00 00 metldr.......... 00000830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Encrypted Files on Flash
Encrypted files on flash appear to have some sort of header, Here are two different samples from metldr and bootldr
From metldr
00000840 00 00 0E 8E 99 87 3B C7 15 F2 80 80 9C 30 22 25 ...Ž™‡;Ç.ò€€œ0"% 00000850 00 00 0E 8E 78 A5 61 E0 17 72 6E F7 A7 1B 41 AB ...Žx¥aà.rn÷§.A«
00000840 00 00 0E 8E 99 87 3B C7 15 F2 80 80 9C 30 22 25 ...Ž™‡;Ç.ò€€œ0"% 00000850 00 00 0E 8E 81 2E 00 A9 59 75 01 CC C1 72 D5 50 ...Ž...©Yu.ÌÁrÕP
From bootldr
00FC0000 00 00 2F 4B 53 92 1C E7 F7 33 41 76 9B 7A 1E D6 ../KS’.ç÷3Av›z.Ö 00FC0010 00 00 2F 4B 78 A5 61 E0 17 72 6E F7 A7 1B 41 AB ../Kx¥aà.rn÷§.A«
00FC0000 00 00 2F 4B CB 9E 15 24 28 B4 4F D2 F9 3F BC 43 ../KËž.$(´OÒù?¼C 00FC0010 00 00 2F 4B 81 2E 00 A9 59 75 01 CC C1 72 D5 50 ../K...©Yu.ÌÁrÕP
Observations
As you can see, some parts appear static depending on their purpose:
metldr
00000840 00 00 0E 8E 99 87 3B C7 15 F2 80 80 9C 30 22 25 ...Ž™‡;Ç.ò€€œ0"% 00000850 00 00 0E 8E xx xx xx xx xx xx xx xx xx xx xx xx ...Žx...........
bootldr
00FC0000 00 00 2F 4B xx xx xx xx xx xx xx xx xx xx xx xx ../K............ 00FC0010 00 00 2F 4B xx xx xx xx xx xx xx xx xx xx xx xx ../K............
per console in both samples
00000840 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx ................ 00000850 xx xx xx xx 81 2E 00 A9 59 75 01 CC C1 72 D5 50 .......©Yu.ÌÁrÕP
The first 4 bytes appear to reffer to length. eg:
metldr length: 0xE920 0x00000E8E * 0x10 = 0xE8E0 + 0x40 = 0xE920 bootldr length: 0x2F4F0 0x00002F4B * 0x10 = 0x2F4B0 + 0x40 = 0x2F4F0
Header shown is 0x20 bytes, perhaps this means there is a 0x40 byte header. I was not able to find any correlation of the other 2x12 bytes here, perhaps these are keys of some sort.
Region 2 Format
This region appears to directly follow the other region (at 0xF0000 = region size + header)
Not much is known about this at this stage.
Header
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00F00000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00010 00 00 00 00 0F AC E0 FF 00 00 00 00 DE AD FA CE .....¬àÿ....Þ.úÎ 00F00020 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 02 ................ 00F00030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F000A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F000C0 00 00 00 00 00 00 79 00 00 00 00 00 00 00 01 00 ......y......... 00F000D0 10 70 00 00 01 00 00 01 00 00 00 00 00 00 00 03 .p.............. 00F000E0 10 70 00 00 02 00 00 01 00 00 00 00 00 00 00 03 .p.............. 00F000F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00110 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00130 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00150 00 00 00 00 00 00 7A 00 00 00 00 00 00 00 04 00 ......z......... 00F00160 10 70 00 00 01 00 00 01 00 00 00 00 00 00 00 03 .p.............. 00F00170 10 70 00 00 02 00 00 01 00 00 00 00 00 00 00 03 .p.............. 00F00180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F001F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00290 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F002F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00310 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00370 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F003F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00400 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00430 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00450 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F004F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00510 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00530 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00550 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00570 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00590 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F005F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00610 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00630 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00650 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00670 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00690 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F006F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00710 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00730 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00750 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00770 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00790 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F007F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00810 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00830 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00850 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00890 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F008F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00950 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00970 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00990 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F009F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00A90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00AF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00B90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00BF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00C90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00CF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00D90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00DF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00E90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00EA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00EB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00EC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00ED0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00EE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00EF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F50 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00F90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FA0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FB0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FC0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FD0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FE0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00F00FF0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
Bootloader
Located at 0xFC0000 to 0xFFFFFF (The last 256kb of flash)
NOR Files
The following is a list of files stored in NOR Flash
Name | Offset | Size |
---|---|---|
asecure_loader | 0x400 | 0x2E800 (190,464 bytes) |
eEID | 0x2EC00 | 0x10000 (65,636 bytes) |
cISD | 0x3EC00 | 0x800 (2,048 bytes) |
cCSD | 0x3F400 | 0x800 (2,048 bytes) |
trvk_prg0 | 0x03FC00 | 0x20000 (131,072 bytes) |
trvk_pkg0 | 0x7FC00 | 0x20000 (131,072 bytes) |
trvk_pkg1 | 0x9FC00 | 0x20000 (131,072 bytes) |
ros0 | 0xBFC00 | 0x700000 (7,340,032 bytes) |
ros1 | 0x7BFC00 | 0x700000 (7,340,032 bytes) |
cvtrm | 0XEBFC00 | 0x40000 (262,144 bytes) |
NOR Unpacking // NOR Unpkg
/* # ../norunpkg norflash.bin norflash unpacking asecure_loader (size: 190xxx bytes)... unpacking eEID (size: 65536 bytes)... unpacking cISD (size: 2048 bytes)... unpacking cCSD (size: 2048 bytes)... unpacking trvk_prg0 (size: 131072 bytes)... unpacking trvk_prg1 (size: 131072 bytes)... unpacking trvk_pkg0 (size: 131072 bytes)... unpacking trvk_pkg1 (size: 131072 bytes)... unpacking ros0 (size: 7340032 bytes)... unpacking ros1 (size: 7340032 bytes)... unpacking cvtrm (size: 262144 bytes)... */ // Copyright 2010 Sven Peter // Licensed under the terms of the GNU GPL, version 2 // http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt // nor modifications by rms. #include "tools.h" #include "types.h" #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/stat.h> #ifdef WIN32 #define MKDIR(x,y) mkdir(x) #else #define MKDIR(x,y) mkdir(x,y) #endif u8 *pkg = NULL; static void unpack_file(u32 i) { u8 *ptr; u8 name[33]; u64 offset; u64 size; ptr = pkg + 0x10 + 0x30 * i; offset = be64(ptr + 0x00); size = be64(ptr + 0x08); memset(name, 0, sizeof name); strncpy((char *)name, (char *)(ptr + 0x10), 0x20); printf("unpacking %s (size: %d bytes)...\n", name, size); memcpy_to_file((char *)name, pkg + offset, size); } static void unpack_pkg(void) { u32 n_files; u64 size; u32 i; n_files = be32(pkg + 4); size = be64(pkg + 8); for (i = 0; i < n_files; i++) unpack_file(i); } int main(int argc, char *argv[]) { if (argc != 3) fail("usage: norunpkg filename.nor target"); pkg = mmap_file(argv[1]); /* kludge for header, i do not do sanity checks at the moment */ pkg += 1024; MKDIR(argv[2], 0777); if (chdir(argv[2]) != 0) fail("chdir"); unpack_pkg(); return 0; }
Source: http://rms.dukio.com/?p=25
RMS - eEID splitter
#include <stdio.h> #include <stdlib.h> void DumpEidData (FILE * pFile, int iInputSize, int iEidCount) { FILE *pOutput; char szFileName[8]; char *szBuf; int iRes, iSize; printf("dumping EID%s from eEID at %p, size %d (%x)..\n", iEidCount, pFile, iInputSize, iInputSize ); szBuf = (char *) malloc (iInputSize + 1); if (szBuf == NULL) { perror ("malloc"); exit (1); }; iSize = fread (szBuf, iInputSize, 1, pFile); sprintf (szFileName, "EID%d", iEidCount); pOutput = fopen (szFileName, "wb"); iRes = fwrite (szBuf, iInputSize, 1, pOutput); if (iRes != iSize) { perror ("fwrite"); exit (1); }; free (szBuf); } int main (int argc, char **argv) { FILE *pFile; pFile = fopen (argv[1], "rb"); if (pFile == NULL) { printf ("usage: %s <eEID>\n"); exit (1); } fseek (pFile, 0x70, SEEK_SET); DumpEidData (pFile, 2144, 0); DumpEidData (pFile, 672, 1); DumpEidData (pFile, 1840, 2); DumpEidData (pFile, 256, 3); DumpEidData (pFile, 48, 4); DumpEidData (pFile, 2560, 5); }
Source: http://rms.dukio.com/?p=59