windowsCE镜像文件结构

Formats:
struct BinFile{
    BYTE signature[7];     // = { 'B', '0', '0', '0', 'F', 'F', '/a' }
    DWORD   ImageStart
    DWORD   ImageLength
    Record  ImageRecords[RecordNum]
  };

 

struct Record{
    DWORD address;
    DWORD length;
    DWORD chksum;
  };
在文件的最开端,会放置一个BinFile结构,imageStart和ImageLength分别对应镜像展开后在内存中存放的首地址和长度。该结构中的RecordNum为不确定的,通常在最后一个记录之后增加一个address和Chksum都为0的纪录表示结束,而这个表示结束的结构中的Length则标示其实际入口点。

 


Image
Offset   -----------
  0x00    | ImageStart   
             |
             |
  0x40    | Rom Signature { 0x43454345 }
  0x44    | Pointer to the ROMHDR for this Region
             |
             |
  0x???? | ROMHDR{
             | };
             |


Chain file

struct _XIPCHAIN_ENTRY {
    LPVOID  pvAddr;                 // address of the XIP
    DWORD   dwLength;               // the size of the XIP
    DWORD   dwMaxLength;            // the biggest it can grow to
    USHORT  usOrder;                // where to put into ROMChain_t
    USHORT  usFlags;                // flags/status of XIP
    DWORD   dwVersion;              // version info
    CHAR    szName[XIP_NAMELEN];    // Name of XIP, typically the bin file's name, w/o .bin
    DWORD   dwAlgoFlags;            // algorithm to use for signature verification
    DWORD   dwKeyLen;               // length of key in byPublicKey
    BYTE    byPublicKey[596];       // public key data
  };


  Offset   --------------------------
  0x00    | DWORD Count;
  0x04    | XIPCHAIN_ENTRY[1]{
             | };
             | XIPCHAIN_ENTRY[2]{
             | };
             | ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值