# 3gppDecoder **Repository Path**: konglinglong/3gppDecoder ## Basic Information - **Project Name**: 3gppDecoder - **Description**: 使用RED语言实现的3GPP解码器,支持2G、3G、4G、5G等等等相关通信协议。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 24 - **Forks**: 15 - **Created**: 2019-10-14 - **Last Updated**: 2026-10-08 ## Categories & Tags **Categories**: mobile-communication **Tags**: None ## README 3gppDecoder ===== ## 概述 使用RED语言实现的3GPP解码器,可执行文件仅1M。 - 支持2G、3G、4G、5G等相关通信协议。 - 理论上,通过修改配置文件,可以解码wireshark未来支持的所有协议。 - 支持各种乱七八糟的码流输入: - - 连续的码流1a2b3c432345 - - 空格隔开的码流 1a 2b 3c 43 23 45 - - 逗号隔开的码流 1a,2b,3c,43,23,45 - - 以0x开头的码流 0x1a 0x2b 0x3c 0x43 0x23 0x45 - - 以上所有的混合 0x1a,2b ,3c 4323,0x45 (你蛋不疼么给老子整这些,但老子还是支持:-P) ## 预览
preview
## 使用 ### 方式一:下载源码,下载[RED](https://static.red-lang.org/dl/auto/win/red-latest.exe) #### 1. 以脚本形式运行:D:\DevTools\red\red.exe 3gppDecoder.red #### 2. 编译后再运行:D:\DevTools\red\red.exe -c -t windows 3gppDecoder.red *注意:由于red工具存在BUG,运行的时候都需要使用绝对路径,如我的环境是D:\DevTools\red\red.exe,* *否则可能会报错:PROGRAM ERROR: Invalid encapsulated data.* ### 方式二:下载可执行文件 #### 1. 从[发行版](https://gitee.com/konglinglong/3gppDecoder/releases)页面下载最新版本 #### 2. 解压到一个文件夹,路径不要包含中文,打开3gppDecoder.cfg配置文件: - 修改wireshark路径 - 修改notepad++路径 - 增加配置文件里面没有但你需要用到的协议(前提是你的wireshark版本支持。建议升级wireshark到较新版本。) - 如果对配置文件修改过多,建议使用json检查工具检查一下文件格式是否有问题 ## 图形界面配置 > 首次运行(或安装目录下找不到 `3gppDecoder.cfg`)时,程序会自动弹出该配置页面,并自动探测常见的 Wireshark/Notepad++ 安装目录,引导完成配置;保存后即可正常使用。 除了直接编辑 `3gppDecoder.cfg`,还可以在程序内完成配置: 1. 打开程序菜单 **文件 → 配置**。 2. 在配置窗口中: - 修改 **Wireshark 目录** 和 **Notepad++ 目录**(可点“浏览…”选择目录); - 在左侧选择网络类型,在右侧编辑该网络类型下的协议列表(每行一个协议名); - 用 **新增网络** / **重命名网络** / **删除网络** 管理网络类型。 3. 点击 **保存**。程序会先校验目录和协议是否合法,校验通过后写回 `3gppDecoder.cfg`,并立即在主界面刷新网络/协议下拉框,无需重启。 配置文件仍然是普通的 JSON,可继续用文本编辑器手工修改。 ## 测试 配置逻辑带有自动化测试: - 应用内置自检(不需要人工操作,结果写入 `_cfg_selftest_result.txt`): ``` 3gppDecoder.exe --cfg-selftest ``` - 配置库单元测试(在仓库根目录执行,结果写入 `tests/config-lib-test-result.txt`): ``` D:\DevTools\Red\red.exe -o tests\config-lib-test.exe tests\config-lib-test.red tests\config-lib-test.exe ```