跳转到主要内容

AVM Fritz!Box 校验和计算器/覆盖器

项目描述

更新0.0.4

支持固件版本>7.12中的新 XXXXB64FILE 部分

简介

一个小的可pip安装的模块和Windows GUI(32位和64位)用于计算AVM的Fritz!Box配置文件的CRC。

命令行和GUI版本允许直接在读取的文件中覆盖CRC或将它保存到新文件中。

安装

  • GUI(在发布中查找最新zip文件)

    zip文件包含不需要安装的独立版本。任何设置/路径都将保存在同一目录下的.ini文件中。

    只需解压并运行

  • 命令行模块

    只需运行

    pip install fritzchecksum

    命令行工具也被称为fritzchecksum

命令行工具

用法如下

$ fritzchecksum --help
usage: fritzchecksum-script.py [-h] [--change | --output OUTPUT] input

FritzChecksum Calculator/Overwriter

positional arguments:
  input                 Write input to output with new CRC

optional arguments:
  -h, --help            show this help message and exit
  --change, -c          Change CRC directly in input file
  --output OUTPUT, -o OUTPUT
                        Write input to output with new CRC

模块 fritzchecksum

在您的代码中做些像这样的事情

import fritzchecksum

...
...

myexport = open('myexportdatei', 'r')
oldcrc, newcrc = fritzchecksum.calc_crc32(myexport)

...

该模块包含两个Python一等公民

  • 函数 calc_crc32(fin, fout=None, logcb=log_null)

    计算Fritz!Box配置文件导出文件的CRC,并将新的CRC和写入新配置文件

    接受

    • fin: 文件类似对象

    • 错误:None或文件对象。如果是文件,则输入将使用新计算的CRC写入输出

    • logcb(默认:log_null,它是一个空占位符)一个必须接受*args的记录器(打印将工作)

    返回

    (oldcrc, newcrc) -> 元组

    oldcrc和newcrc将是字符串,表示一个CRC32的十六进制格式,如果一切顺利

    oldcrc可以是None,这意味着已引发IOError异常,操作未成功完成。在这种情况下,元组的第二个值包含引发的异常

    注意:某些行中的转义字符‘'自身被转义。如果字符没有被取消转义,CRC计算将出错。

    该文件由以下内容组成

    • 全局“配置导出”部分

      某些变量(a=b)可以在此级别定义。此定义通过连接a和b并在结果后添加空终止符来贡献CRC计算

    • 子部分

      子部分的名称(空终止)将贡献CRC计算

      • XXXBINFILE部分

        行表示十六进制值。这些值(二进制转换)将直接用于CRC计算(在计算之前去除eol)

      • CFGFILE部分

        它是一个嵌入在较大导出文件中的文本文件。包括‘n’在内的所有行都贡献CRC,除了最后一行,在包含在CRC计算之前必须去除EOL字符

  • class ExportFile

    封装导出文件解析和CRC值覆盖的类

    在加载文件后,它将加载的内容保留在内部fout

    以下方法

    • load(self, fin, out=True)

      从文件对象/字符串对象fin加载,并将更新内部statuserroroldcrcnewcrc

      如果outFalse,则不会对加载的输入进行内部缓冲

      返回

      tuple -> (status, error)

      如果状态是ST_OK(True),则错误将是None。如果状态是ST_ERROR(False),则错误将是引发的异常

    • load_file(self, fin, out=True)

      从文件对象fin加载,并将更新内部statuserroroldcrcnewcrc

      如果outFalse,则不会对加载的输入进行内部缓冲

      返回

      tuple -> (status, error)

      如果状态是ST_OK(True),则错误将是None。如果状态是ST_ERROR(False),则错误将是引发的异常

    • save(self, fout)

      将内部self.fout文件写入文件对象/字符串fout

      返回

      tuple -> (status, error)

      如果状态是ST_OK(True),则错误将是None。如果状态是ST_ERROR(False),则错误将是引发的异常

    • save_file(self, fout)

      将内部self.fout文件写入文件对象fout

      返回

      tuple -> (status, error)

      如果状态是ST_OK(True),则错误将是None。如果状态是ST_ERROR(False),则错误将是引发的异常

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程

构建分发

fritzchecksum-0.0.4-py2.py3-none-any.whl (14.0 kB 查看散列值)

上传于 Python 2 Python 3

支持者