9.x86游戏实战-汇编指令mov

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

本次游戏没法给

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

工具下载:

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

提取码:6tw3

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

上一个内容:8.x86游戏实战-OD详解

OD使用过程中会经常卡死,只能通过任务管理器结束,然后重新来

有时候OD附加完进程,下图红框位置是空白的(什么也没有)

这时点一下下图红框位置的C就好了

然后有时候进程的线程会停止,需要检查一下

如果有线程停止了(不是激活状态),如下图点击 Resume All threads让线程启动

学习汇编代码,就要写代码,就要执行代码,最简单的方式就是使用OD附加一个进程,然后找这个进程一直运行的代码,然后在一直运行的代码里下断点(后面就能看到断点是什么东西了),下了断点之后写汇编代码,然后使用断点的功能一行一行的执行代码

进程中什么位置会一直执行?ws2_32.send,send函数是网络程序用于给服务器发送数据包的(有的游戏不使用send,其它的后面在写)

OD附加进程,这里多一嘴OD也可以不用管理员启动也能附加进程,用不用管理员要看要被附加的进程,所以为了省心直接全用管理员启动就好了

鼠标按住下图红框位置,然后拖到要附加的程序窗口上,然后放开鼠标

然后点是就可以了

然后会到入口点,如下图,这时被附加程序会卡死,OD的状态如下图也是暂停,这时点下图红框位置让附加进程运行起来

OD附加完进程之后,点击下图红框位置,也就是点击代码段区域

然后按ctrl+g,然后输入 ws2_32.send,然后点OK,如果点了OK没反应,那就重新操作几次

然后就能跳转到send函数了,跳转到send函数的头部,也就是send函数的第一行,ws2_32是模块名,ws2_32.send意思是跳转到ws2_32模块里的send函数,有多个函数叫send所以需要指定模块名,然后为什么用ws2_32模块里的send函数?别管为什么这里记住用ws2_32里的send函数就行,后面就能知道原因了

首先选中下图红框位置(send函数的第一行)

然后按f2,下图紫色框框起来的位置就变成红色了,这说明这里下了断点,当程序执行到这时会卡主

然后在程序做一个可以发送数据包的操作,停下来(或者说断下来)的样子,如下图

然后多选几行代码,然后鼠标右击选择填充为NOP

NOP的意思是没有代码,处理器执行到NOP时不做任何操作,然后继续往下执行,NOP的硬编码是0x90

然后开始写mov指令,双击下图红框位置

然后输入mov eax, 1

然后点汇编,点了汇编按钮之后窗口不会自动关闭,需要手动关

然后就有了 mov eax, 1 代码

然后接下来按 f8,让它运行一下看看效果,如下图,可以看到eax变成了1

然后写mov ecx, [0x1484438],取地址的值

然后点了汇编之后,它给我们添加dword ptr,ptr表示地址,dword是数据宽度(4字节宽度)

然后按f8执行代码看看效果,这就是一个取内存地址里面值的效果

然后还能写 mov [0x1484438], 2,给内存地址里的值修改掉

然后点汇编的时候它让写一个操作数大小

这里写一个dword,4字节大小

然后点汇编就变成了下图的样子

然后按f8执行代码的效果,游戏崩溃了,这说明改成功了,我们是把0x1484438里的值改成了2,0x1484438原本的值是一个内存地址,然后2不是一个正常的内存地址,所以它蹦了

然后如下图红框,有的时候写了内存地址,点击汇编之后,它会变成英文,这是翻译的问题,它把内存地址翻译成了函数名(一般之后函数才会被翻译成英文)

c/c++写汇编,下方的代码是32位的汇编写法,64位汇编没法用_asm写,64位的汇编后面用到的时候会写

#include <iostream>
#include "Windows.h"

int main()
{

	int a = 1;
	int b = 1;
	_asm {
		mov a,2
		mov eax,3
		mov b, eax
	}
	printf("%d, %d", a, b);
}


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

怎么找到DNS服务器的地址?

所有域都注册到域名名称服务器&#xff08;DNS&#xff09;点&#xff0c;以解析域名应指向的IP地址。此查找类似于在查找个人名称并查找其电话号码时的电话簿如何运行。如果DNS服务器设置错误或指向错误的名称服务器&#xff0c;则域可能无法加载相应的网页。 如何查找当前的…

【python基础】—calendar模块

文章目录 前言一、calendar模块方法1.firstweekday()2.setfirstweekday(firstweekday)3.isleap(year)4.leapdays(y1, y2)5.weekday(year, month, day)6.monthrange(year, month)7.weekheader(n)8.monthcalendar(year, month)9.prmonth(theyear, themonth, w0, l0)10.prcal(year…

堆结构、堆排序

堆 是完全二叉树&#xff0c;类似这种样式的 而这种有右子节点&#xff0c;没左子节点的就不是完全二叉树 分为大根堆和小根堆 大根堆是二叉树里每一颗子树的父节点都是这颗子树里最大的&#xff0c;即每一棵子树最大值是头节点的值 小根堆相反 把数组中从0开始的一段数人…

【等保2.0是什么意思?等保2.0的基本要求有哪些? 】

一、等保2.0是什么意思&#xff1f; 等保2.0又称“网络安全等级保护2.0”体系&#xff0c;它是国家的一项基本国策和基本制度。在1.0版本的基础上&#xff0c;等级保护标准以主动防御为重点&#xff0c;由被动防守转向安全可信&#xff0c;动态感知&#xff0c;以及事前、事中…

Stable Diffusion图像的脸部细节控制——采样器全解析

文章目录 艺术地掌控人物形象好易智算原因分析为什么在使用Stable Diffusion生成全身图像时&#xff0c;脸部细节往往不够精细&#xff1f; 解决策略 局部重绘采样器总结 艺术地掌控人物形象 在运用Stable Diffusion这一功能强大的AI绘图工具时&#xff0c;我们往往会发现自己…

开源的基于图像识别本地实名认证系统(本项目不借助任何api) v1.0

前言: 本项目主要是代替昂贵的实名认证服务api或者sdk&#xff0c;目前仍然存在很多缺点 一、具体介绍 1.组成: 人脸识别服务器分为两部分: (1)、http服务端 server.py共有四个函数: DrawFaceinIdCard:用户上传身份证图片后&#xff0c;服务端会对身份证进行抠人像和ocr处理…

澳蓝荣耀时刻,6款产品入选2024年第一批《福州市名优产品目录》

近日&#xff0c;福州市工业和信息化局公布2024年第一批《福州市名优产品目录》&#xff0c;澳蓝自主研发生产的直接蒸发冷却空调、直接蒸发冷却组合式空调机组、间接蒸发冷水机组、高效间接蒸发冷却空调机、热泵式热回收型溶液调湿新风机组、防火湿帘6款产品成功入选。 以上新…

正交的拉丁方阵(MOLS)

在组合数学中&#xff0c;如果两个同阶的拉丁方阵叠加后&#xff0c;每个位置上的有序对条目都是唯一的&#xff0c;则这两个拉丁方阵被称为正交的。 如果一组同阶的拉丁方阵中&#xff0c;任意两个方阵都是正交的&#xff0c;则这组方阵被称为一组相互正交的拉丁方阵&#xf…

Prometheus 监控Kubelet的运行状态

kubelet通过/metrics暴露自身的指标数据。kubelet有两个端口都提供了这个url&#xff0c;一个是安全端口&#xff08;10250&#xff09;&#xff0c;一个是非安全端口&#xff08;10255&#xff0c;kubeadm安装的集群该端口是关闭的&#xff09;。安全端口使用https协议&#x…

SpringMVC的架构有什么优势?——控制器(一)

文章目录 控制器(Controller)1. 控制器(Controller)&#xff1a;2. 请求映射(Request Mapping)&#xff1a;3. 参数绑定(Request Parameters Binding)&#xff1a;4. 视图解析器(View Resolver)&#xff1a;5. 数据绑定(Data Binding)&#xff1a;6. 表单验证(Form Validation)…

02-部署LVS-DR群集

1.LVS-DR工作原理 LVS-DR模式&#xff0c;Director Server作为群集的访问入口&#xff0c;不作为网购使用&#xff0c;节点Director Server 与 Real Server 需要在同一个网络中&#xff0c;返回给客户端的数据不需要经过Director Server 为了响应对整个群集的访问&#xff0c;…

【JS】过滤数组中空值——arr.filter(Boolean)

前言&#xff1a;过滤数组中的空值&#xff0c;包括 &#xff08;undefined、null、“”、0、false、NaN&#xff09; Boolean函数可以将一个值转换为布尔值&#xff0c;空值会被转换为false&#xff0c;非空值会被转换为true 方法&#xff1a; const arr [1, 2, ""…

Redis 典型应用——分布式锁

一、什么是分布式锁 在一个分布式的系统中&#xff0c;也会涉及到多个节点访问同一个公共资源的情况&#xff0c;此时就需要通过锁来做互斥控制&#xff0c;避免出现类似于 "线程安全" 的问题&#xff1b; 而 Java 中的 synchronized&#xff0c;只能在当前进程中生…

线上问题定位分析宝典——Linux中定位JVM问题常用命令

查询Java进程ID #ps axu | grep java #ps elf | grep java查看机器负载及CPU信息 #top -p 1(进程ID) #top (查看所有进程)获取CPU飙升线程堆栈 1. top -c 找到CPU飙升进程ID&#xff1b; 2. top -Hbp 9702(替换成进程ID) 找到CPU飙升线程ID&#xff1b; 3. $ printf &quo…

ubuntu20.04配置调试工具

1.准备工作&#xff1a;安装g或者gdb sudo apt updatesudo apt install gg --versionsudo apt install gdbgdb --version 2.配置环境 2.1在本地新建一个main.cpp #include <iostream> #include <vector> #include <string>using namespace std;int main(…

【SpringBoot3学习 | 第2篇】SpringBoot3整合+SpringBoot3项目打包运行

文章目录 一. SpringBoot3 整合 SpringMVC1.1 配置静态资源位置1.2 自定义拦截器&#xff08;SpringMVC配置&#xff09; 二. SpringBoot3 整合 Druid 数据源三. SpringBoot3 整合 Mybatis3.1 Mybatis整合3.2 声明式事务整合配置3.3 AOP整合配置 四. SpringBoot3 项目打包和运行…

界面材料知识

界面材料是用于填充芯片和散热器之间的空隙&#xff0c;将低导热系数的空气挤出&#xff0c;换成较高导热系数的材料&#xff0c;以提高芯片散热能力。参考下图 图片来源网上 热阻是衡量界面材料性能最终的参数&#xff0c;其中与热阻有关的有&#xff1a; 1、导热系数&#x…

(三十一)Flask之wtforms库【剖析源码下篇】

每篇前言&#xff1a; &#x1f3c6;&#x1f3c6;作者介绍&#xff1a;【孤寒者】—CSDN全栈领域优质创作者、HDZ核心组成员、华为云享专家Python全栈领域博主、CSDN原力计划作者 &#x1f525;&#x1f525;本文已收录于Flask框架从入门到实战专栏&#xff1a;《Flask框架从入…

使用java stream对集合中的对象按指定字段进行分组并统计

一、概述 有这样一个需求&#xff0c;在一个list集合中的对象有相同的name&#xff0c;我需要把相同name的对象进行汇总计算。使用java stream来实现这个需求&#xff0c;这里做一个记录&#xff0c;希望对有需求的同学提供帮助 一、根据指定字段进行分组 一、先准备好给前端要…

菱形继承和菱形虚拟继承

c具有多继承的特性&#xff0c;那么菱形继承就是多继承的一种特殊情况&#xff0c;但是菱形继承会出现一些问题&#xff0c;比如数据冗余和二义性&#xff1b; 那么怎么解决这个问题呢&#xff1f; 菱形虚拟继承 菱形虚拟继承的原理 class A { public:int _a; };class B: v…