38029-vm/verify_syntax.py
Flatlogic Bot d2c45727f6 19:32
2026-01-31 18:32:21 +00:00

57 lines
1.5 KiB
Python

from core.obfuscator import obfuscate
import re
test_cases = [
"""
local a = 10
print(a)
""",
"""
game:GetService("Players").LocalPlayer:Kick("Test")
""",
"""
return 123
""",
"""
x = 5
x = x + 1
print(x)
""",
"""
local t = {a = 1}
t.a = 2
print(t.a)
"""
]
def check_syntax(lua_code):
# Basic check for balanced quotes and parens in the generated code
# Also check for the specific patterns we fixed
if "''" in lua_code and "(''" not in lua_code: # Check for the fixed inst_b64 part
# Note: ('' is fine for DEC function call if it was meant to be that, but we changed it to (')
pass
# Check for "task and task.spawn or spawn(" without surrounding parens
# Our fix: (task and task.spawn or spawn)(...
if "task and task.spawn or spawn(" in lua_code:
if "(task and task.spawn or spawn)(" not in lua_code:
return False, "Missing parentheses around SPW"
# Check for empty string (failed obfuscation)
if not lua_code.strip():
return False, "Empty output"
# Check for error comments
if "-- Obfuscation Error" in lua_code:
return False, "Obfuscation Error detected"
return True, "OK"
for i, code in enumerate(test_cases):
obfuscated = obfuscate(code)
success, msg = check_syntax(obfuscated)
print(f"Test {i}: {success} - {msg}")
if not success:
print(f"Code: {code}")
print(f"Obfuscated snippet: {obfuscated[:200]}...")