jkdenuku/lua-deobfuscator-server

GitHub: jkdenuku/lua-deobfuscator-server

一个专门解密基于时间XOR加密的Lua混淆代码的工具,提供Python脚本和服务器API两种调用方式。

Stars: 0 | Forks: 0

# Lua XOR 基于时间的反混淆工具 此反混淆工具用于解密使用基于时间的 XOR 加密的 Lua 混淆代码。 ## 📋 支持的混淆模式 ``` local z={4,23,9,28,31,64,79,12,29,7,0,13,13,10} local k=_5() -- 時間ベースのキー生成 local o={} for i=1,#z do o[i]=_1(_4(z[i],k)) -- XOR復号化 end ``` ## 🚀 使用方法 ### 方法 1: Python 脚本 (推荐) ``` # ファイルから読み込み python3 lua_deobfuscator.py your_obfuscated_file.lua # スクリプトを編集してコードを直接貼り付け python3 lua_deobfuscator.py ``` ### 方法 2: 服务器设置 (用于 lua-deobfuscator-server) 1. 将 `server.json` 复制到您服务器的根目录 2. 启动服务器 3. 上传混淆后的 Lua 文件 ``` # サーバー起動 node server.js # API 端点 POST http://localhost:3000/deobfuscate Content-Type: application/json { "code": "return(function(...)...end)(...)" } ``` ## 🔧 工作原理 1. **提取加密数据**: 从 `local z={...}` 获取加密的字节数组 2. **尝试所有密钥**: 使用 0-255 所有可能的密钥尝试 XOR 解密 3. **评分**: 根据 Lua 关键字出现频率和可打印字符比例计算分数 4. **选择最佳结果**: 返回得分最高的结果 ## 📊 XOR 解密算法 ``` function xorDecrypt(byte, key) { let result = 0; for (let i = 0; i < 8; i++) { const a = (byte >> i) & 1; const b = (key >> i) & 1; if (a !== b) result |= (1 << i); } return result; } ``` ## ⚠️ 注意事项 - 基于时间的密钥在运行时动态生成,因此无法直接得知原始密钥 - 采用尝试所有可能的密钥 (0-255) 以找到最佳匹配的方式 - 如果加密的 payload 还经过了其他混淆,可能需要额外处理 ## 🛠️ 故障排除 ### 出现乱码时 原始代码中的 `{4,23,9,28,31,64,79,12,29,7,0,13,13,10}` 可能并非实际的 Lua 代码,而是另一层混淆的数据。 解决方案: 1. 检查实际运行时生成的字符串 2. 尝试对该字符串进行进一步解密 3. 如果是多阶段混淆,则需要逐步解密 ### 分数低 / 未找到结果 - 检查加密数据是否正确提取 - 可能与其他混淆技术结合使用 - 使用 verbose 模式查看详细日志 ## 📝 示例 ### 输入 (已混淆) ``` local z={4,23,9,28,31,64,79,12,29,7,0,13,13,10} local k=_5() local o={} for i=1,#z do o[i]=_1(_4(z[i],k)) end return _2(o) ``` ### 输出 ``` 🔑 Key: 97 📈 Score: 150 💻 Decrypted code: print('test') ``` ## 🔗 链接 - 原始仓库: https://github.com/jkdenuku/lua-deobfuscator-server - 问题反馈: GitHub 的 Issues 部分 ## 📄 许可证 本工具基于 MIT 许可证发布。 **创建日期**: 2025年2月15日 **支持环境**: Node.js 14+, Python 3.6+
标签:DAST, GNU通用公共许可证, Lua, MITM代理, Node.js, Python, rizin, XOR解密, 云安全监控, 云资产清单, 去混淆工具, 后端开发, 后端开发, 密码学, 恶意软件分析, 手动系统调用, 无后门, 时间基加密, 编程开发, 网络测绘, 脚本安全, 逆向工具, 逆向工程, 静态分析