metaworm / luac-parser-rs

lua bytecode parser written in Rust using nom, part of metaworm's lua decompiler, support lua51/lua52/lua53/lua54/luajit/luau https://luadec.metaworm.site/
https://luadec.metaworm.site/
204 stars 28 forks source link

反编译 遇到表达式计算,出现结果错误 #12

Closed xxoo886 closed 1 year ago

xxoo886 commented 1 year ago

luajit反编译 源 : print(160 160) print(170 170) print(180 180) print(190 190) print(200 * 200) 使用metaworm反编译结果: print(25600) print(28900) print(32400) print(429316) --正确结果 36100 print(932928) --正确结果 40000 似乎大于180 就会计算结果错误

同理:大于36100的值(具体值_未测试) ,直接反编译错误 源: print(36100) or print(40000) 反编译结果: print(429316) or print(932928)

metaworm commented 1 year ago

感谢反馈,已修复

xxoo886 commented 1 year ago

我直接使用 网页反编译,依然错误, 使用最新的parser编译成WASM载入到网页 然后反编译,整数结果还是错误

metaworm commented 1 year ago

更新出了点问题。。你再试试

xxoo886 commented 1 year ago

可以正常反编译整数值了, 还有一个问题, 网页反编译 一些luajit的时候 会一直转圈大概10秒 然后提示 Decompile timeout 是什么原因

metaworm commented 1 year ago

有些错误处理不是很完善,我刚刚修复了一些问题;你提供的这份luac现在可以正常显示反编译结果了,多刷新几次网页再试试

xxoo886 commented 1 year ago

还是数值问题,比如 print(var -150) 反编译结果是 print(var 4294967146)

metaworm commented 1 year ago

修了