【游戏逆向】逆向基础----CE使用和基础

windows逆向中,CE扮演着不可或缺的角色。

其根本原因是,上手简单,功能强大,提供多方位的突破口。

 

点击小电脑图标,

 

选择我们想要调试的程序,

就可以附加调试了。

很多的游戏保护驱动以及反调试手段,都针对CE做了一定的处理,由此可见CE确实是一款不错的工具,否则也没有必要对其大费周章。

 

随便附加一个进程,我们来看看他的基本使用。

首先CE最重要的功能是一款内存搜索工具,除去搜索功能以外,其他功能是可以用OD以及IDA 等工具替代的,也可以说是功能重叠的,在其他功能上我个人一般更喜欢使用 OD和IDA。

那么我们主要来说一下搜索功能

 

在游戏中,软件中,任何东西都是在内存中存放的,所以任何数据都可以用CE扫描的到,这是毋庸置疑的,只是有难易之分罢了。

显示在我们面前的文字,是以字符串的形式存放的。

人物的血量等直观的数值可能是整数型或则浮点型等类型存放的。

人物周围是否有宝藏等抽象的信息,也会以标志位或则其他类型存放的。

第一步  我们要选择扫描的数据类型,当然数据类型不是固定的,比如人物血量,没人规定他一定是整数型(4 bytes),他可能的类型很多,这是开发者决定的,所以,你只有去尝试才知道最终结果。

第二步,我们要确定扫描的类型,是精确扫描呢,还是模糊扫描呢?

如果你要扫描人物血量100,那么毫无疑问这是一个精确的数值,但是如果你要扫描一个100.28的血量值呢?他很可能是100.279或则 200.281四舍五入而得到的,这个时候如果是精确扫描是不是就有可能找不到正确的答案呢?

这个时候,往往我们就需要选择两数之前来扫描

当然有的时候我们还需要,扫描比什么数值大或则小来扫描

更有极端情况,我们选择了未知初始值,就是我们根本不知道他是多少,也不知道他在什么范围,这样的工作量很大很大,扫描过程会非常久,我们通过非常有限的线索来回变化扫描

这种情况并不少见,比如很多游戏里不显示坐标信息,那么我们想扫描坐标怎么办?只能未知初始值,然后来回走动,搜索变动的数值,要很久才能慢慢筛选出来正确的坐标。

第三步,确定我们的扫描范围,正常我们扫描所有内存地址的话

start 00000000   stop 7fffffff 就可以了  7fffffff之后基本都是显卡等地址不需要扫描

没有特殊需求不需要改动这个范围,有的时候为了减少扫描时间或则其他目的可以修改这个范围。

例如,如果我们扫描00000000-7fffffff 这个范围的未知初始值去找某一个数据可能要很久,甚至有时候机器会卡住,这个时候我们可以尝试分段扫描,把他分成两半,先扫前半段地址,看是否能够找到,找不到再去扫描后半段,减少了单次扫描的压力

再例如,你认为某一个标志位是基地址,那么可以直接把范围改成模块的地址范围,轻松的几次扫描快速找到地址

第四步,其他的一些设置

别的设置不需要多余修改,唯一值得注意的是, Fast Scan,也就是快速扫描,他后面默认的是4,也就是说他只扫描0,4,8,C的地址。这么说大家可能不懂什么意思,举个例子,如果有一个人物血量地址是00401223,里面的值是1,那么我们扫描1的时候 是扫不到这个地址的,因为他的个位不会0,4,8,C,那么怎么办呢?你只要把Fast Scan 的单选框去掉就可以了,当然这种情况不多见,这就是所谓的歪偏移,不过一旦出现这种情况,大家应该知道怎么去应对,平时就不需要勾掉这个了,因为这样会降低扫描速度。

第五步,全部设置完毕,我们可以开始扫描了

把你想扫描的数值填入,

这个代表是否是十六进制

然后首次扫描即可

首次扫描以后   ,想办法改变你要扫的数值

进行再次扫描

经过多次的筛选,最终锁定你想找的内存地址,

那么逆向的第一步,找突破口地址就已经搞定了

怎么样,并不复杂吧

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

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

相关文章

澳门媒体发稿套餐9个增长技巧解析-华媒舍

澳门作为一个国际知名的旅游胜地,拥有丰富的媒体资源。利用澳门媒体发稿,既可以提升品牌知名度,又可以吸引更多的目标受众。下面是9个利用澳门媒体发稿套餐的增长技巧,帮助你充分发挥媒体的作用,实现品牌的增长。 1. 制…

机器学习的模型校准

背景知识 之前一直没了解过模型校准是什么东西,最近上班业务需要看了一下: 模型校准是指对分类模型进行修正以提高其概率预测的准确性。在分类模型中,预测结果通常以类别标签形式呈现(例如,0或1)&#xf…

注意力机制篇 | YOLOv8改进之添加LSKAttention大核卷积注意力机制 | 即插即用,实现有效涨点

前言:Hello大家好,我是小哥谈。LSKAttention是一种注意力机制,它在自然语言处理领域中被广泛应用。LSKAttention是基于Transformer模型中的Self-Attention机制进行改进的一种变体。在传统的Self-Attention中,每个输入序列中的元素都会与其他元素进行交互,以获取全局的上下…

Linux 命令 top 详解

1 top命令介绍 Linux系统中,Top命令主要用于实时运行系统的监控,包括Linux内核管理的进程或者线程的资源占用情况。这个命令对所有正在运行的进程和系统负荷提供不断更新的概览信息,包括系统负载、CPU利用分布情况、内存使用、每个进程的内容…

开源量化交易研究框架Hikyuu

Hikyuu Quant Framework 是一款基于 C/Python 的开源量化交易研究框架,用于策略分析及回测。其核心思想基于当前成熟的系统化交易方法,将整个系统化交易抽象为由市场环境判断策略、系统有效条件、信号指示器、止损 / 止盈策略、资金管理策略、盈利目标策…

分享three.js实现粒子背景

three.js中粒子效果的实现方式大概分为三种: 1、Javascript直接计算粒子的状态变化,即基于CPU实现; 2、Javascript通知顶点着色器粒子的生命周期,由顶点着色器运行,即基于GPU实现; 3、粒子生成与状态维护全…

QT实现NTP功能

一.NTP基础 1.NTP定义 NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用于分布式设备(比如电脑、手机、智能手表等)进行时间同步,避免人工校时的繁琐和由此引入的误…

【漏洞复现】极简云 download.php 接口处存在任意文件读取漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

什么是线程安全、怎么保证线程安全

目录 什么是线程安全 多线程编程中的三个核心概念 JMM内存模型 JMM内存模型怎么实现原子性、可见性 怎么保证线程安全 什么是线程安全 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步&#x…

Rust---复合数据类型之结构体

目录 结构体的使用输出结果 结构体简化创建结构体更新语法元组结构体单元结构体(unit struct)结构体中的引用使用#[derive(Debug)]再次介绍 代码综合展示 与元组不同的是,结构体可以为内部的每个字段起一个富有含义的名称,因此无需…

基于SpringBoot+Vue的汽车租赁管理系统的设计和实现【附源码】

1、系统演示视频(演示视频) 2、需要交流和学习请联系

vivado适用于 UltraScale 和 UltraScale+ 器件的 eFUSE 寄存器访问和编程

FUSE_DNA : 唯一的器件 DNA 每个 UltraScale 器件都有唯一的器件 ID , 称为器件 DNA , 且赛灵思已将此 DNA 编程到器件中。用户无法对 FUSE_DNA 进行编程。 UltraScale 器件具有 96 位 DNA 。您可在 Vivado Design Suite Tcl 控制台中…

Matlab梁单元有限元编程:铁木辛柯梁VS欧拉梁

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

openplc Linux 地址映射io,读写驱动数据等使用记录

1. 上一篇记录 openplc使用C语言文件读写驱动实现基本流程。 openPLC_Editor C语言编程 在mp157 arm板上调用io等使用记录_openplc c 编程-CSDN博客 2. 下面通过映射地址的方式控制io和读写驱动数据。 在runtime 环境的 hardware 硬件配置中 选择 python on Linux(PSM)&#…

成为先进企业应该从用飞书开始,还是应该从裁员开始?

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦Midjourney 产品统筹 / bobo 大家都觉得飞书不行了,我们反而不这么看。 众所周知,飞书最近裁员的消息在业界引起了巨大的反响,大…

基于SSM+Jsp+Mysql的快递管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

62、服务攻防——框架安全CVE复现SpringStrutsLaravelThinkphp

文章目录 常见语言开发框架(主流): PHP:ThinkPHP、Laravel、YIIJAVA:Spring、SpringbootPython:FlaskJavaScript:Vue.js、Node.js 框架判断(): 通过插件Wappalyzer(可能…

练手项目层初阶1—《详解静态版本——通讯录管理系统》

文章目录 🚩前言🔊 项目需求📚 项目知识点包含🧩项目框架📝框架拆解分析✨Struct_book.h 头文件解析✨Struct_book.c文件解析✨test_book.c文件解析 📺演示效果🚀完整代码 🚩前言 俗…

联想 Y9000P 连接网线速度慢 的 问题解决

参考帖子:求助,拯救者Y9000P 2022 i73060版本 有线网非常慢 无线网正常【笔记本吧】_百度贴吧 问题原因: 网卡驱动版本不对。不能用Win11版,要用Win10版。 问题解决: 1、卸载原驱动 2、下载Win10 驱动 并安装 下载…

C语言——常用库函数的使用及模拟实现

C语言编译系统为使用者提供了很多的预定义库函数。用户在编写程序时,可以直接调用这些库函数。这里选择了一些常用的库函数,简单介绍各个函数的使用方法: 字符串函数 字符串函数函数分为长度不受限制的字符串函数,和长度受限制的…