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

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

2019-4-4 14:44
32001
收藏
免费 18
支持
分享
打赏 + 50.00雪花
打赏次数 1 雪花 + 50.00
 
赞赏  wx小白   +50.00 2020/07/20
最新回复 (39)
雪    币: 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
活跃值: (195)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
27
标记下
2020-10-26 13:04
0
雪    币: 991
活跃值: (195)
能力值: ( 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
雪    币: 242
活跃值: (473)
能力值: ( 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
活跃值: (500)
能力值: ( 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
雪    币: 3059
活跃值: (30876)
能力值: ( 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
活跃值: (3442)
能力值: ( 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
游客
登录 | 注册 方可回帖
返回
//