dd-wrt config文件bin格式

dd-wrt的设置有几种,

1.nvram

  导出单条   nvram get  openvpn_key

  设置单条 nvram set openvpn_key="xxdasdas";nvram commit

  导出全部 nvram show >/tmp/nvram.txt

2.web界面备份出来的config.bin

  格式: 2进制文件  开头8字节的标志  "DD-WRT?",4

       从第9个字节开始,是内容, 内容的第一个字节是key长度, 后面跟着key的字符, 然后是value的长度(2字节高位在后,getc(in)|getc(in)>>8),然后是下一个key,然后是下一个value....

3.恢复缺省设置的配置文件.

  在dd-wrt的内部,/etc/defaults.bin

  格式:2进制文件 开头4个字节是设置的条数, 从第五个字节开始是内容, 内容的第一个字节是key长度, 后面跟着key的字符,然后是value 的长度,长度的最高位如果是1, 说明value的长度大于127字节, 需要2个字节表示长度, 如果最高位是0, 则value的长度小于127字节,需要1个字节表示长度,dd-wrt的源码中解析的部分如下:

  vl = (unsigned int)getc(in);
                        if (vl & 128) {
                                vl &= 127;
                                vl |= (unsigned int)getc(in) << 7;
                        }
在长度后面就是value的内容.

defaults.bin的最后,用2个0作为结束.