cocos2dx luajit_如何还原文件打开方式

cocos2dx luajit_如何还原文件打开方式最近对一款游戏的lua脚本提取,发现提取出来的脚本都是LJ格式的文件。如图:image在网上找了好几个工具都没什么用,最后在github找到了luajit-decomp-master,还原出来的伪代码基本能看懂,但是还是有残缺。如果不明确的逻辑和数据还是要结合ida动态调试。可以看看效果原lua源码functioniter(a,i)i=i+1…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

最近对一款游戏的lua脚本提取,发现提取出来的脚本都是LJ格式的文件。如图:

4121383-4e66daf58910774e

image

 

在网上找了好几个工具都没什么用,最后在github找到了luajit-decomp-master,还原出来的伪代码基本能看懂,但是还是有残缺。如果不明确的逻辑和数据还是要结合ida动态调试。

可以看看效果原lua源码

function iter (a, i)
 i = i + 1
  local v = a[i]
    if v then
      return i, v
    end
end
function ipairs (a)
    return iter, a, 0
end

经过luajit编译后的文件用16进制查看。

4121383-ef61d9f0beb981a9

image

 

然后经过我们的luajit-decomp 解析后的结果

function randomFunction iter (INPUT_VAR_0_,INPUT_VAR_1_)
var_0_1 = INPUT_VAR_1_ +  1 --var_0_1 NUMBER-NUMBER
if unknown0 then
--jump to 0008 (if previous if statement is false) --0008 JMP-JMP
var_0_3 = var_0_1
var_0_4 = unknown0
return var_0_3, var_0_4
end
return
end
function randomFunction ipairs (INPUT_VAR_0_)
var_1_2 = INPUT_VAR_0_
var_1_3 = 0 --var_1_3 NUMBER-NUMBER
return iter, var_1_2, var_1_3
end
function someFunc2()
local randomFunction0 = function() end -- starts at  test.lua:0
iter = randomFunction0
local randomFunction1 = function() end -- starts at  test.lua:0
ipairs = randomFunction1
return
end

luajit-decomp的使用方法:
1.需要LuaJIT-2.1.0-beta2编译成功,编译的资料很多可以查查,我是直接用目录下的msvcbuild.bat编译出来的。
2.把LuaJIT-2.1.0-beta2目录下的jit文件,luajit.exe,lua51.dll,3个文件复制到luajit-decomp-master目录下。
3.把要解析的目标文件改为test,例如:test.lua。也可以修改decoder_new.au3里面的内容自定义文件名。
4.运行目录下的decoder_new.exe,产生一个分析结果文件out.lua可以直接打开查看。

luajit-decomp目录下有decoder.exe,decoder_new.exe两个可执行文件,我觉得decoder_new.exe解析出来的结果更接近源码。
下载:
luajit-decomp:https://github.com/bobsayshilol/luajit-decomp
luajit:http://luajit.org/download/LuaJIT-2.1.0-beta2.zip

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188239.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 创新与项目管理_创新与创业管理

    创新与项目管理_创新与创业管理值此新商业时代,作为组织内保证所有项目成功交付,支撑组织战略目标实现的PMO,在现代企业管理和商业运作中将扮演着十分重要的角色。现阶段,虽然PMO随着项目管理的普及和深入应用,已经成为组织项目管理发展的新趋势,但是它在迎来新的发展机遇的同时也面临着不小的挑战,其PMO管理能力与水平的高低将决定它自身在支撑组织战略中的价值程度。为进一步加强PMO人士之间的广泛交流,分享成功的PMO运作实践,促进…

    2022年8月31日
    1
  • Godaddy域名与空间解析教程(全)「建议收藏」

    Godaddy域名与空间解析教程(全)「建议收藏」最近忙着开自己的独立博客,既然以后是打算从事外贸相关的电子商务,我打算从Godaddy下手学习外贸空间的选择。1.购买Godaddy,为什么选狗爹,便宜、稳定、再加上可以用支付宝,省去代购的繁琐。这

    2022年8月5日
    4
  • Android Deeplink配置

    Android Deeplink配置Deeplink启动应用配置注意事项1.Deeplink格式说明  Deeplink是目前使用广告跟踪非常热门的一种方式,Deeplink的链接类型一般是schema://host/path?params样式。2.为接收Deeplink配置intent-filter  在Android设备中,点击Deeplink后可以打开指定应用,为了能够正确定位到需要打开的应用,并正…

    2022年6月15日
    61
  • 树莓派连接wifi教程[通俗易懂]

    树莓派连接wifi教程[通俗易懂]第一种方法:如果你已经连接了VNC图形界面,就像手机电脑一样点击wifi的图标找到你的wifi输入密码就行第二种方法:如果登录了putty1.输入sudonano/etc/wpa_supplicant/wpa_supplicant.conf2.在尾部添加network={ssid=""psk=""}引号内容SSID是你的无线名称PSK是你的无线密码无线名称不能是中…

    2022年4月28日
    355
  • Python if用法_if语句的用法例子

    Python if用法_if语句的用法例子if语句的语法及其实例等…..

    2022年9月26日
    0
  • 矩阵的投影矩阵_正交投影矩阵的性质

    矩阵的投影矩阵_正交投影矩阵的性质线性代数基础知识(上)线性代数基础知识(下)广义逆矩阵投影矩阵投影的定义投影矩阵求法性质投影矩阵的应用从投影角度看广义逆从投影角度看最小二乘。。。投影的定义什么是投影?下图给出了投影的直观理解:如图是在R3R^3R3空间中,一条直线lll与一个平面α\alphaα相交,向量zzz是R3R^3R3中的一个向量。把lll看成是一束光(方向从上到下),光…

    2022年10月5日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号