bk7258固件的介绍和安全防范

了解下BK7258的使用场景和安全问题

基本介绍

BK7258是一款集成Wi-Fi、蓝牙、强大多媒体和AI处理能力的芯片,其核心特点是超低功耗、丰富的外设接口和强大的音视频处理能力,这使得它特别适合对功耗和算力有高要求的智能设备。

适用场景

基于其硬件特性,BK7258目前主要应用于以下前沿领域:

应用领域典型产品关键支撑特性
AIoT与智能穿戴AI智能眼镜、机器人等产品Wi-Fi和蓝牙提供稳定连接;低功耗延长续航;AI算力支持本地智能交互。
智能家居与安防智能可视门锁、智能音箱等H.264/JPEG编解码器处理视频流;显示控制器驱动屏幕;麦克风/音频接口支持语音。
交互界面与家电智能家电、HMI(人机交互)面板丰富外设(LCD, CAN, USB, 触摸传感器等)支持复杂控制与显示。

简单示例

本文主要是在Ubuntu 24.04上为BK7258开发板编译和运行程序,主要需要配置编译环境、获取SDK代码、编译工程几个步骤。

环境配置

安装必要的工具和依赖库 打开终端,执行以下命令来安装基础的编译工具和Python依赖库。

sudo apt update
sudo apt install make cmake python3 python3-pip ninja-build -y
sudo pip3 install pycryptodome click future click_option_group cryptography jinja2 PyYAML cbor2 intelhex

获取代码

* 安装BK7258芯片的程序需要ARM架构的交叉编译工具链。

  • 从博通集成(Beken)的官方渠道下载BK7258工具链。
  • 下载后,将其解压到系统的 /opt/ 目录下。
sudo tar -xvjf gcc-arm-none-eabi-10.3-2021.10-x86_64-linux.tar.bz2 -C /opt/

* 获取Armino SDK代码,需要从官方仓库获取软件开发套件(SDK)源代码,比如:

mkdir -p ~/armino
cd ~/armino
git clone https://github.com/bekencorp/bk_idk.git

编译工程

  1. 环境准备好后,进入SDK目录,就可以开始编译项目了;
  2. 执行编译命令,使用 make 命令进行编译,比如make bk7258则默认执行默认的app项目;
  1. 如果想指定具体项目进行编译时,需要添加PROJECT 参数,其中PROJECT 的值应该是从 bk_idk/projects/ 目录开始的相对路径;make bk7258 PROJECT=你的项目名称
    命令参考:
    make bk7258 PROJECT=bluetooth/bt_hidd编译成功后,生成的固件文件(例如 all-app.bin)通常会位于 build/bt_hidd/bk7258 这样的目录下。

编译输出位置

编译成功后,固件文件通常位于:

# 固件文件
build/app/bk7258/app.elf
build/app/bk7258/app.bin

# 静态库文件
bk_idk/build/app/bk7258/armino/main/libmain.a

安全防范

安全问题

以默认项目为例,编译成固件的流程大概为:

  1. make bk7258编译的时候会对app_main.c进行编译;
  1. 根据配置可以推断出app_main.c编译成为中间文件(.a静态库文件);
  2. 然后再编译集成app.elf,最后是固件app.bin文件。

通过反编译工具还是可以对app.elf进行反编译分析,最终导致核心逻辑和敏感信息泄露。

防范措施

因此,我们可以对编译中的核心静态库文件(.a文件)进行加壳(Virbox Protector工具)等保护处理,增加反编译和逆向工程的难度。

编译方式如下:

  1. make bk7258先对app项目编译成功后产生静态库bk_idk\build\app\bk7258\armino\main\libmain.a;

2. 然后对libmain.a进行加壳,并将名字改为和原文件相同,然后在使用make bk7258进行编译,可以看到编译链接是保护后的静态库;

  • 注意:只要不是make clean,重新make bk7258不会覆盖libmain.a,但会覆盖app.elf和app.bin。

    3. 编译的app.bin和app.elf里集成的都是保护后的静态库,使用ida分析也能看到代码保护上了。

      滚动至顶部
      售前客服
      周末值班
      电话

      电话

      13910187371

      企业微信
      企业微信二维码