什么是.aff文件

时间:2017-02-16 22:32:57

标签: c# file firmware

我正在开发一个项目,要求我使用专有协议将固件文件(.aff)加载到嵌入式设备。 Google表明aff代表增强文件格式,但我不确定这意味着什么。

2 个答案:

答案 0 :(得分:0)

假设格式是“增强的固件文件”,如果你谷歌是,你将获得this page。此文件似乎正在加载一个aff文件并将其上传到控制器。

您可以看到该文件以css_header结构开头(如果我没有记错,则为128字节),然后包含modulussignature等内容,这意味着实际的固件数据从相当远的偏移处开始(距文件开始908个字节):

struct css_header {
    u32 module_type;
    u32 header_len;
    u32 header_version;
    u32 module_id;
    u32 module_vendor;
    u32 date;               /* BCD yyyymmdd */
    u32 size;               /* in DWORDs */
    u32 key_size;           /* in DWORDs */
    u32 modulus_size;       /* in DWORDs */
    u32 exponent_size;      /* in DWORDs */
    u32 reserved[22];
};

#define KEY_SIZE      256
#define MU_SIZE         8
#define EXPONENT_SIZE   4

/* the file itself */
struct augmented_firmware_file {
    struct css_header css_header;
    u8 modulus[KEY_SIZE];
    u8 exponent[EXPONENT_SIZE];
    u8 signature[KEY_SIZE];
    u8 r2[KEY_SIZE];
    u8 mu[MU_SIZE];
    u8 firmware[];     // <--- 908 B from struct start
};

我建议使用十六进制编辑器打开aff文件(如上面评论中提到的HxD),然后搜索使用串口嗅探器捕获的字节,以查看它们在此文件中的位置。如果上述数据正确,您应该在文件中找到实际的固件数据。

答案 1 :(得分:0)

我缺少的关键信息是我正在使用的文件实际上是一个SRecord。一旦我理解了SRecord的格式,我就能够从记录中解析出正确的数据并成功加载固件映像。