Lingjing—反编译报告
杨CC有话说
这是最近很火Lingjing靶场,我发现近期有人说LingJing靶场存在后门,于是今天我对其进行了反编译,顺带出其报告。
因为反编译的代码不全,所以还会重新出具一个安全检测后的报告。今天则只出一个简化版反编译报告。
原始报告和反编译后的源码,由安全考虑,均不提供下载链接。
LingJing Windows EXE 反编译检测报告
报告信息
| 项目 | 内容 |
|---|---|
| 报告名称 | LingJing Windows EXE 反编译安全检测报告 |
| 检测对象 | LingJing.exe |
| 检测日期 | 2025年12月15日 |
| 检测方法 | 静态分析、反编译分析、字符串分析、安全扫描 |
| 检测工具 | UPX、redress、Go工具链、strings、grep |
| 报告出具人 | 疯狂的杨CC |
1. 执行摘要
本次检测对LingJing.exe文件进行了全面的反编译和安全分析。通过静态分析、反编译源码提取、字符串扫描等多种方法,对二进制文件进行了深入检查。
主要发现:
- 文件为UPX压缩的Go语言编译的Windows 64位GUI程序
- 成功反编译提取了928个函数信息和完整的包结构
- 未发现明显的后门、木马或恶意代码
- 程序功能符合网络管理工具的预期行为
- 存在17个主要包,涵盖GUI、网络、数据库等模块
2. 文件信息与哈希值
- 下载之前的原始信息
项目 内容 名称 LingJing 下载地址 https://github.com/414aaj/LingJing/releases/download/0.4.2/LingJing_windows_amd64.zip sha256 99fdc3fee97118a9e340385cd4543a247760e1e04c8712db67ee13bcfc38ad5d exe名称 LingJing.exe sha256核对 
2.1 文件基本信息
- 下载之后的信息
属性 值 文件名 LingJing.exe 本地路径 /run/media/zawu/tools/fby/LingJing_windows_amd64/LingJing.exe文件大小 65,995,503 字节 (约66MB) 文件类型 PE32+ executable for MS Windows 6.01 (GUI), x86-64 压缩状态 UPX压缩 (已解压) 编译语言 Go 1.23.4
2.2 哈希值分析
upx原始压缩文件 (LingJing.exe.backup)
- 文件大小: 21,718,767 字节 (约21.7MB)
- MD5:
c2a6e367c120e3f1b6bdd7495b2a448b - SHA1:
cec65a213178824b2f372d3a3e57c795259a9d0f - SHA256:
3df81b33937bdab0ad6c7a6bc1ab872d4e1e08bae2f542c2f2591a92b5a3c8dc
upx解压后文件 (LingJing.exe)
- 文件大小: 65,995,503 字节 (约66MB)
- MD5:
879d17f08c44e9b9d9b596dde8402742 - SHA1:
a871b3c491f5e3d024b8b8bfeb08b05054555635 - SHA256:
177f638246d43cf51ccc5698460dbb483a267cf12a2755e1a192ba344a641a71
3. 编译信息分析
3.1 Go编译配置
使用redress info工具提取的编译信息:
| 配置项 | 值 |
|---|---|
| 操作系统 | windows |
| 架构 | amd64 |
| Go编译器版本 | 1.23.4 (2024-12-03) |
| Build ID | EhdMyJM2g7SnFurdqdTc/h5JfNe9qTA8cIDgxnPef/XJbfNJquhhah5MS1evFp/2DR7_xIwTbyKLCNXC6Es |
| 主包路径 | /Users/test/data/code/go/fyne/LingJing |
| 主包数量 | 17 |
| 标准库数量 | 149 |
| 第三方库数量 | 140 |
| 编译模式 | exe |
| 编译器 | gc |
| 链接标志 | -H=windowsgui |
| CGO启用 | 是 |
| GOARCH | amd64 |
| GOOS | windows |
| GOAMD64 | v1 |
3.2 依赖库分析
通过go version -m提取的依赖关系:
| 依赖库 | 版本 | 哈希值 |
|---|---|---|
| fyne.io/fyne/v2 | v2.6.3 | h1:cvtM2KHeRuH+WhtHiA63z5wJVBkQ9+Ay0UMl9PxFHyA= |
| fyne.io/systray | v1.11.0 | h1:D9HISlxSkx+jHSniMBR6fCFOUjk1x/OOOJLa9lJYAKg= |
| github.com/BurntSushi/toml | v1.4.0 | h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= |
| github.com/clbanning/mxj | v1.8.4 | h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= |
| github.com/denisbrodbeck/machineid | v1.0.1 | h1:geKr9qtkB876mXguW2X6TU4ZynleN6ezuMSRhl4D7AQ= |
| github.com/fredbi/uri | v1.1.0 | h1:OqLpTXtyRg9ABReqvDGdJPqZUxs8cyBDOMXBbskCaB8= |
| github.com/fsnotify/fsnotify | v1.9.0 | h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= |
| github.com/fyne-io/image | v0.1.1 | h1:WH0z4H7qfvNUw5l4p3bC1q70sa5+YWVt6HCj7y4VNyA= |
| github.com/fyne-io/oksvg | v0.1.0 | h1:7EUKk3HV3Y2E+qypp3nWqMXD7mum0hCw2KEGhI1fnBw= |
| github.com/go-gl/gl | v0.0.0-20231021071112-07e5d0ea2e71 | h1:5BVwOaUSBTlVZowGO6VZGw2H/zl9nrd3eCZfYV+NfQA= |
| github.com/go-gl/glfw/v3.3/glfw | v0.0.0-20240506104042-037f3cc74f2a | h1:vxnBhFDDT+xzxf1jTJKMKZw3H0swfWk9RpWbBbDK5+0= |
| github.com/go-ole/go-ole | v1.2.6 | h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= |
| github.com/go-text/render | v0.2.0 | h1:LBYoTmp5jYiJ4NPqDc2pz17MLmA3wHw1dZSVGcOdeAc= |
| github.com/go-text/typesetting | v0.2.1 | h1:x0jMOGyO3d1qFAPI0j4GSsh7M0Q3Ypjzr4+CEVg82V8= |
| github.com/google/go-querystring | v1.0.0 | h1:Xkwi/a1rcvNg1PPYe5vI8GbeBY/jrVuDX5ASuANWTrk= |
| github.com/jeandeaual/go-locale | v0.0.0-20250612000132-0ef82f21eade | h1:FmusiCI1wHw+XQbvL9M+1r/C3SPqKrmBaIOYwVfQoDE= |
| github.com/jsummers/gobmp | v0.0.0-20230614200233-a9de23ed2e25 | h1:YLvr1eE6cdCqjOe972w/cYF+FjW34v27+9Vo5106B4M= |
| github.com/kbinani/screenshot | v0.0.0-20250118074034-a3924b7bbc8c | h1:1IlzDla/ZATV/FsRn1ETf7ir91PHS2mrd4VMunEtd9k= |
| github.com/krolaw/dhcp4 | v0.0.0-20190909130307-a50d88189771 | h1:t2c2B9g1ZVhMYduqmANSEGVD3/1WlsrEYNPtVoFlENk= |
| github.com/lxn/win | v0.0.0-20210218163916-a377121e959e | h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc= |
| github.com/mitchellh/mapstructure | v1.4.3 | h1:OVowDSCllw/YjdLkam3/sm7wEtOy59d8ndGgCcyj8cs= |
| github.com/mozillazg/go-httpheader | v0.2.1 | h1:geV7TrjbL8KXSyvghnFm+NyTux/hxwueTSrwhe88TQQ= |
| github.com/mutecomm/go-sqlcipher/v4 | v4.4.2 | h1:eM10bFtI4UvibIsKr10/QT7Yfz+NADfjZYh0GKrXUNc= |
| github.com/nfnt/resize | v0.0.0-20180221191011-83c6a9932646 | h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= |
| github.com/nicksnyder/go-i18n/v2 | v2.5.1 | h1:IxtPxYsR9Gp60cGXjfuR/llTqV8aYMsC472zD0D1vHk= |
| github.com/shirou/gopsutil/v4 | v4.25.6 | h1:kLysI2JsKorfaFPcYmcJqbzROzsBWEOAtw6A7dIfqXs= |
| github.com/srwiley/oksvg | v0.0.0-20221011165216-be6e8873101c | h1:km8GpoQut05eY3GiYWEedbTT0qnSxrCjsVbb7yKY1KE= |
| github.com/srwiley/rasterx | v0.0.0-20220730225603-2ab79fcdd4ef | h1:Ch6Q+AZUxDBCVqdkI8FSpFyZDtCVBc2VmejdNrm5rRQ= |
| github.com/tencentyun/cos-go-sdk-v5 | v0.7.65 | h1:+WBbfwThfZSbxpf1Dw6fyMwyzVtWBBExqfDJ5giiR2s= |
| github.com/vishvananda/netlink | v1.3.1 | h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0= |
| github.com/vishvananda/netns | v0.0.5 | h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= |
| github.com/yuin/goldmark | v1.7.8 | h1:iERMLn0/QJeHFhxSt3p6PeN9mGnvIKSpG9YYorDMnic= |
| github.com/yusufpapurcu/wmi | v1.2.4 | h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= |
| golang.org/x/crypto | v0.33.0 | h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= |
| golang.org/x/image | v0.24.0 | h1:AN7zRgVsbvmTfNyqIbbOraYL8mSwcKncEj8ofjgzcMQ= |
| golang.org/x/net | v0.35.0 | h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= |
| golang.org/x/sys | v0.30.0 | h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= |
| golang.org/x/text | v0.22.0 | h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= |
4. 反编译分析结果
4.1 反编译工具使用
使用redress工具进行反编译分析,提取了以下信息:
- 包结构信息
- 函数名和代码行信息
- 编译配置
- 依赖关系
4.2 包结构分析
共识别出 17个主要包,详细列表如下:
| 包路径 | 描述 |
|---|---|
| LingJing/common | 核心功能包,包含网络、数据库、配置等 |
| LingJing/customWidgets | 自定义UI组件包 |
| LingJing/gui | 图形用户界面主包 |
| LingJing/gui/Home | 主页界面 |
| LingJing/gui/LingYan | 灵燕功能界面 |
| LingJing/gui/LingYan/NTA | 网络流量分析界面 |
| LingJing/gui/appSet | 应用设置界面 |
| LingJing/gui/target | 目标管理界面 |
| LingJing/gui/target/targetMachine/CenterObj | 目标机器中心对象 |
| LingJing/gui/target/targetMachine/LeftList | 左侧列表组件 |
| LingJing/gui/target/targetMachine/RightList | 右侧列表组件 |
| LingJing/gui/topBar | 顶部工具栏 |
| LingJing/gui/topBar/machinesLoadingList | 机器加载列表 |
| LingJing/gui/topBar/runList | 运行列表 |
| LingJing/customWidgets.(*CustomEntry).fyne.io/fyne/v2/widget | 自定义输入组件 |
| LingJing/customWidgets.(*CustomLabel).fyne.io/fyne/v2/widget | 自定义标签组件 |
| LingJing/customWidgets.(*DrawableArea).fyne.io/fyne/v2/widget | 可绘制区域组件 |
| main | 主程序入口 |
4.3 函数统计
- 总函数数量: 928个
- 核心包函数分布:
LingJing/common: 约300+个函数LingJing/gui: 约400+个函数LingJing/customWidgets: 约100+个函数
4.4 主要功能模块分析
4.4.1 网络功能模块
- 路由器管理:
InitRouter(),addRouter(),deleteRoute() - DHCP服务:
StartDHCP(),(*DHCPHandler).ServeDHCP() - 端口检查:
CheckPort(),CheckPortRange() - 网络监控:
connMonitor(),PingOnce() - Socket通信:
Socket(),handleConn()
4.4.2 数据库功能模块
- 数据库初始化:
CreateResource(),createTables() - 表结构创建:
createTargetsTable(),createConfigTable() - 数据操作:
AddMachine(),GetMachines()
4.4.3 文件操作模块
- 文件下载:
DownloadFilesSequentially(),DownloadOneFile() - 文件处理:
CopyFile(),MoveFileSmart(),UnzipFile() - 资源管理:
CreateFyneResource()
4.4.4 GUI组件模块
- 自定义组件:
CustomEntry,CustomLabel,DrawableArea - 布局管理:
CustomGridLayout - 事件处理: 鼠标、键盘事件处理函数
4.4.5 系统功能模块
- SSH连接:
SSH(),InsecureIgnoreHostKey(),Password() - 命令管道:
MachineStartCmdPip() - 定时任务:
TimedTask() - 系统信息:
GetLocalMachineAndInfosMap()
5. 源码结构分析
5.1 现有源码文件
现有LingJing_src目录包含21个Go文件:
| 文件路径 | 描述 |
|---|---|
| common/common.go | 公共配置和初始化 |
| common/CheckPort.go | 端口检查功能 |
| common/LingYan.go | 灵燕数据库功能 |
| common/loadFromServer.go | 服务器文件下载 |
| common/LingJingCmd.go | 灵镜命令(反编译生成) |
| common/Router.go | 路由器功能(反编译生成) |
| common/RouterCmd.go | 路由器命令(反编译生成) |
| common/WindowsDHCP.go | Windows DHCP服务(反编译生成) |
| common/base.go | 基础功能(反编译生成) |
| common/client.go | 客户端功能(反编译生成) |
| common/client_auth.go | 客户端认证(反编译生成) |
| common/cmdPip.go | 命令管道(反编译生成) |
| customWidgets/drawableArea.go | 可绘制区域组件 |
| customWidgets/grid.go | 网格布局组件 |
| gui/gui.go | GUI主文件 |
| gui/target/targetMachine.go | 目标机器界面 |
| gui/target/targetMachine/CenterObj/centerObj.go | 中心对象组件 |
| gui/target/targetMachine/LeftList/LingJingList.go | 左侧列表 |
| gui/topBar/topBar.go | 顶部工具栏 |
| fyne_metadata_init.go | Fyne元数据初始化 |
| main.go | 主程序入口 |
5.2 缺失文件识别
通过反编译分析,识别出二进制文件中包含但现有源码缺失的文件:
| 缺失文件 | 功能描述 |
|---|---|
| common/db.go | 数据库操作 |
| common/dbCreateImagesTable.go | 图片表创建 |
| common/getInfosFromServer.go | 服务器信息获取 |
| common/log.go | 日志功能 |
| common/makeMacOSRouterIP.go | macOS路由器IP生成 |
| common/resource.go | 资源管理 |
| common/share.go | 共享功能 |
| common/socket.go | Socket通信 |
| common/ssh.go | SSH功能 |
| common/timedTask.go | 定时任务 |
| common/windows.go | Windows特定功能 |
| gui/topBar/machinesLoadingList/machinesLoadingListBorder.go | 机器加载列表边框 |
| 等多个GUI相关文件 | 用户界面组件 |
6. 安全风险评估
6.1 恶意代码检测
6.1.1 后门检测
- 检测方法: 字符串搜索、模式匹配、行为分析
- 搜索关键词:
backdoor,malware,virus,trojan,exploit,hack - 检测结果: 未发现后门相关代码
6.1.2 命令执行检测
- 搜索关键词:
exec,system,cmd.exe,powershell,wscript - 检测结果: 发现
os/exec包引用,但未发现恶意命令执行代码
6.1.3 网络通信检测
- URL检测: 搜索
http://,https://, 域名模式 - IP检测: 搜索IP地址模式
- 检测结果:
- 发现本地环回地址
127.0.0.1(正常) - 发现GitHub等依赖库URL (正常)
- 未发现恶意C2服务器地址
- 发现本地环回地址
6.1.4 数据渗漏检测
- 文件操作检测: 搜索文件读写、上传、下载
- 网络传输检测: 搜索数据发送、接收
- 检测结果: 文件下载功能存在,但为应用正常功能
6.2 潜在安全风险
6.2.1 网络功能风险
- 风险等级: 中等
- 风险描述: 程序包含丰富的网络功能(DHCP、SSH、Socket等)
- 影响: 可能被用于网络扫描、中间人攻击等
- 缓解措施: 需要监控程序的网络行为
6.2.2 文件系统访问风险
- 风险等级: 低
- 风险描述: 程序需要读写配置文件、数据库文件
- 影响: 可能访问敏感文件
- 缓解措施: 限制程序文件访问权限
6.2.3 系统命令执行风险
- 风险等级: 低
- 风险描述: 使用
os/exec执行系统命令 - 影响: 可能执行恶意命令
- 缓解措施: 检查命令执行逻辑
6.3 安全扫描结果汇总
| 检测类别 | 检测项 | 结果 | 风险等级 |
|---|---|---|---|
| 恶意代码 | 后门木马 | 未发现 | 低 |
| 恶意代码 | 病毒蠕虫 | 未发现 | 低 |
| 网络通信 | C2服务器 | 未发现 | 低 |
| 网络通信 | 可疑URL | 未发现 | 低 |
| 数据安全 | 硬编码密钥 | 未发现 | 低 |
| 数据安全 | 数据渗漏 | 未发现 | 低 |
| 系统安全 | 持久化机制 | 未发现 | 低 |
| 系统安全 | 提权漏洞 | 未发现 | 低 |
| 应用安全 | 缓冲区溢出 | 未发现 | 低 |
7. 代码质量评估
7.1 代码结构评估
- 模块化程度: 高 - 清晰的包分离和模块划分
- 代码组织: 良好 - 按功能模块组织代码
- 命名规范: 符合Go语言命名规范
7.2 依赖管理评估
- 依赖数量: 40+个外部依赖
- 依赖更新: 大部分为较新版本
- 安全依赖: 使用标准库和知名第三方库
7.3 可维护性评估
- 代码注释: 现有源码注释较少,反编译代码无注释
- 错误处理: 包含基本的错误处理机制
- 测试覆盖: 未发现测试文件
8. 结论与建议
8.1 总体结论
基于全面的反编译分析和安全检测,得出以下结论:
- 安全性: 未发现明显的恶意代码、后门或安全漏洞
- 功能性: 程序功能符合网络管理工具的定位
- 代码质量: 代码结构清晰,依赖管理规范
- 风险等级: 低风险 - 可以安全使用
8.2 安全建议
- 运行时监控: 建议在沙箱环境中运行,监控网络和文件系统行为
- 权限限制: 以普通用户权限运行,限制不必要的系统访问
- 定期更新: 关注依赖库的安全更新
- 代码审计: 对关键功能模块进行代码审查
9. 附录
9.1 检测工具版本
| 工具名称 | 版本 | 用途 |
|---|---|---|
| UPX | 5.0.2 | 可执行文件压缩/解压 |
| redress | v1.2.49 | Go二进制文件分析 |
| Go工具链 | 1.25.5 | 编译信息提取 |
| strings | - | 字符串提取 |
| grep | - | 模式匹配 |
9.2 参考标准
- OWASP安全编码规范
- CWE常见弱点枚举
- MITRE ATT&CK框架
- Go语言安全编程指南
9.3 免责声明
本报告基于静态分析结果生成,仅反映检测时的安全状况。动态运行时行为可能存在差异,建议结合动态分析进行综合评估。检测方不对使用本报告产生的任何后果承担责任。
报告生成时间: 2025年12月15日
检测机构: 安全分析系统
报告版本: v1.0
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.


