43.第二阶段x86游戏实战2-提取游戏里面的lua

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

本次游戏没法给

内容参考于:微尘网络安全

本人写的内容纯属胡编乱造,全都是合成造假,仅仅只是为了娱乐,请不要盲目相信。

工具下载:

链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd=6tw3

提取码:6tw3

复制这段内容后打开百度网盘手机App,操作更方便哦

上一个内容:https://blog.csdn.net/qq_36301061/article/details/143527879

上一个内容里找到了游戏的状态指针,通过状态指针就可以去调用游戏封装的lua代码了,然后接下来开始写怎样把游戏中的lua找出来,lua一般在游戏的最外层调用起来会很方便,但有些游戏lua是加密的会提取不出来

怎样把lua提取出来?

游戏中使用lua肯定会把lua代码进行加载,怎么加载?就是调用doString或doFile函数,所以在它俩函数上下段就可以把lua提取出来了,当前游戏只用到了doString

开始找,首先有一个新的OD,它比较快,已经放到了百度网盘了

然后想找lua就要在游戏还没打开的时候在lua_dostring上打断点,因为lua一般只会加载一次,如果每次都会加载会浪废性能

然后打开OD,下图红框拖动它到游戏窗口可以获得要被附加的进程

然后拖动到游戏窗口之后点击下图红框的选项,它附加好之后会让游戏处于卡死状态

然后点击下图红框

然后找到LuaPlus.dll

然后鼠标右击选择查看名称

然后找到lua_dostring,鼠标左键单击它,然后按F2,这里注意下图里可以看到函数的名字,有些游戏这里的名字是被加密的,被加密的我们就没法找了

然后点击下图红框让游戏运行起来

然后断下来,如下图文件名和文件目录(注意lua_dostring函数只有两个参数,第一个参数是状态指针、第二个参数是lua代码,所以下图红框的文件名是别的函数的)

然后如下图,点击跟随到反汇编窗口,来到调用lua_dostring的位置,这个位置可能就是加载lua脚本的位置

如下图来到加载lua脚本的位置,注意记得写注释后面要用,注意这时的lua_dostring函数上的断点并没有取消

然后按F9,看看还有没有别的位置调用lua_dostring函数,如下图,可以看到地址变了,这说明有其它位置调用lua_dostring

然后继续点击跟随到反汇编窗口,就来到下图红框位置,然后继续按F9

然后点击下图红框的E,然后找到游戏模块(上方通过跟随到反汇编窗口,它返回到了游戏模块里)并双击它

然后选择自定义注释

最终有4个位置

然后用鼠标单击它们并按F2,对它们打断点,这个目的是,这里要知道一件事lua脚本它会加载一次,也就是说游戏里的按钮不会触发到我们要找的加载lua脚本的操作也就是按钮不会触发lua_dostring函数,但是它有4个所以要确定哪一个不会被按钮触发,所以对它们都打断点,然后点击游戏里的按钮等东西看看它会在4个位置中什么位置上断下来,只要能断下来就不是我们要找的,如下图打断点,打了断点之后去游戏里点击界面里的按钮,最终会发现除了1其它三个位置(2、3、4位置)都会断下来,所以1位置是我们要找的


img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/885327.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

容器内pip安装Apache Airflow的经历:如何重置初始密码

背景 Apache Airflow™https://github.com/apache/airflow 是一个开源平台,用于开发、调度和监控面向批处理的工作流程。Airflow 可扩展的 Python 框架使您能够构建几乎可以连接任何技术的工作流程。Web 界面有助于管理工作流程的状态。Airflow 可以通过多种方式部…

BP 网络的标准学习算法及其实现

BP 网络的标准学习算法及其实现 一、引言 BP(Back Propagation)神经网络是一种广泛应用于机器学习和人工智能领域的神经网络模型。它通过反向传播算法来调整网络的权重,以最小化预测输出和实际输出之间的误差。BP 网络的标准学习算法对于理…

Java爬虫 爬取某招聘网站招聘信息

Java爬虫 爬取某招聘网站招聘信息 一、系统介绍二、功能展示1.需求爬取的网站内容2.实现流程2.1数据采集2.2页面解析2.3数据存储 三、其它1.其他系统实现 一、系统介绍 系统主要功能:本项目爬取的XX招聘网站 二、功能展示 1.需求爬取的网站内容 2.实现流程 爬虫…

stm32不小心把SWD和JTAG都给关了,程序下载不进去,怎么办?

因为想用STM32F103的PA15引脚,调试程序的时候不小心把SWD和JTAD接口都给关了,先看下罪魁祸首 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//关掉JTAG,不关SWGPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);//关掉SW&am…

雷军-2022.8小米创业思考-11-新零售:用电商思维做新零售,极致的效率+极致的体验。也有弯路,重回极致效率的轨道上。

第十一章 新零售 当我们说到小米模式的时候,其实我们说的是两件东西: 一是小米模式的本质,即高效率的商业模式; 另一件是小米这家公司具象的商业模式,这是小米在实践中摸索、建立的一整套业务模型。 从2015年到202…

C语言实现数据结构之堆

文章目录 堆一. 树概念及结构1. 树的概念2. 树的相关概念3. 树的表示4. 树在实际中的运用(表示文件系统的目录树结构) 二. 二叉树概念及结构1. 概念2. 特殊的二叉树3. 二叉树的性质4. 二叉树的存储结构 三. 二叉树的顺序结构及实现1. 二叉树的顺序结构2.…

DocuBurst——基于java实现

DocuBurst 文档散(DocuBurst)也是基于关键词的文本可视化,不过它还通过径向布局体现了词的语义等级。如下图所示,外层的词是内层词的下义祠,颜色饱和度的深浅用来体现词频的高低。 DocuBurst 是第一个利用词法数据库中人工创建的结构的文档内容可视化。我们使用公认的设…

知识课堂之域名系统中实现动态代理

怎么在域名系统中解析动态ip,这一直是一个需要解决的问题,人们对与网络的稳定连接与灵活运用已经成为生活和工作中不可或缺的一部分,因此这样的问题的解决迫在眉睫。 大家对于动态ip是什么,应该都有所了解了,所谓的动…

5G周边知识笔记

这里写目录标题 3GPP 5G标准路径图5G协议规范5G新空口关键指标4G LTE和5G NR新空口技术对比5G新频段FR1FR2 信道带宽上下行解耦新频点规划,信道栅格FR1各频段实际信道栅格和NR-ARFCN范围定义 同步栅格大规模天线阵列新型调制编码技术大规模载波聚合设备到设备直接通…

报名开启|开放原子大赛“Rust数据结构与算法学习赛”

开放原子大赛“Rust数据结构与算法学习赛”报名进行中,报名截止时间为11月17日。 为了进一步促进开源技术的发展,提升国内开源社区的创新能力和国际影响力,开放原子开源基金会与清华大学开源操作系统训练营等单位,共同举办本次Rus…

Flutter自定义矩形进度条实现详解

在Flutter应用开发中,进度条是一个常见的UI组件,用于展示任务的完成进度。本文将详细介绍如何实现一个支持动画效果的自定义矩形进度条。 功能特点 支持圆角矩形外观平滑的动画过渡效果可自定义渐变色可配置边框宽度和颜色支持进度更新动画 实现原理 …

C#中的Math类

在 C# 中,Math 类提供了许多数学运算的静态方法,涵盖了各种常见的数学函数和操作。以下是 Math 类中的常用方法及其用法(持续更新中…) 方法说明示例Abs()返回指定数值的绝对值int absValue Math.Abs(-10); 结果为 10Acos()返回…

uniapp配置h5路由模式为history时404

为了不让URL中出现#,让uniapp项目配置h5路由模式为hisory 然而本地好好的,放到服务器上却404了。 解决方法是给nginx配置一个伪静态: location /xxx-html/ {alias /home/nginx_web/xxx_new_html/;try_files $uri $uri/ /xxx-html/index.ht…

python画图|灵活的subplot_mosaic()函数-初逢

【1】引言 前述学习进程中,对hist()函数画直方图已经有一定的探索。然而学无止境,在继续学习的进程中,我发现了一个显得函数subplot_mosaic(),它几乎支持我们随心所欲地排布多个子图。 经过自我探索,我有一些收获&am…

单体架构的 IM 系统设计

先直接抛出业务背景! 有一款游戏,日活跃量(DAU)在两千左右,虽然 DAU 不高,但这两千用户的忠诚度非常高,而且会持续为游戏充值;为了进一步提高用户体验,继续增强用户的忠…

vue实现天地图电子围栏

一、文档 vue3 javascript WGS84、GCj02相互转换 天地图官方文档 注册登录然后申请应用key&#xff0c;通过CDN引入 <script src"http://api.tianditu.gov.cn/api?v4.0&tk您的密钥" type"text/javascript"></script>二、分析 所谓电子围…

基于SSM(Spring + Spring MVC + MyBatis)框架的汽车租赁共享平台系统

基于SSM&#xff08;Spring Spring MVC MyBatis&#xff09;框架的汽车租赁共享平台系统是一个复杂的Web应用程序&#xff0c;用于管理和调度汽车租赁服务。下面我将提供一个详细的案例程序概述&#xff0c;包括主要的功能模块和技术栈介绍。 项目概述 功能需求 用户管理&…

Python函数专题:默认参数与关键字参数

在Python编程中,函数是一个非常重要的概念。它们不仅用于组织代码,还能够提高代码的重用性和可读性。在本文中,我们将深入探讨Python的默认参数和关键字参数这两个特性。这些特性可以让函数的调用更加灵活和强大。 一、什么是默认参数? 默认参数是指在定义函数时,为某些…

前端将后端返回的文件下载到本地

vue 将后端返回的文件地址下载到本地 在 template 拿到后端返回的文件路径 <el-button link type"success" icon"Download" click"handleDownload(file)"> 附件下载 </el-button>在 script 里面写方法 function handleDownload(v…

【C++前缀和 单调栈】1124. 表现良好的最长时间段|1908

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 C单调栈 LeetCode 1124. 表现良好的最长时间段 给你一份工作时间表 hours&#xff0c;上面记录着某一位员工每天的工作小时数。 我们认为当员工一天中的工作小时数大…