什么是JIT
JIT = Just In Time即时编译,是动态编译的一种形式,是一种优化虚拟机运行的技术。
程序运行通常有两种方式,一种是静态编译,一种是动态解释,即时编译混合了这二者。
lujit运行过程:
解题:
得到一个.out 文件,电脑识别成Wireshark 系列文件,拉入WinHex会发现是.LJ开头,可以推断是Luajit逆向。
先编译LuaJit2.1.0Beta3
去官网下载
运行x64 Native Tools Command Prompt for VS (用Everything搜索),
然后将下载的安装包解压到相应的盘下,然后进入解压后的SRC文件
msvcbuild.bat gc64编译出的64位(题目的64位
msvcbuild.bat编译出的是32位
反编译
bobsayshilol/luajit-decomp at deprecated (github.com)
下载反编译工具
然后将上一步src文件夹里面jit文件夹,和lua51.dll luajit.exe 放到刚刚下载的反编译工具文件夹里面
然后将我们的题目附件改名为test.lua,再按下decoder_new.exe该文件就出现了out.lua和out2.lua
用sublime打开,就可以开始分析字节码了
未完待续。。