Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
J

Jsjiemi

> 编程语言
Open source

基于正则匹配的 JavaScript 解密工具。请务必遵守开源协议,不得用于非法或商业用途。

719 stars0 likes1 views
WebsiteGitHub

About

基于正则匹配的 JavaScript 解密工具。请务必遵守开源协议,不得用于非法或商业用途。

Jsjiemi

[!IMPORTANT] 本项目不再维护,出于以下多方面的考虑:

  • 用于执行代码的 vm2 库因无法解决的安全问题停止维护,这个解密器可能不再安全。
  • 使用垃圾加密工具的人越来越少了,Jsjiemi 也完成了它的使命(抵制恶心人的垃圾加密工具)。
  • 目前正在开发其它开源项目,没有足够的时间和精力维护。

Jsjiemi 是一款基于正则匹配的 JavaScript 解密工具。旨在提供一个简易的检测手段,以便评估您所使用的加密工具是否具备足够的安全性。倘若您的代码在经过加密处理后能被成功解密,则代表该加密工具不具有有效的代码保护能力。

远程仓库

仓库总是由 同步至 ,同步可能会有延迟。

解密效果

源代码

function cancelMacWithUserNameAndMac(userId, userMac, trid) {
	var test = confirm("关闭无感认证后,只能在设备本机上再次开启!");
	if (test) {
		AuthInterFace.cancelMacWithUserNameAndMac(userId, userMac, function (data) {
			if (data.result == 'success') {
				//$("#"+trid).hide();
				//$("#autoMacNumTip").html($("#autoMacNumTip").html()-1);
				var userIndex = getQueryStringByName("userIndex");
				AuthInterFace.freshOnlineUserInfo(userIndex, function (freshOnline) {
					getTime = 1;
					fillData();
				});
			} else {
				alert(data.message);
			}
		});
	}
}

加密后

已省略全局解密函数

为方便对比已进行格式化处理

…

解密后

为方便对比已进行格式化处理

function cancelMacWithUserNameAndMac(_0x1437f8, _0x17c421, _0x18daca) {
	var _0x3c08d6 = confirm('关闭无感认证后,只能在设备本机上再次开启!');
	if (_0x3c08d6) {
		AuthInterFace.cancelMacWithUserNameAndMac(_0x1437f8, _0x17c421, function (_0x2380dc) {
			if (_0x2380dc.result == 'success') {
				var _0x36923d = getQueryStringByName('userIndex');
				AuthInterFace.freshOnlineUserInfo(_0x36923d, function (_0x5c66cc) {
					getTime = 1;
					fillData();
				});
			} else {
				alert(_0x2380dc.message);
			}
		});
	}
}

功能介绍

  • 解除全局加密
    • 还原类似 _0x51f5('7', 'Ik*@') 的加密内容。
  • 解除代码块加密
    • 还原代码块中被统一收集的字符串及运算符。
  • 清理死代码(花指令)
    1. 清理仅包含常量字符串判断的 if 语句。
    2. 还原使用 switch...while 打乱顺序执行的语句。
  • 解除环境限制
    1. 解除 禁止控制台调试 限制。
    2. 解除 禁止控制台输出 限制。
    3. 解除 防止格式化 限制。
    4. 解除 安全域名 限制。
  • 提升代码可读性
    1. 合并串联字符串('spl'+'it' → 'split')
    2. 转换十六进制数字(0xf → 15)
    3. 替换索引器(Object['keys'] → Object.keys)
    4. 转换Unicode字符(\x22 → ")
  • 格式化代码
    1. 将代码根据语句进行简易的代码缩进。
    2. 因能力有限且类似工具颇多,不做更多的优化和处理。

使用须知

  • 解密文件中必须有且仅有通过某些特定的加密器加密的 JavaScript 代码(允许经过简单的格式化),解密前请将无关代码(如 HTML 的``标签或与加密脚本相关的非加密上下文)移除。
  • 某些特殊情况下,解密无法一次完成,可能需要使用不同的配置进行多次解密。
  • 注释和局部变量名在代码压缩、混淆的过程中已经丢失或被篡改,无法还原。
  • 在不安装依赖的情况下解密器将会使用 Node.js 内建的 vm 模块。若你无法安装依赖,请不要用于解密不可信的 JavaScript 文件。

使用方法

值得注意的是,请务必确保 config.json 文件存放在运行脚本时所在的文件夹(而不是解密器所在的文件夹,虽然它们通常是相同的)。

  1. 运行 npm install 。(可选,安装依赖后解密更安全)
  2. 根据需求在 config.json 中自定义配置。
  3. 运行 Jsjiemi.js 。

输出结果

每一解密步骤完成后,解密器都会输出一个结果文件。

你可以根据你的需求从以下结果中选择一个作为最终解密结果。

支持通过配置文件修改输出文件的位置和命名格式。

  • JsjiemiResult0.js:净化代码
  • JsjiemiResult1.js:解除全局加密
  • JsjiemiResult2.js:解除代码块加密
  • JsjiemiResult3.js:清理死代码(花指令)
  • JsjiemiResult4.js:解除环境限制
  • JsjiemiResult5.js:提升代码可读性
  • JsjiemiResult6.js:格式化代码

问题反馈

  • 已停止维护,不再接受问题反馈。

免责声明

  • 本工具仅供用户解密自己的代码以评估安全性或用于学习目的。
  • 请严格遵守开源协议,严禁将本工具用于非法或商业用途。
  • 如因使用不当造成的任何法律责任,由使用者自行承担。()

不太感谢

JetBrains 说我咕太久,不给我 License 用了。 :(

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

JavaScriptdecryptorjavascriptjsjiemi

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言