数字指示秤作弊检测系统的设计
本系统将嵌入式软件自动化 测试技术应用于计量行业中数字 指示秤作弊检测领域,实现了数 字指示秤作弊检测中自动栽荷、 自动按键、读数捕获、数值判断、 动作反馈、结果记录的全流程自动化操作。本文阐述了该系统的 设计方案及上层控制软件的设计.
数字指示秤具有称量方便、计价简便、重 量数据显示直观等特点,在大型超市、集贸市 场等场所已经得到了广泛的使用。但由于市场 监管不够规范,集贸市场经营者法制意识薄弱, 诚信度缺失,利用数字指示秤作弊、缺斤少两, 损害消费者权益的事件屡有发生,在社会上形 成了负面影响。数字指示秤最主要的作弊方法 包含以下三个方面:(1)人工手段干预读数。 包括留底数法、冲击法等。(2)内部改装。 包括修改显示电路、修改信号调理电路、加装 无线模块(检测可通过查看传感器电压是否超 高、是否有无线发射模块)。(3)芯片软件 作弊。为目前最常见的作弊方式,当输入一串 按键码后数字指示秤便进入作弊模式,可根据 需要变为9两,8两甚至6两秤,再按下某一 恢复键即可恢复正常模式。这种作弊模式隐蔽 且难以复现,本文针对这种作弊特点,设计了 一套数字指示秤作弊检测系统,能够检测出数 字指示秤软件系统中存在的按键作弊码。
1.系统构架
为检测出软件作弊(数字指示秤中的按键 作弊码),数字指示秤作弊检测系统引入了嵌 入式软件自动化测试技术,搭建了数字指示秤 自动化测试环境,使用高危作弊码算法生成测 试用例对数字指示秤进行自动化黑盒测试。上 位机从云端服务器获取高危作弊码序列,并根 据本地化适配转换为按键序列;上位机将该序 列传入动作执行器,动作执行器控制键盘按钮 闭合操作模拟对应的物理按键按下;再由动作 执行器生成重量信号模拟载荷,待示数稳定后 由动作执行器获取数字指示秤LCD/LED喆示 信号,将转换后的数值传入上位机检测是否出 现作弊情况,如图1。
2.系统设计
2.1动作执行器设计
动作执行器采用32位ARM单片机系统, 包括三个部分:按键执行模块、载荷模拟模块、 显示抓取模块。执行器通过串口与上位机通信, 协议采取自定格式,校验采用CRC校验和, 如图2。
2.1.1按键执行模块
用于接收上位机发送的按键序列,解析 拆分序列信息后控制键盘相应按键依次依时按 下,达到模拟输入作弊码行为的目的。按键模 拟既然要真实模拟手工按下的效果,就包括三 个信息,按下的键码、按键按F的时间长短、 两个按键按下之间的间隔时间。所以按键序列 包括键码、按下时延以及键间时延这三种参数。 键码为00-99代表最多99个按键信息,按下 时延为0-9代表按F时间为0.1秒至9秒,键间时延为0-9代表两个按键按下的时间间隔0.1 至9秒。如正常按下按键1+2+3,按键序列码 为0100 0200 0300。时延设置的越长,则该用 例执行的时间越长,如图3。
按键模拟模块釆用电子开关,一一对应 真实物理桉键,通过控制电子开关的闭合来模 拟按键被物理按下的过程。
2.1.2载荷模拟模块
通过接收上位机发来的数据控制称重重 量信号。载荷模拟使用数字电位器串联至传感 器的信号激励脚,通过改变数字电位器的阻值 拉低传感器信号电压的方式改变重量信号。
2.1.3显示抓取模块
包括LCD信号抓取模块和LED信号抓取 模块。显示抓取模块采用单片机作为主控芯片, 采集LCD/LED显示屏各管脚模拟值信息,分 析处理后得到显示屏信息通过串口传给上位机 进行处理。
2. 2上位机软件设计
上位机软件由五大模块组成:样品管理 模块、按键序列生成模块、作弊检测模块、键 盘适配模块、历史作弊码模块,如图4。
2.2.1样品管理模块
记录送检样品信息、按键适配信息、作弊 码信息以及测试过程数据信息。通过样品管理 模块可复现电子秤作弊检测过程数据,实现多 样品(疑似同一作弊码)并行检测,中断/继 续检测操作。
2.2.2键盘适配模块
匹配各款电子秤按键上字符信息与底层 控制单片机管脚的对应关系(按键数字与物理 连接线适配)。保证字符形式的作弊码数据库 能够适配所有电子秤。
2.2.3按键序列生成模块
用于获取服务器高危作弊码序列、本机生成按键序列。模块提供模板编辑器,可根据所 输入的按键序列表达式生成相应的按键序列, 并提供测试用例总数预测、测试时间预测、按 键序列导出导入。
2.2.4作弊检测模块
为系统的核心模块,用于向动作执行器 发送控制指令。从服务器端读取待测的密码序 列,根据键盘适配生成相应的单片机管脚序列 发送至动作执行器,读取动作执行器返回的数 字指示秤显示信息,判断示数是否正常,如果 发现异常则将此组按键序列数据标识为可疑序
2.2.5历史作弊码模块
该模块为B/S构架,用于查询维护作弊 密码库,可通过型号,地域等信息查询常用的 作弊称密码。此模块有网络接口,可通过互联 网上传/查询数据。
3.高危作弊码算法
通过遍历所有按键生成测试用例序列的 方法对于四位以内的作弊码很有效果,但是对 于五位以上的作弊码检出效率很低,掺杂着很 多不可能是作弊码的按键(如纯数字按键)。 因此对于5位以上作弊码的检测要采用高危作 弊码算法,该作弊码算法由云端服务器根据历 史库、经验库动态生成,通过公式的形式下发 至测试机。数字指示秤按键可分为三类,一类 是数字按键信息,使用N来表示;一类是控 制按键(如去皮累计),使用C来表示;最后 一类是单价按键(如Ml、单价1),使用M 来表示。加上时延信息,高危作弊码可以通过 类似N*0;C*0;M*0这样的公式来表示,此公 式表示生成所有第一位是数字,第二位是控制按键,第三位是单价按键且每个按键之间的时 延为0的三位按键组合序列。
4.结语
本文概要描述了数字指示秤作弊检测系 统的硬件实现原理和上层软件设计,实际使用 中该系统能够很快的检测出位数在5位以内的 作弊码,对市面上存在的“作弊秤”起到了一 定的震慑作用,也为其他计量器具软件的检测 方法也起到了 一定的借鉴作用。
对于复杂作弊码(参杂了按键时长等信 息),其检测时间的长短取决于高危作弊码算 法的检测效率以及历史作弊码的积累,对高危 作弊码算法的优化是今后系统改进的方向。