首页
社区
课程
招聘
[求助]LUA自定义虚拟机
发表于: 5天前 592

[求助]LUA自定义虚拟机

5天前
592

像这种自定义虚拟机的代码,能还原出来吗


  1. 将原始 Lua 代码编译为自定义的字节码(或通过工具转换为特定指令集)。

  2. 对字节码进行压缩(如 LZ77)和编码(如 Base36),得到字符串 a

  3. 运行时通过自实现的虚拟机(即此段代码)解码、解压缩字节码,并逐条解释执行指令,还原原始逻辑。



传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 5天前 被mb_aicyioze编辑 ,原因:
上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 4579
活跃值: (8086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
估计很难,估计得先还原lua虚拟机然后再还原lua代码,这工作量不是一般的大。
5天前
0
雪    币: 104
活跃值: (7074)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
直接混淆了 看个蛋蛋
5天前
0
雪    币: 546
活跃值: (1315)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
模拟运行吧 纯逆我估计人得死
5天前
0
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
fanfall 模拟运行吧 纯逆我估计人得死
怎么模拟运行啊,这还能修改内容吗
5天前
0
雪    币: 4579
活跃值: (8086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
方法一,先用同样版本的lua或者非官方的其他语言的lua实现运行一下,看看报啥错,然后根据报错缺失的OP,在同版本的lua源码或者非官方的其他语言的lua实现的源码里加上OP和OP可能对应的处理代码。方法二hook要修改游戏的lua运行的函数然后丢进去运行。
5天前
0
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
可以运行,但是我想改里边的代码呢,现在这样子改不了
5天前
0
雪    币: 4579
活跃值: (8086)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mb_aicyioze 可以运行,但是我想改里边的代码呢,现在这样子改不了
理论上来说你可以把编译的lua二进制反编译成lua汇编然后改lua汇编,之后再编译回去。
5天前
0
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
微启宇 理论上来说你可以把编译的lua二进制反编译成lua汇编然后改lua汇编,之后再编译回去。
现在这混淆的没办法搞成字节码都。。
5天前
0
雪    币: 11087
活跃值: (8355)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
非高价值劝你放弃,需要对lua非常了解才能解决问题,
需要了解目标程序准确使用了哪个lua版本
挂钩lua_loadbuffer   提取出lua字节码

然后下载目标lua版本,逆向出目标程序魔改了哪些lua结构和函数内容,同步到开源lua中
再找一个牛逼的 luac还原lua  的开源项目
再还原lua代码。而且部分lua使用源码级混淆。
这种难度我觉得是很高的,至少目前没有找到轻松解决lua还原问题。如果有大佬有更轻松的方法 求求扫盲
4天前
0
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
mudebug 非高价值劝你放弃,需要对lua非常了解才能解决问题, 需要了解目标程序准确使用了哪个lua版本 挂钩lua_loadbuffer 提取出lua字节码 然后下载目标lua版本,逆向出目标程 ...
大佬,就是比如我 运行1.lua,  1.lua里边加载了2.lua  2.lua 里边又加载了3.lua, 怎么能用在1.lua里写一个HOOK,能把后边加载的lua里边的运行内容打印出来吗,比如说init("111111","2222222") 我想把这命令用1.lua 去HOOK出来
4天前
0
雪    币: 11087
活跃值: (8355)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
mb_aicyioze 大佬,就是比如我 运行1.lua, 1.lua里边加载了2.lua 2.lua 里边又加载了3.lua, 怎么能用在1.lua里写一个HOOK,能把后边加载的lua里边的运行内容打印出来吗,比如说 ...
可以的。lua自带钩子,sethook 做一个回调可以实现单步 call 钩子之类,但是前提依然是你非常了解lua执行,因为需要操作lua堆栈
4天前
0
雪    币: 68
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
mudebug 可以的。lua自带钩子,sethook 做一个回调可以实现单步 call 钩子之类,但是前提依然是你非常了解lua执行,因为需要操作lua堆栈
这该怎么写啊,不是全用的lua底层的,是一个软件 用lua语法写东西的..
4天前
0
游客
登录 | 注册 方可回帖
返回