文章总结: 本文披露GitHub某游戏存档修改器实为银狐病毒变种。该样本用Bun打包混淆JS,具备两阶段反沙箱评分检测、双层AES加密通信、云端按需下发载荷及纯JS实现内存反射PE加载能力,全程无文件落地。建议防范此类新型Bun打包木马免杀手法,加强游戏外挂供应链安全管控,并可利用其调试后门文件辅助研判。 综合评分: 90 文章分类: 恶意软件,逆向分析,免杀,威胁情报,代码审计
[软件审计]某疑似“银狐病毒”的软件分析
和子煦
2026年8月14日 22:23 广东
在小说阅读器读本章
去阅读
“银狐病毒”是近年来新出现的一系列流行的病毒,其主要特征是通过潜伏在受感染的计算机系统中,向目标主机回传受感染计算机系统上的敏感信息。由于其有一系列变种,并且在不断进化中,自2026年以来,已经成为了一种容易中招、频繁出现的病毒。
起因是听同学说有人想下一个存档编辑器,结果看了一眼源代码发现是病毒。好吧,确实是病毒。
结论:GitHub上某“修改Granblue Fantasy Relink玩家存档数据”的外挂程序疑似为“银狐病毒”。
该程序中包含的Setup.exe是一个使用Bun运行时打包的JavaScript下载器/加载器,具备完整的反沙箱、环境指纹采集、C2 加密通信、云端载荷拉取与**内存反射式 PE 加载(无文件落地)**能力,投递链特征与”银狐”(Silver Fox / Winos 系列)投递框架高度一致。
(下面的表格须左右滑动查看)
| 文件 | 大小 | 性质 |
| — | — | — |
| Setup.exe | 97.9 MB | 恶意主体 :Bun 1.3.14 编译的单文件可执行程序,内嵌 132 KB 混淆 JS 载荷 |
| 根目录 6 个 DLL(nss3/rnp/mozavcodec/gkcodecs/libGLESv2/Microsoft.UI.Input) | ~30 MB | 合法文件(Mozilla Thunderbird 组件等),纯伪装,多数带有效数字签名 |
| core/ (Qt6、FFmpeg、icu、d3dcompiler) | ~28 MB | 合法 Qt/FFmpeg 运行库,签名有效,纯伪装 |
| Data/ (Windows People Bar 系统 DLL) | ~11 MB | 合法 Windows 系统文件副本,纯伪装 |
| scripts/bin/ (edb*.log、edb.chk、*.jrs、DataStore.jfm) | ~18 MB | 从 C:\Windows\SoftwareDistribution\DataStore\Logs\ 复制的 Windows Update ESE 日志,纯伪装 |
恶意行为分析
JS载荷经javascript-obfuscator高强度混淆(字符串数组旋转 + base64解码器 + XOR表),反混淆后还原出4个模块,执行流程如下:
阶段 0 — 调试后门开关
检查自身目录是否存在98765.txt:存在则跳过反沙箱检测并写loader_debug.log(作者调试通道,也可用作排查佐证)。
阶段 1 — 环境检测 / 反沙箱(sysreq.js)
通过bun:ffi直接调用Win32 API(kernel32/advapi32/user32/setupapi),不经过Node库:
- 硬件指纹:读注册表
HKLM\HARDWARE\DESCRIPTION\System\BIOS(BIOS 厂商、主板厂商/型号)、HKLM\SYSTEM\CurrentControlSet\Services\disk\Enum(磁盘型号);GetSystemFirmwareTable('RSMB')解析 SMBIOS 内存条;EnumSystemFirmwareTables('ACPI');SetupDi 枚举 PNP 设备总数与总线名称;音频设备计数;磁盘总容量(C:~G:) - 虚拟机识别(解码出的特征表):qemu、seabios、bochs、innotek、vbox、vmware、kvm、xen、parallels、virtio、bhyve、”ms_vm_cert”、”virtual machine”、”red hat”、”edk ii”,MAC OUI
00:50:56(VMware)、08:00:27(VBox)、52:54:00(QEMU)、00:15:5D(Hyper-V)、00:16:3E(Xen)、00:1C:42(Parallels),Hyper-V 总线vmbus - 沙箱/分析环境识别:用户名黑名单(sandbox、malware、virus、sample、maltest、currentuser、vmuser、john doe、peter wilson、hapubws、hong lee、joe sandbox、paul jones、WDAGUtilityAccount、defaultuser0);进程数过少;uptime<60 秒;屏幕≤800×600;磁盘 5–20 GB;内存 1–2 GB;单核 CPU;临时目录/桌面/Recent 文件数过少;已装软件<3 个;无浏览器(Chrome/Firefox/Edge/Brave 目录探测);CPU 时序基准检测(
process.hrtime测量指令开销识别模拟器) - 两阶段评分制:phaseOne≥25 分直接放弃运行;总分≥100 分放弃运行 —— 不满足条件时静默退出,不释放任何恶意行为(对抗动态沙箱)
阶段 2 — 信息收集与回传
采集:外网 IP(随机请求 checkip.amazonaws.com / icanhazip.com / ifconfig.me)、CPU 型号、内存、系统版本、主机名\用户名、上述全部反检测数据、时间戳。
- 加密上报:JSON → AES-256-CBC(密钥=SHA256(REPORT_SECRET+”inner”),随机 IV 前置)→ Base64 → 再 AES-256-CBC(密钥=SHA256(REPORT_SECRET+”outer”))→ Base64,双层加密 POST 至
https://un***.cc/api/report - 通信伪装:伪造 Chrome 134–135 User-Agent;
NODE_TLS_REJECT_UNAUTHORIZED=0关闭 TLS 证书校验;支持读取系统代理(环境变量 + 注册表 IE 代理设置)走 HTTP CONNECT 隧道,适配企业网络 - 失败重试 3 次(递增间隔)
阶段 3 — 状态轮询
GET https://un***.cc/api/status?v=ceec64366c40(BUILD_ID),最多 20 次指数退避(1s→30s 封顶),从返回 JSON 取 seed 字段(一次性解密因子)。无 seed 则退出 —— 服务端可按需定向投放,分析人员难以复现。
阶段 4 — 载荷下载与解密
GET https://un***.cc/api/update?v=ceec64366c40(同样 20 次退避重试),得到加密载荷后用 _unwrapAsset 解密:
- AES-256-GCM;密钥 = SHA256(seed + SALT);IV=载荷前 12 字节;AuthTag=随后 16 字节;密文=剩余部分
- 解密结果即最终 PE 载荷(全程内存,不落盘);解密失败自动重下 3 次;用完将密文缓冲区填 0
阶段 5 — 内存反射加载执行(memload.js)
纯JavaScript通过bun:ffi绑定14个Win32 API(VirtualAlloc、VirtualProtect、LoadLibraryA、GetProcAddress、CreateThread、WaitForSingleObject、GetExitCodeThread、CloseHandle、FlushInstructionCache、RtlAddFunctionTable、SearchPathA、VirtualFree、SleepEx 等),实现完整反射式 PE 加载器:
- 校验 MZ/PE 头、机器类型 x64(0x8664),拒绝 .NET 程序集
VirtualAlloc申请 RWX 内存,复制 PE 头与各节区- 处理基址重定位(HIGHLOW/DIR64)
- 解析导入表 + 延迟导入表,LoadLibrary/GetProcAddress 修复 IAT(支持序号导入、SearchPathA 兜底 DLL 搜索)
- 按节区属性恢复内存保护;
RtlAddFunctionTable注册 SEH;FlushInstructionCache - 执行 TLS 回调
- 篡改 kernel32!ExitProcess 前 14 字节为
jmp ExitThread(FF 25 间接跳转),防止载荷退出时杀死宿主进程;执行完毕用_restoreEP恢复原字节 CreateThread在载荷入口点起线程,WaitForSingleObject等 90 秒,按退出码判断是否崩溃(0xC* 异常码);失败自动重试 5 次
阶段 6 — 结果回传与清理
将执行成败、加载器日志(阶段/错误码)、外网 IP、主机名\用户名再次加密 POST 到 /api/report,恢复 ExitProcess 字节,填零密钥缓冲区,process.exit(0) 退出。
家族归属分析
符合”银狐”(Silver Fox,常最终投递 Winos 4.0 / ValleyRAT 远控)投递链的典型特征:伪装正常安装包的大体积捆绑包、云端两段式(status→update)按需投放、反沙箱评分制、内存反射加载最终 RAT、中文黑产常用的 Bun/Node 打包 loader 手法。最终载荷由 C2 动态下发,本地不可得(本次审计时 C2 存活状态未验证),因此最终 RAT 家族无法仅凭磁盘样本确证,但 loader 基础设施与 TTP 与银狐系高度一致。
主要网络地址
(下面的表格须左右滑动查看)
| 类型 | 值 | 说明 |
| — | — | — |
| C2域名 | un***.cc | 解析至 Cloudflare |
| URL | https://un***.cc/api/status?v=ceec64366c40 | 状态/下发 seed |
| URL | https://un***.cc/api/update?v=ceec64366c40 | 下载加密载荷 |
| URL | https://un***.cc/api/report | 指纹与执行结果回传 |
(封面图片由ChatGPT生成,审计工作由Kimi K3完成)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:和子煦 《[软件审计]某疑似“银狐病毒”的软件分析》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


![[软件审计]某疑似“银狐病毒”的软件分析](/images/random/titlepic/2.jpg)






评论