当前位置: 首页 > news >正文

从什么网站找做游戏的代码/结构优化设计

从什么网站找做游戏的代码,结构优化设计,公益免费空间主机,设计手机网站内容模块免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

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

本次游戏没法给

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

工具下载:

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

提取码:6tw3

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

上一个内容:9.第二阶段x86游戏实战2-初识易语言

上一个内容里使用易语言写了一个Windows窗口程序,本次就来逆向这个程序,看看它的反汇编代码和栈是怎么一个情况。

开始之前要回顾一个东西,在 6.第二阶段x86游戏实战2-理解程序流程 里写过一个流程 寻路到有怪物的位置-》选择怪物-》打怪物-》捡怪物的掉落物 这个流程,还把 寻路到有怪物的位置 拆分成了 上坐骑 -》打开地图 -》寻路 -》确认到达 -》下坐骑 这样的一个流程,然后现在再给寻路拆分一下,寻路可以拆分成 获取鼠标单击的坐标-》检测当前位置,然后OD里的CTRL+F9快捷键可以返回到当前函数的上一层(调用当前函数的位置),然后如果在获取鼠标单击的坐标这里打断点,然后按CTRL + F9,它会返回到 寻路 里,然后在寻路里按CTRL+F9它会回到 寻路到有怪物的位置 里,这句话要记住(记不住起码要有印象,知道有这么个事),逆向的过程就是围绕着这句话进行的。

然后开始

首先打开之前用易语言写的窗口程序

然后使用OD附加,如下图箭头,鼠标左键在拖拽上按住,然后拖到易语言写的窗口里就可以附加了

然后CTRL+G,然后输入MessageBoxA,然后点OK,第一个打开OD需要重复操作多次(直到没反应了为止)

然后点了OK之后就会来到下图红框位置,这里的内存地址是0x7629B160,这个内存地址是会变的,跟下图不一样是正常的

然后这里需要说明一下 MessageBoxA 是Windows系统的函数所以可以使用CTRL+G输入MessageBoxA的方式跳转,正常CTRL+G是通过内存地址跳转的。

然后鼠标左键双击下图红框位置

双玩之后的效果,内存地址会变成红色背景,这说明在这个位置打断点了,当程序运行到这时就会卡主

然后来到易语言写的程序里,点击下图红框里的按钮

下图红框是效果,执行了下图蓝框的代码就会弹出红框里的弹框

然后点击弹框里的确定

然后来到OD,会发现触发断点了,程序写卡主了

然后双击下图红框位置

双击完取消断点

然后就开始围绕刚开始写的那句话了,为了避免晕这里详细说明,下图是易语言写的代码,然后下图红框里的代码执行完是一个弹框,它实际就是调用的MessageBoxA函数,然后上方在MessageBoxA函数里打了断点,然后在MessageBoxA函数里按CTRL+F9就会来到 信息框 (“信息框”, 0, , ) 这个函数里面,注意按了CTRL + F9之后是在 信息框 (“信息框”, 0, , ) 里面不是下图红框位置

然后按CTRL+F9,来到 信息框 (“信息框”, 0, , ) 里面

然后在按CTRL+F9

上图的代码,是下图红框里面的内容,下图红框是一个子程序(函数)名字叫dddd,也就是说上图的代码是dddd函数的汇编代码

然后dddd函数实在下图红框位置调用的

然后下图的代码是 我可是按钮 点击之后执行的代码

然后再按CTRL+F9

上图红框里的代码,是下图红框代码的反汇编代码

这里我为什么会知道?如下图红框 64是一个十六进制数,这里不能读六十四,要读六四,然后14也是一个十六进制数,OD显示的数字一般都是十六进制数,然后64的十进制是100,它对应下图蓝框里的100,14的十进制数是20它对应下图蓝框里的20,通过这样的特征来确认的,后面看多了也就能掌握了

然后开始正文,堆栈

然后先按一下F9让程序运行起来,然后在下图红框位置打断点

然后来到易语言的窗口点击 我可是按钮,然后断点住

然后看下图红框,esp是栈顶(栈里的第一个数据)ebp是栈底(当前栈里最后一个数据)

然后双击下图红框位置

双击完它会出现一个偏移方便观察

然后取消断点,按F7执行call 0x401040,也就是执行dddd函数,如下图按了F7之后进入dddd函数,然后下图红框位置可以看到栈里有添加了一个数据

call这个汇编代码会跳转到指定位置并且把下一行代码的地址放到栈里,如下图红框

然后开始观察栈

然后按F8,它执行了push ebp,这意思是把原本的栈底保存起来

然后再按F8,执行了mov ebp, esp,这意思是切换到新的栈(栈物理上是一大块内存地址,在使用上是一块一块的用,通过下图的代码可以很明显看出来)里

然后再按F8,执行sub esp,0C,这意思是开辟局部变量的内存,注意现在栈里-14、-10、-C位置的数据是乱的

sub esp,0C的目的就是为了,下图红框里的三个变量

然后回到OD继续按F8,如下图红框它给局部变量进行了初始化为0,也就是说易语言中的局部变量如果不赋值它默认是0

然后继续按F8

上图里它执行了mov dword ptr [ebp-4], 3E8,也就是下图红框的代码,3E8的十进制是1000

然后继续按F8

上图里它执行了 mov eax, dword ptr [ebp+C],ebp+c是参数,也就是下图红框的代码

它是在下图红框位置call 00401040函数(dddd函数)之前进入栈里的

然后继续按F8

上图里执行了 mov dword ptr [ebp-8], eax这个代码,也就是下图红框里的代码

然后下图红框的两行代码

是下图红框里的代码,与 _接收攻击 = 攻击 一样这里执行F8跳过了

然后下图红框的代码是易语言生成的代码不是我们写的,直接F8跳过就行了

call 00401038最终会通过下图红框位置跳转到下图蓝框位置

然后下图红框位置的代码是 准备执行 信息框 (“信息框”, 0, , ) 这个代码

执行在下图红框位置打断点,按F9然后点击弹框的 确定 按钮跳过就行了

然后点击完确定来到下图红框位置

然后按F8,执行 add esp, 34 意思是函数运行过程中会出现很多局部变量 add esp, 34 就是为了清理局部变量的,也就是还原栈

然后再按F8,执行 mov esp, ebp意思是还原成调用dddd函数之前栈的栈顶(第一个数据位置)

然后再按F8,执行 pop ebp意思是还原调用dddd函数时的栈底

然后在按F8,执行retn 8,retn是把栈里第一个数据当成代码的内存地址并且跳转到这个地址上,并且esp+8,8的意思是当前函数(dddd函数)有两个参数(一个参数是4字节两个是8字节,这里的8就是8字节的意思),就是一个平栈(还原成进入dddd函数之前的栈),如下图

上图可以看出执行了retn 8,下图可以看出retn 8把下图红框位置两次push到栈里的数据给清理了(esp+8)


img

http://www.fp688.cn/news/544.html

相关文章:

  • 网站排名方案/电商广告网络推广
  • 深圳做购物网站/seo网站优化培训班
  • 网站建设和优化的好处/免费网站seo优化
  • 网站建设小江/营销号
  • 阜宁做网站哪家公司好/网站怎么做优化排名
  • 金华职院优质校建设网站/国外免费发产品的b2b平台
  • 网站关键词部署/seo外包网站
  • 北京西直门附近网站建设公司/怎么制作网页教程
  • php做的卖水果网站/四川seo关键词工具
  • 青岛做企业网站的公司/2022年app拉新推广项目
  • 网站建设窗口框架/百度首页网站推广多少钱一年
  • 什么网站可以做相册视频/什么关键词可以搜到那种
  • 宣威网站建设/cilimao磁力猫最新版地址
  • 旅游网站建设毕业设计/关键词爱站网
  • 160外发加工网/seo综合查询工具可以查看哪些数据
  • 秦皇岛手机网站制作多少钱/博客网站
  • 东莞市长安网站建设公司/网络销售怎么做才能做好
  • 建设通网站有建筑公司名录大全/中国军事新闻最新消息
  • 多个网站 备案/google 谷歌
  • 大学生兼职网站做ppt/如何让别人在百度上搜到自己公司
  • 长春专业企业网站建设工作室/郑州seo关键词
  • 个人备案用作资讯网站/网络营销模式有哪些类型
  • 怎样才能做自己的网站/抖音搜索关键词推广
  • 上传网站备案信息真实性核验单/网站备案查询工信部官网
  • 广西建设人力资源网/广州seo网络营销培训
  • 定远建设小学网站/淘宝指数网址
  • 南昌加盟网站建设/关键词首页排名优化
  • 企业自建网站缺/怎么样做seo
  • 建设工程消防网站进入程序/百度手机助手网页
  • 创新型的赣州网站建设/百度一下你就知道下载安装