一:开篇引言
1.游戏整体难度不大,中度偏下
2.数据结构涉及到了【二叉树】【数组】,目前没有发现有链表,都是一些很简单的数据结构,什么变态二字就没有沾边。
3.该游戏可以使用游戏的LUA也可以使用内存,对于有LUA接口的来说肯定更愿意使用LUA咯,但是后面发现有些检查,封包内存还是会用的,配合使用。
4.不得不说自动登录和自动创建角色用LUA是真的爽;
5.如图:这个DLL就是天龙怀旧的LUA。
6.
二:接下来就是如何找天龙LUA lua_dostring
1.开游戏!上OD!附加走起…如果不会LUA就先补补这方面知识,这里暂且默认你会了
3.有LUA肯定我们就要bp lua_dostring 找这个LUA函数
6.很显然就是 ctrl+F9 F9返回上一层 基本操作
7.直接看到了lua_dostring 没错 就是这么简单
8.
9.找到了这个函数 我们分析下参数
10.F2下断 触发断点
11.
12.看到ecx ebx都是lua 相关的字符串
13.
14.为什么是2个呢?明明上面我们看到只是push ecx,肯定是因为下面用啦
15.看这里
16.
17.调用天龙LUA 这2个字符串都要使用而且注意顺序
18.先环境 再 函数
19.有点类似C++ 类的 this指针和 成员函数 的关系(说的很明白了)
20.
三:如何使用和测试天龙LUA同时还需要知道其他更多的LUA
1.天龙这LUA全是明文,所以不需要你解密了 直接HOOK干!
2.选择一个HOOK 点
3.这里我写了一个HOOK工具 ,啥也不说先看效果,注入DLL
5.HOOK开始
7.会看到很多LUA命令 都是明文的
8.这里测试下某个命令,随便一个点击控件
9.截获到
11.接下来测试下这个命令是否可以直接使用 复制粘贴 命令进行测试
12.
13.发现来到了 输入账号界面 测试成功 这个功能能用
14.
15.其他功能 同理
四:如何在代码中实现调用游戏LUA
1.明白了上面的原理,这里就很简单了
2.之前说过游戏LUA全在luaplus.dll中,这里就可以直接在游戏进程中获取这个模块句柄也就是模块首地址,
3.利用DLL导出函数查看器,查看lua函数的偏移,如图所示:
会看到很多lua函数接口这里包括了原生的和游戏官方自己封装的
4.我们需要找的就是类似lua_dosting这种,为了还执行我们上面HOOK出来的字符串
5.下面贴一些我写的代码,如何获取
7.得到了函数地址,就很简单了,直接调用,传参数也就是字符串,。这里还要注意状态机是游戏的不是我们自己的NEW的,要区别对待。
8.调用代码如下
9.
10.切记!游戏进程中调用(DLL注入)和 需要游戏的状态机指针,这个状态机可以在上lua_dosting hook点那个参数找来源,其实就是第一个参数
11.
12.好了基本差不多了。总体来说说这游戏LUA很简单
13.我们OD界面 右键查看参考字符串 也可以看到很多LUA函数字符串的样式,如果你熟悉LUA就知道这些全是在注册函数,那么你懂的。
交流群:285530835