自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 收藏
  • 关注

原创 [DFU-OTA] 自製 OTA 為什麼會把裝置刷成磚? common mistake of in-house OTA procedure & industry conventions

OTA 的骨架大家都一樣:下載 → 驗證 → 安裝 → 試用開機 → 確認,失敗就回退。自製方案出問題,往往不是架構選錯,而是在幾個關鍵環節偏離了慣例:確認得太早、不檢查 Flash 操作結果、繞過了儲存層原有的斷電保護、復原路徑依賴被更新的子系統。本文依階段整理我們在一套 STM32U5 + wolfBoot + 自製 OTA 伺服器的系統中踩到的坑,並逐項對照主流框架的做法。值得一提的是,射頻晶片原廠 SDK 沒有提供可直接量產的 OTA 方案。從它的 Release Notes 可以看到:某一版註明範

2026-09-24 09:59:58 245

原创 STM32U5 ROM DFU 對上 RDP 機制的已知缺陷

STM32U5在RDP Level 1並配置OEM1金鑰後,ROM DFU無法讀取、寫入或抹除Flash,唯一恢復方式「Read Unprotect」需正確金鑰且觸發整片mass erase。即使成功,也導致資料全失,無法實現「保留資料換韌體」的現場復原。加之進入DFU困難、驅動門檻高,且與作業系統驗證衝突,使其不適合作為出貨裝置的復原路徑。真正可行方案應於應用層設計獨立於受阻類別驅動的復原介面(如vendor-specific USB),而非依賴受限的ROM DFU。

2026-09-24 09:49:17 152

原创 [TinyUSB CDC-NCM 錯誤代碼 Code 10 修正指南] Windows 11 更新 KB5124008 後

2026年9月,Windows累積更新(KB5124008/KB5124007)在usbncm.sys新增wNdbInDivisor與wNdbOutDivisor驗證,要求值≥4且為2的冪次,導致以TinyUSB實作的NCM裝置因設為1而出現Code 10錯誤。上游已修正為4,但出貨裝置無法透過OTA更新。可行方案為使用usbipd-win+WSL2將裝置交由Linux處理,避免驅動問題,並須務必還原綁定狀態。

2026-09-24 09:36:24 318

原创 lwIP bridgeif 缺陷:bridge 模式下 ping 不到 bridge 自己,forwarding 卻一切正常

嵌入式裝置在 USB 虛擬網卡與無線網卡橋接時,出現 PC 可上外網卻無法 ping 通裝置自身 IP(192.168.7.1)的問題。根因在 lwIP 2.2.0 橋接模組中,ICMP echo reply 因重用接收 pbuf 而保留原始 RX port 的 if_idx,導致橋接邏輯誤判為環路而丟棄封包,且全程無錯誤訊息,造成 silent failure。此缺陷於預設設定下穩定復現,改動 VLAN 或封包頭部大小可掩蓋問題,屬典型邊界條件漏洞。

2026-09-09 11:14:49 292

原创 Glossary of key GNSS terminology GNSS 英文名詞解釋

<think>我们根据要求,生成一段≤150字的文章摘要。需要基于用户给的长篇内容。内容是关于GNSS模块开发的工程术语词汇表,包含名词解释、例句、易混淆词等。摘要应该概括主题和主要特点。注意字数限制。输出应该是一段中文摘要,不超过150字。</think>本文整理了GNSS模組開發與跨國工程會議中實用的專業詞彙,涵蓋基本概念、定位啟動、輔助資料、訊號品質等八大類。每個條目附中英對照、詞性、實用例句及易混淆詞說明,並強調如GPS與GNSS、ephemeris與almanac等常見誤用,適合韌體工程師快速查閱

2026-08-31 17:06:39 226

原创 CDC-NCM 的三個 MAC:一條 USB 網路連線上到底有幾個 L2 端點

本文探讨了USB转无线网络设备开发中的MAC地址问题。文章首先介绍了CDC-NCM作为USB模拟网卡的现代方案,详细解析了其NTB数据聚合结构。随后指出在这种架构下会存在三个不同的MAC地址:主机端网卡地址(来自iMACAddress)、设备端USB网络接口地址,以及无线模块自身的MAC地址。作者特别强调这些地址必须各不相同,否则会导致网络层级的各种故障。最后针对产线通常只提供一个基础MAC的情况,提出了基于LAA bit的地址衍生方案,确保设备能安全生成多个不冲突的本地管理地址。全文通过清晰的架构图和技术

2026-08-20 11:05:13 346

原创 RDP (Read-out Protection) : 開發韌體如何防逆向工程 protect firmware from reverse

本文系统整理了韌體防逆向工程(RDP)的技術方案,將其分為三大類:防讀出明文(核心防護)、防竄改(Anti-Tampering)以及防複製/輔助手段。重點闡述了晶片內建RDP機制、除錯介面封鎖、Flash加密等關鍵防護措施,並針對不同應用場景(如內嵌Flash、外掛SPI Flash設備)提供具體解決方案。同時強調Secure Boot在防韌體竄改中的獨立作用,以及混淆技術等輔助手段的定位。最後通過對照表清晰呈現各類技術的防護目標與適用產品類型,為嵌入式系統安全設計提供實用參考框架。

2026-07-22 11:40:33 326

原创 Wireshark 解密並導出TLS 1.2 / TLS 1.3 明文的方法(可控制 Client 端)

本文介绍了两种解密TLS流量的方法:RSA私钥解密(仅适用于TLS 1.2且不支持前向保密)和SSLKEYLOGFILE(推荐,适用于TLS 1.2和1.3)。前者需要配置Wireshark并导入私钥,后者则需设置环境变量或修改客户端代码以生成密钥日志文件。文章详细说明了不同客户端(如浏览器、curl、Python、Node.js等)的实现方式,并强调SSLKEYLOGFILE是更通用的解决方案,尤其适合TLS 1.3。最后建议优先使用SSLKEYLOGFILE,仅在特定旧系统中考虑RSA私钥法。

2026-07-22 11:29:12 228

原创 用 Obsidian 打造一套「個人工作管理系統」:任務看板與技術手冊

本文介绍如何用Obsidian构建个人工作管理系统,包含Wiki知识库、技术手册和任务看板三大功能,并实现自动备份。Obsidian基于纯文本Markdown,具有本地优先、可移植和可扩展等优势。文章分为四部分:1)自建Wiki,通过目录结构和双向链接组织知识;2)技术手册写作,支持表格、流程图、代码块和PDF导出;3)任务看板设计,采用"一任务一文件"模式,结合Bases插件实现可视化追踪;4)自动备份方案。该系统特别适合需要长期记录任务历史(如绩效考核)的场景,所有数据均以标准Markdown格式存储,

2026-07-02 08:23:05 411

原创 從零開始在家開發 IoT: VM編譯到Windows燒錄與逐sector抹除原因

對象:STM32U595 + MM8108,wolfBoot secure boot兩個重點:(1) 為什麼「Linux VM 編譯、Windows 燒錄」這樣跨系統分工;(2) 為什麼這板子要逐 sector 抹除,-e all反而會失敗。

2026-06-02 10:51:27 525

原创 從零開始在家開發 IoT: openocd + gdb 不如回 Windows 用 STM32CubeProgrammer CLI ?

前置閱讀:從零開始在家開發 IoT:mode=UR兩者是分工,下文詳細描述分工情境。

2026-06-02 10:31:15 317

原创 從零開始在家開發 IoT: Flash & Run 腳本解析(STM32 + WiFi HaLow)

Flash & Run 腳本解析(STM32 + WiFi HaLow)摘要 本文針對STM32U5主控運行WiFi stack並連接Morse Micro HaLow晶片的特殊情境,解析專用燒錄腳本的設計原理。關鍵在於WiFi stack運作時難以穩定停止核心(halt),因此腳本採用「兩階段重置」策略: 首先透過OpenOCD執行reset halt將核心固定在Reset_Handler,創造無干擾的燒錄環境 再由GDB完成載入與驗證後,執行不帶halt的reset讓系統完整重啟 腳本特別處理了WiFi

2026-05-30 21:39:51 417

原创 從零開始在家開發 IoT: OpenOCD 與 GDB 協作指南

本文介紹 OpenOCD與GDB在ARM Cortex-M(STM32U595)開發環境中的協作方式。OpenOCD擔任硬體與GDB間的橋樑,透過ST-Link和SWD介面與晶片溝通,同時提供GDB server功能。文章詳述兩者分工:GDB處理符號與使用者指令,OpenOCD負責底層硬體操作。核心設定檔openocd.cfg定義三要素:除錯器類型(如ST-Link)、通訊協定(如SWD)和目標晶片配置,並說明在不同硬體變更時所需調整的設定內容,包括同系列晶片型號更換或跨廠商移植的處理方式。

2026-05-30 21:32:02 453

原创 apt install 到底做了什麼:從 libtinfo5 補裝案例拆解 .deb and GPG 簽章

本文通过Ubuntu 24.04中安装旧版libtinfo5的实际案例,深入解析了apt install和.deb包的工作机制。当ARM交叉编译工具链需要已被官方移除的libtinfo5时,我们发现apt无法直接安装,必须手动下载.deb包。作者详细拆解了.deb包的结构(控制文件和数据文件),演示了dpkg安装的三阶段过程(解包、配置、完成),并验证了安装路径和符号链接。文章特别对比了手动安装.deb与通过官方仓库安装的安全差异:前者跳过了GPG签名验证环节,后者则依赖完整的信任链。最后以VS Code安

2026-05-30 18:21:50 374

原创 從零開始在家開發 IoT: How to Configure Static IP Address on Ubuntu Using Netplan (Step-by-Step Guide)

【代码】從零開始在家開發 IoT: How to Configure Static IP Address on Ubuntu Using Netplan (Step-by-Step Guide)

2026-05-25 12:12:20 372

原创 SAST Vulnerability Fix Report and Analysis of Similar Issue Categorization

本文总结了2016-2025年间的职业发展历程,重点记录了使用SAST工具进行代码安全优化的实践。报告分为三部分:首先说明无需处理的项目判断标准;其次建立漏洞修复指南框架,包含CWE编号、严重性等字段;最后以随机数安全为例,详细分析rand()系列函数的安全隐患,并对比提出两种安全替代方案(基于Secure Element硬件和OpenSSL库)。报告强调通过分类统计和标准化处理提升代码安全性,同时保持了修复过程的透明度。对于尚未找到最佳实践的漏洞,报告也提出了后续优化方向。

2025-10-15 11:10:06 701

原创 如何在 User space 確保全數啟用 PIE CFLAG ?

ELF文件需要开启PIC/PIE编译选项以增强安全性,其中: -fPIC用于共享库,支持多进程共享 -fPIE用于可执行文件,支持ASLR 在用户空间启用PIE的方法: 自有代码:通过Makefile自动检测并添加-fPIE/-pie标志,同时避免与静态编译等不兼容参数冲突 第三方工具:如buildroot可通过配置BR2_PIC_PIE=y全局启用PIE 这两种方式确保所有二进制文件和库都能正确支持地址空间随机化。

2025-10-08 12:22:10 346

原创 How to use Checksec Binary Analysis to scan

摘要: 本文介绍如何在嵌入式Linux开发中使用checksec工具验证rootfs中ELF二进制文件的安全加固情况。步骤包括:在无sudo权限的Ubuntu服务器上安装checksec脚本,编写自动化扫描脚本遍历rootfs目录检测所有ELF文件,并生成包含NX、PIE、RELRO等关键安全特性的报告。扫描结果以结构化格式输出,通过颜色标识安全状态(绿色表示已加固,红色存在风险)。该方法可有效识别系统潜在攻击面,确保发布前安全配置符合标准,适用于嵌入式设备的CI/CD流程。

2025-09-23 16:31:23 773

原创 Openssl TRNG provider demo guide

OpenSSL v3.x及以上版本需配置自定义Provider。主要步骤包括:检查openssl.cnf配置文件路径(默认/etc/ssl/openssl.cnf),通过环境变量OPENSSL_CONF指定非标准路径,并在配置文件中正确加载Provider模块(如se_trng)。演示时,使用openssl CLI工具验证Provider是否加载成功,并通过-provider参数调用自定义TRNG功能生成随机数(如16/32字节的HEX值)。配置需同时保留默认Provider以确保完整功能支持。

2025-09-23 16:24:04 530

原创 如何整合 openSSL custom provider (以 TRNG 舉例)

本文介绍了将SE TRNG集成到OpenSSL加密框架的方法,通过Provider或Engine接口实现安全高效的随机数生成。重点解析了OpenSSL 3.0引入的Provider架构,包括OSSL_DISPATCH和OSSL_ALGORITHM结构体,以及Provider初始化流程和功能接口。同时概述了RNG类型及其适用场景,指出硬件TRNG适合作为种子源提升安全性,但不适用于测试环境。文章提供了详细的代码示例和功能对照表,为开发者实现自定义RNG Provider提供了技术指导。

2025-09-23 16:19:26 1054

原创 RTSP Server 如何適用 HEVC dynamic length 產生SDP 與 RTP package

本文介绍了Chroma QP offset的应用场景及实现方法。Chroma QP offset用于补偿亮度与色度在压缩时的感知差异,特别是在高比特深度或非4:2:0色度采样情况下。文中还提供了RTSP服务器中HEVC视频流的SDP描述示例,并展示了一个C语言实现的HEVC VPS/SPS/PPS解析代码库,该库通过查找起始码来定位NAL单元,支持获取特定类型NAL单元的偏移量和长度。这些技术点对视频编码和流媒体传输开发具有实际参考价值。

2025-09-17 12:01:41 993

原创 OWASP : Authentication Cheat Sheet 中文譯本

資料來源。

2024-09-30 10:13:58 1172

原创 Zephyr Environment

Zephyr supports a wide range of processor architectures, including ARM Cortex-M, x86, RISC-V, ARC, and others, allowing developers to use it across different hardware platforms.This flexibility allows Zephyr to be used in a variety of embedded systemIt ca

2024-09-27 13:13:06 857

原创 Multi-processor and multi-thread debuging tools

【代码】Multi-processor and multi-thread debuging tools。

2024-09-27 13:01:03 890

原创 Drivers on multiprocessor and multithreaded ASIC platforms (1)

race condition and deadlockTo prevent multiple threads from accessing the same resource simultaneously, synchronization primitives (e.g., mutexes, semaphores) must be used.minimizing the use of locks to reduce overhead should also be considered.each proces

2024-09-27 12:52:16 970

原创 [AppSec] How to start an AppSec Program with the OWASP Top 10 translation

https://owasp.org/Top10/zh_TW/A00_2021-How_to_start_an_AppSec_program_with_the_OWASP_Top_10/如何用OWASP前十大開始應用程式安全計畫過去,OWASP前十大從未被設計成應用程式安全(AppSec)計畫的基礎。然而,對於剛開始應用程式安全旅程的許多組織來說,總得有個起點。2021年版的OWASP前十大是一個不錯的起點,可以作為基線或檢查表,但它本身並不足夠。階段1:識別AppSec計畫的差距和目標許多應用程式安

2024-09-26 17:46:29 407

原创 Collect CVE by OSS name and version in Buildroot

【代码】Collect CVE by OSS name and version in Buildroot。

2024-09-13 18:03:32 826

原创 Analyzing CPU Usage with Perf (2) - using perf and read flamgraph

【代码】Analyzing CPU Usage with Perf (2) - using perf and read flamgraph。

2024-09-04 11:19:29 1308

原创 Analyzing CPU Usage with Perf (1) - preparation

【代码】Analyzing CPU Usage with Perf (1) - preparation。

2024-09-04 11:08:14 1160 1

原创 Detecting Memory Management and Threading Bugs with Valgrind

contentAbout ValgrindInstalling ValgrindFrom SourceFrom Pre-compiled BinaryPrepare FW and standard library with symbolPrepare FWPrepare sysroot on NFSSet LD_LIBRARY_PATH and create symbolic linksPrepare self-implement libraries and applications with symbol

2024-09-04 10:56:04 1130

原创 OWASP: OWASP Dependency-Check install and usage 安裝與使用說明

【代码】OWASP: OWASP Dependency-Check install and usage 安裝與使用說明。

2024-08-29 15:10:02 547

原创 OWASP: how to use Cppcheck output 如何閱讀cppcheck output 以改進代碼安全性

Download Windows 64-bit (No XP support) Installer, and installnew projectThe project file requires a larger storage space; it is recommended not to save it on the C drive.File -> Open Project File…save outupt to xmlhttps://codebeautify.org/xmlviewerI rec

2024-08-29 13:50:45 793

原创 OWASP: How to use flawfinder output to improve your source code

Flawfinder is a commonly used static source code analysis tool that can check code according to CWE guidelines and provide modification suggestions.Recap:How to Install Python 3 and Flawfinder for Static Analysis in a Windows Environment2021 list-of-mappe

2024-08-27 15:40:19 856

原创 How to Install Python 3 and Flawfinder for Static Analysis in a Windows Environment

【代码】How to Install Python 3 and Flawfinder for Static Analysis in a Windows Environment。

2024-08-26 16:49:48 692

原创 Import Bento4 to buildroot:how to cover C++ to C interface

【代码】Import Bento4 to buildroot:how to cover C++ to C interface。

2024-07-23 16:03:38 836 1

原创 Example of an Automated SBOM Generation Using Syft

【代码】Example of an Automated SBOM Generation Using Syft。

2024-07-17 14:25:31 1321

原创 Dump audio source from wireshark

Import 原始資料 > open .raw in Audacity。

2024-07-05 16:21:49 1264

原创 Profiling memory, file descriptor and other process information with procfs (/proc)

【代码】Profiling memory, file descriptor and other process information with procfs (/proc)

2024-07-05 16:11:08 1038

原创 Cross Debugging with GDB: Embedded Linux

Downlaod target_debug to C:\msys64\home\imxx\ 下, this is MYSYS2 home。

2024-07-05 15:58:03 746

原创 ffmpeg frequently use commands

【代码】ffmpeg frequently use commands。

2024-07-05 15:27:23 459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除