cocos2d-luajit文件还原
最近对一款游戏的lua脚本提取,发现提取出来的脚本都是LJ格式的文件。如图:
image
在网上找了好几个工具都没什么用,最后在github找到了luajit-decomp-master,还原出来的伪代码基本能看懂,但是还是有残缺。如果不明确的逻辑和数据还是要结合ida动态调试。
可以看看效果原lua源码
function iter (a, i)i = i + 1local v = a[i]if v thenreturn i, vend
end
function ipairs (a)return iter, a, 0
end
经过luajit编译后的文件用16进制查看。
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
cocos2d-luajit文件还原相关推荐
- .dat文件还原数据库
.dat文件还原数据库可能遇到的问题: 提示物理文件名错误,请使用WITH MOVE选项来标示该文件的有效位置; 原因可能是备份文件原始路径跟你自己计算机的数据库路径不同,所以要用WITH ...
- 文件还原工具Foremost
文件还原工具Foremost 在数字取证中,通过对设备备份,可以获取磁盘镜像文件.通过分析镜像文件,可以获取磁盘存在的数据.但是很多重要数据往往已被删除.这个时候,就需要还原这些文件.Kali Lin ...
- .pyc文件还原.py文件_从镜像文件还原分区 (系统还原)
DOS工具箱是为2000系统以上系统加上纯DOS启动支持的工具,方便没有光软驱时全中文操作界面,已经预装有GHOST8.2版,支持NTFS分区软件在DOS下以虚拟磁盘存在以免去NTFS文件系统不能为D ...
- .bak 服务器备份文件,如何从SQL Server Management Studio中的多个备份(bak)文件还原数据库...
本文概述 在带有SSMS的SQL Server中, 还原数据库(至少对于小型数据库而言)非常容易.无论当前的原因是什么, 例如在生产环境中进行还原, 在本地环境中进行还原以检查数据库完整性等等, 你都 ...
- Oracle11使用现在数据库文件,oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库...
oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库 最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行.根据 ...
- Eclipse中使用GIT将文件还原至上一版本
GIT将文件还原至上一版本: 选中文件--右击--Replace With--HEAD Revision:
- 计算机文件打开方式这么还原,dat文件还原默认打开方式如何设置?还原默认打开方式的详细步骤...
随着电脑的使用率越来越高,我们有时候可能会遇到win10系统dat文件还原默认打开方式的问题,如果我们需要对win10系统dat文件还原默认打开方式进行设置时,要怎么处理呢?接下来小编就给大家带来wi ...
- mysql bak 还原数据库文件格式_Navicat操作SQL server 2008R2文件.bak文件还原
项目操作过程中,利用Navicat操作SQL Server2008R2数据备份,结果发现数据丢失了很多,不得不先对数据丢失部分进行差异对比,然后再重新输入. 1.利用Navicat导出的数据格式为sq ...
- html文件bak,轻松解包MIUI小米备份bak文件 还原出明文数据
轻松解包MIUI小米备份bak文件 还原出明文数据 1.将目标Bak备份数据拷贝到电脑端 小米MIUI手机备份后的文件会存放在手机存储下 /MIUI/backup/Allbackup/xxx 目录中( ...
- 将Texture Packer制作的.pvr.ccz和.plist文件还原为多个原图 -- 使用说明文档
1.准备 1.安装 TexturePacker 2.安装python 3.安装Pillow-2.1.0.win-amd64-py2.7.exe 2.PVR转PNG.bat的使用 把 xx.plist和 ...
最新文章
- SpringBoot第十四篇:在springboot中用redis实现消息队列
- 如何将代码优雅的放在WORD文档中?
- 无法安装软件之解决其一 (windows installer服务篇)
- 苹果html抓包,苹果被开发者“抓包”违反了自己定的规则
- WP Rocket插件无需授权版本
- 排序算法之归并排序(JAVA)
- 程序员的黑科技_用代码回复博客
- 用SoapUI进行WebService接口测试
- [论文翻译] Active Learning by Feature Mixing
- java 找出调用的方法_如何找到用Java调用给定方法的所有方法?
- STC单片机 命名规则,最小系统 图示
- iOS 的TextView的常规用法
- MySQL报错113_连接 MySQL 报错'NoneType' object has no attribute '__getitem__'
- java实习计划_JAVA实习计划及指导书.pdf
- php 读取 日文文件名,PHP文件上传-处理阿拉伯文/中文/日文文件名
- kindle的xray怎么用_kindle的x-ray有什么用
- 台式计算机 如何组装,如何自行组装台式计算机?组装台式计算机主机的教程...
- 预算少怎么做ASO优化?
- Android addview—动态添加view
- Log4j史诗级漏洞,我们这些小公司能做些什么?