还原lua符号

首先获得lua的版本。 image.png

知道了是lua5.1.4后,考虑如何编译。 先尝试两种方案吧,在linux上利用mingw工具链编译一次dll,在windows利用vs的vc工具链编译一次dll,两个dll都把符号push到lumina服务器上,然后到时候再把符号拉下来看看效果(因为不同工具链编译出来的机器码不同,只能多试)

一开始我是在linux上编译的windows的dll,发现最后符号识别的很不行。大概只能识别到图中的这几个函数。 image.png

后来突然想到用工具看看dontstarve_steam_x64.exe是用什么工具构建的。 image.png

然后又整了个vs2008编译个lua的dll试试看。 还是有一些函数还原不出来。 image.png

比如luaL_loadfile,luaL_loadbuffer这种重要函数都没有识别出来,也很正常,因为可能klei自己改了点代码,可以根据字符串手动识别一下,都不是大问题。 image.png

2023.2.26 一开始我是在windows server2008编译的lua5.1的dll,后来那台机子没了。我又发现CheatEngine也是用的lua5.1。直接在自己的机子上编译CE的lua项目。 image.png 但是使用的是新的工具链,效果不好,用bindiff试试看。 image.png bindiff也一般。

1