文章总结: InvisibleJS利用零宽度Unicode字符将JavaScript代码隐写到空白文件,运行时通过极小引导加载器解码执行,支持CommonJS与ES模块两版CLI,已引发对Node.js与Web环境隐蔽恶意加载及检测绕过风险的担忧。 综合评分: 78 文章分类: 恶意软件,免杀,安全工具,代码审计,威胁情报
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 模块隐藏在空文件中》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论