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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • transactionscope mysql_TransactionScope 的基本原理简介

    transactionscope mysql_TransactionScope 的基本原理简介C#的事务编程1Db事务DbConnection中创建基于当前连接的DbTransaction2使用TransactionScope,创建环境事务一旦创建,在这个环境包含的DbConnection实例都会根据连接字符串中的Sqlserver连接字符串支持,是否自动附加当前环境事务.连接字符串关键字(Enlist)SqlConnection.ConnectionString属性…

    2022年7月19日
    12
  • UVM概述及uvm_component和uvm_object(一)

    UVM概述及uvm_component和uvm_object(一)UVM UniversalVer 通用验证方法学 UVM 是建立在 systemverilo 平台上的一个库 提供了一系列的接口 让我们能够更方便的进行验证 验证平台组成 Driver 用来把不同的激励施加给 DUT Monitor 用来检测 DUT 的输出 Scoreboard 专门用来比较期望值与 monitor 检测到的 DUT 输出 Refer

    2025年7月14日
    0
  • clion2021激活码(注册激活)

    (clion2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlbnNlSWQiOi…

    2022年3月20日
    85
  • mysql json decode_json_decode函数详解

    mysql json decode_json_decode函数详解json_decode是php5.2.0之后新增的一个PHP内置函数,其作用是对JSON格式的字符串进行编码.那么这个函数该如何使用呢?json_decode的语法规则:json_decode(string$json[,bool$assoc=false[,int$depth=512[,int$options=0]]])json_decode接受一个JSON格…

    2022年7月17日
    41
  • nchar,char,varchar与nvarchar区别「建议收藏」

    nchar,char,varchar与nvarchar区别「建议收藏」nchar,char,varchar与nvarchar区别

    2022年4月24日
    78
  • FileInputStream路径「建议收藏」

    FileInputStream路径「建议收藏」最近在整理之前的项目时遇到的一个问题,关于FileInputStream的路径无法确定的一个小问题。在网上找了一堆方法,自己也尝试了之后发现,用下面的代码查看一下当前的路径再确定String中应该写什么路径。System.out.println(newFile(“.”).getAbsolutePath());…

    2022年5月9日
    157

发表回复

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

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