首页
社区
课程
招聘
[原创]用 Lua 简单还原 OpCode 顺序
发表于: 2019-4-4 14:44 33574

[原创]用 Lua 简单还原 OpCode 顺序

2019-4-4 14:44
33574
收藏
免费 18
支持
分享
打赏 + 50.00雪花
打赏次数 1 雪花 + 50.00
 
赞赏  wx小白   +50.00 2020/07/20
最新回复 (45)
雪    币: 639
活跃值: (1192)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
26

想21楼说的,对于非明文加载就有问题。


test_.lua 为明文

test_my,lua 为目标执行后结果

test_old.lua 为obf-lua_5.1.5.exe 执行结果。

上传的附件:
2020-9-11 13:45
0
雪    币: 991
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
标记下
2020-10-26 13:04
0
雪    币: 991
活跃值: (215)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
28

不错,值得学习!

最后于 2020-10-26 19:54 被wenboly编辑 ,原因:
2020-10-26 14:09
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
29

大佬 麻烦问下  我跑通了你的这个程序 结果出来了  怎么用呢?   opcode的值怎么用》在线求大佬解答。而且我这个怎么还有超过37的呢?

2020-12-12 13:00
0
雪    币: 222
活跃值: (488)
能力值: ( LV11,RANK:188 )
在线值:
发帖
回帖
粉丝
30
思路骚啊!
可以使用luadec的all-opcode.lua
luadec5.2\luaopswap.exe  -lua 
2020-12-20 14:23
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
31
大佬能留个联系方式吗,有事请教
2021-3-5 08:36
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
32
老哥
2021-3-5 15:16
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
33
老哥想加你一下请教,2072984786这是我的QQ,有偿,谢谢老哥
2021-3-9 15:52
0
雪    币: 1042
活跃值: (580)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
34
目录下面的obf-lua_5.1.5.exe  跟 lua_5.1.5.exe 有什么区别,我要改成 lua 5.2.3 怎么弄?
2021-4-18 01:26
0
雪    币: 187
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
35
目标程序的string.dump函数被抹掉了 要咋整呢
2022-11-29 14:47
0
雪    币: 2620
活跃值: (1965)
能力值: ( LV8,RANK:121 )
在线值:
发帖
回帖
粉丝
36
感谢大佬的启发。另外想问下,如果lua虚拟机被集成到exe中了(而不是dll),我找到了对应的函数,应该如果调用这个函数呢?dump汇编不太现实。
2023-8-29 21:21
0
雪    币: 3894
活跃值: (31111)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
37
感谢分享
2023-8-30 09:08
1
雪    币: 2620
活跃值: (1965)
能力值: ( LV8,RANK:121 )
在线值:
发帖
回帖
粉丝
38
iyzyi 感谢大佬的启发。另外想问下,如果lua虚拟机被集成到exe中了(而不是dll),我找到了对应的函数,应该如果调用这个函数呢?dump汇编不太现实。
自答,集成到exe中的lua函数可以通过远程注入一个dll来调用,我已经实现了一个能用的demo,后面如果有师傅需要可以喊我。
2023-8-31 10:39
1
雪    币: 1558
活跃值: (3710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
39
我来回答,string.dump的本质是lua底层的C函数
__int64 __fastcall luaU_dump(
        lua_State *L,
        const Proto *f,
        int (__fastcall *w)(lua_State *, const void *, unsigned __int64, void *),
        void *data,
        int strip)
只要找到这个函数,就能找到string.dump,如果string.dump被抹掉,可以考虑自己把dump注册上去
例子local key = _G.print
我的场景是UE unlua把print改成unlua print,我自己写了个函数,把print指向了customprint

楼主思路很风骚.理解了他的思想,可以通杀大多数游戏

2024-5-12 19:01
0
雪    币: 19
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
40
很强
2024-6-12 20:27
0
雪    币: 2
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
41
貌似5.4版本的有问题
2024-12-5 16:59
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
42
qj111111 我来回答,string.dump的本质是lua底层的C函数 __int64 __fastcall luaU_dump( lua_State *L, const P ...
通杀不了,那是没遇到过把luaY_parser抹掉的游戏,建议亲手逆一下梦幻西游手游,学习一下它的保护流程。楼主这个还没遇到对手而已
2024-12-6 19:34
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
43
龙乎 通杀不了,那是没遇到过把luaY_parser抹掉的游戏,建议亲手逆一下梦幻西游手游,学习一下它的保护流程。楼主这个还没遇到对手而已
而且网易这一套lua保护流程都是20年前的产物了,更先进的保护方案只是都没遇到而已
2024-12-6 19:35
0
雪    币: 1558
活跃值: (3710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
44
mb_gampkvnl 貌似5.4版本的有问题
必然有问题,要理解思路自己修
2024-12-7 05:39
0
雪    币: 1558
活跃值: (3710)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
45
龙乎 而且网易这一套lua保护流程都是20年前的产物了,更先进的保护方案只是都没遇到而已
xxtea是吧
最近也看了很多lua方案,比如三角洲
改opcode 混淆都上了,贼难
不过luadump没有处理掉
2024-12-7 05:42
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
46
qj111111 xxtea是吧 最近也看了很多lua方案,比如三角洲 改opcode 混淆都上了,贼难 不过luadump没有处理掉
opcode混淆没什么用的,业界通常做法就是把lua源码的字符串全部抹掉,让你无法定位关键函数,然后关键函数再vm掉,例如luaV_xxx,lua_xxx,这样你不脱壳压根定位不到函数去还原op,最后再把明文加载接口抹掉。可以参考逆水寒手游的做法
2024-12-17 17:51
0
游客
登录 | 注册 方可回帖
返回
// // 统计代码