码龄10年 暂无认证

34152
访问
1
等级

8
获赞
3
评论

最新评论

  • 20240228阿⑤

    积分乍获得

  • 20231124ziher

    666

  • 20230909八月老师

    什麼時候發佈易語言支持庫呢

二.某龙端游中LUA的分析和调用

admin 2023-04-24 23:16:37 发布 1539

分类专栏: 文章标签:

一:开篇引言

1. 游戏整体难度不大,中度偏下


2. 数据结构涉及到了【二叉树】【数组】,目前没有发现有链表,都是一些很简单的数据结构,什么变态二字就没有沾边。


3. 该游戏可以使用游戏的LUA也可以使用内存,对于有LUA接口的来说肯定更愿意使用LUA咯,但是后面发现有些检查,封包内存还是会用的,配合使用。


4. 不得不说自动登录和自动创建角色用LUA是真的爽;


5. 如图:这个DLL就是天龙怀旧的LUA。


二:接下来就是如何找天龙LUA lua_dostring

 

1. 开游戏!上OD!附加走起…如果不会LUA就先补补这方面知识,这里暂且默认你会了

2. 查看游戏主模块


3. 有LUA肯定我们就要bp lua_dostring 找这个LUA函数


4. 下断点


5. 下断,游戏随意操作就断在了函数头部


6. 很显然就是 ctrl+F9 F9返回上一层 基本操作


7. 直接看到了lua_dostring 没错 就是这么简单


8. 观察汇编


9. 找到了这个函数 我们分析下参数


10. F2下断 触发断点


11. 发现这个CALL


12. 看到ecx ebx都是lua 相关的字符串


13. 观察字符串信息


14. 为什么是2个呢?明明上面我们看到只是push ecx,肯定是因为下面用啦


15. 看这里


16. 2处字符串的来源对应的汇编块


17. 调用天龙LUA 这2个字符串都要使用而且注意顺序


18. 先环境 再 函数


19. 有点类似C++ 类的 this指针和 成员函数 的关系(说的很明白了)


20. 2条字符串分别代表的意思解析


三:如何使用和测试天龙LUA同时还需要知道其他更多的LUA

1. 天龙这LUA全是明文,所以不需要你解密了 直接HOOK干!


2. 选择一个HOOK 点 

3. 这里我写了一个HOOK工具  ,啥也不说先看效果,注入DLL


4. 注入DLL


5. HOOK开始


6. 观察界面信息


7. 会看到很多LUA命令 都是明文的


8. 这里测试下某个命令,随便一个点击控件


9. 截获到


10. 找到对应的LUA字符串指令


11. 接下来测试下这个命令是否可以直接使用 复制粘贴 命令进行测试


12. 测试我们HOOK的LUA指令


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就知道这些全是在注册函数,那么你懂的。


14. 通过OD字符串搜索查看别的LUA字符串指令信息


五:结言


1. 说说我的看法游戏难度不大,适合新手进阶练习,数据结构还算OK,没有变态结构。


2. 游戏需求功能比较多,但对于练习lua来说是比较好的案例


3. 我会继续加油。也祝正在看的您更上一层楼!


admin1
0 0 上传作业
X
    网友评论 0条评论 0人参与
    请登陆会员1

    表情

    评论列表

×