InvisibleJS工具使用零宽度隐写术将可执行ES模块隐藏在空文件中

admin 2026-01-23 12:16:43 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: InvisibleJS利用零宽度Unicode字符将JavaScript代码隐写到空白文件,运行时通过极小引导加载器解码执行,支持CommonJS与ES模块两版CLI,已引发对Node.js与Web环境隐蔽恶意加载及检测绕过风险的担忧。 综合评分: 78 文章分类: 恶意软件,免杀,安全工具,代码审计,威胁情报


cover_image

InvisibleJS 工具使用零宽度隐写术将可执行 ES 模块隐藏在空文件中

TtTeam

2026年1月22日 15:18 海南

InvisibleJS 是一款新的开源工具,它使用不可见的零宽度 Unicode 字符来隐藏 JavaScript 代码,这引发了人们对恶意软件活动中潜在滥用行为的担忧。

InvisibleJS 由开发者 With alias oscarmine 托管在 GitHub 上,它利用隐写术将源代码嵌入看似空白的文件中。该过程将 JavaScript 代码转换为二进制字符串,将 0 映射到零宽度空格 (U+200B),将 1 映射到零宽度非连接符 (U+200C)。

一个小型引导加载程序会在运行时解码并运行隐藏的有效载荷,使得代码在 VS Code 等编辑器中肉眼不可见。

两种版本,适用于不同环境

该存储库提供版本 1(经典版,带 eval),非常适合 CommonJS 和旧版 Node.js 设置,原生支持 require 和 module.exports。

版本 2(现代导入)以 ES 模块为目标,使用动态 await import() 进行顶级 await 和导出,但它需要 .mjs 文件或“type”: 模块配置。

通过命令行界面 (CLI) 隐藏代码非常简单:

版本 1:node hideV1.mjs -i input.js -o hidden.js版本 2:node hideV2.mjs -i input.js -o hidden.js

执行 node hidden.js命令后,尽管界面显示空白,但仍然会产生正常的输出。

这项技术与 2018 年出现的零宽度 JavaScript概念验证技术类似,如今已被用于网络钓鱼攻击。攻击者滥用类似的 Unicode 混淆技术,使用韩文字符表示二进制文件,从而在脚本中隐藏有效载荷,绕过带有反调试检查的扫描器。

InvisibleJS 可能会放大此类威胁,使 Node.js 环境或 Web 应用程序中的隐蔽恶意软件加载器成为可能,从而使威胁检测变得更加复杂。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:TtTeam 《InvisibleJS 工具使用零宽度隐写术将可执行 ES 模块隐藏在空文件中》

你在说什么 网络安全文章

你在说什么

文章总结: 本文档包含你在说什么的标题及Khan安全团队署名,附有图片占位符但无实际技术内容或详细描述。由于文本信息极度匮乏,缺乏核心安全要点、技术细节或可操作
评论:0   参与:  0