使用反汇编强力破解单机游戏外挂

 逆向反汇编外挂:由于可执行程序都要先变成汇编代码再转换成cpu能识别的二进制机器码,在这个基础上可以根据该cpu对应的指令集反过来将二进制翻译成汇编代码。

  反汇编找基地址过程:因为要修改的变量地址老是会发生变化,这样每次进游戏都要重新找,很费时间,所以干脆找出固定的基地址,通过固定算式表出变量地址。道理如同找一个人,单靠服饰和此时的动作状态筛选比较麻烦,通过身份证、手机号才能每次精准找到。先抓取要改的变量的地址,通过数值不断的改善或者模糊搜索等,找到地址后,对该地址打断点,看看哪行汇编代码改变了它的数值就会停下来,拿植物大战僵尸举例,比如定位到这行代码发现add [eax+5560],ecx 对阳光加了ecx,这里eax+5560可以表示阳光地址,接着找倒数第二级偏移,查找看看内存里谁存放着eax的数值,搜索一下,然后挑一个地址 ,打断点看看谁对该地址读写 ,mov eax,[ecx+768]那么上一行的eax可以由ecx+768表示,接着再找谁对ecx赋值(可以在OD上高亮ecx寄存器,看看前面的代代码ecx是怎么来的,也可以在CE中搜索内存)……一直回溯。

如果后面找的代码和前面一样,回到原点,证明是个循环指针,函数连锁调用的原因,这时放弃这条路,后退几步找别的路。直到找出可以被立即数表示为止,而不是可以改变的寄存器值,或者找到绿色的地址,即基地址,基地址是一些全局变量、字符串常量等每次运行都不会改变位置的数据。

要修改的变量一般是类中有内部类,一层层嵌套,所以才有那么多偏移,而最终数据是在堆区动态开辟的,所以才每次运行地址都不同。

eax+5560是类内阳光地址,eax是类的首地址,而保存eax数值的00FE82E8就是sun类的指针变量p,查找看看谁访问了p。而且要筛选出给eax赋值的汇编代码。

选出了这行代码:mov eax,[ecx+768]这里是对指针p里的数值进行读取赋给eax。

代码猜想:

class sun{

public:int suntime;

int value;

};

class A

{

public: int stage;

    sun*p;

   init_sun()

  {

  p=new sun();

  }

};

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

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

相关文章

linux系统zabbix监控服务端部署

zabbix服务端部署 zabbix服务端部署安装mysql创建初始数据库为Zabbix server配置数据库为Zabbix前端配置PHP启动Zabbix server和agent进程浏览器访问ipConfigure DB connection页面Zabbix server details页面登录账户名密码 zabbix 官网www.zabbix.com服务端部署 rpm -Uvh ht…

GEE:梯度提升树(Gradient Boosting Tree)回归教程(样本点、特征添加、训练、精度、参数优化)

作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…

【ETOJ P1057】小e的菜篮子 题解(优先队列)

题目描述 你有一个菜篮子。 接下来会有 Q Q Q 次操作,每次操作如下: “1 x”,将一个重量为 x x x 的菜放入到菜篮子中。“2”,将菜篮子中重量最大的菜丢掉(如果菜篮子为空,则跳过)。 问 …

如何实现深度学习模型的离线训练

1.1 如何实现深度学习模型的离线训练 如何实现服务器离线训练模型,后台执行 主要有两种方法:tmux命令 和 nohup命令,主要讲解tmux的命令的使用: 1.1.1 tmux的命令 原理描述:通过tmux创建一个会话,这个会…

【Linux学习】线程互斥与同步

目录 二十.线程互斥 20.1 什么是线程互斥? 20.2 为什么需要线程互斥? 20.3 互斥锁mutex 20.4 互斥量的接口 20.4.1 互斥量初始 20.4.2 互斥量销毁 20.4.3 互斥量加锁 20.4.4 互斥量解锁 20.4.5 互斥量的基本原理 20.4.6 带上互斥锁后的抢票程序 20.5 死锁问题 死锁…

React18原理: 核心包结构与两大工作循环

React核心包结构 1 ) react react基础包,只提供定义 react组件(ReactElement)的必要函数一般来说需要和渲染器(react-dom,react-native)一同使用在编写react应用的代码时, 大部分都是调用此包的api比如, 我们定义组件的时候,就是它提供的class Demo ext…

[VulnHub靶机渗透] Nyx

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏…

2月3日作业

1.编程实现单向循环链表的头插&#xff0c;头删、尾插、尾删 尾插/头插&#xff0c;头删&#xff0c;尾删&#xff1a; 头文件&#xff1a; #ifndef __HEAD_H_ #define __HEAD_H_#include<stdio.h> #include<string.h> #include<stdlib.h>enum {FALSE-1,SU…

Spring Cloud Gateway 网关路由

一、路由断言 路由断言就是判断路由转发的规则 二、路由过滤器 1. 路由过滤器可以实现对网关请求的处理&#xff0c;可以使用 Gateway 提供的&#xff0c;也可以自定义过滤器 2. 路由过滤器 GatewayFilter&#xff08;默认不生效&#xff0c;只有配置到路由后才会生效&#x…

浅谈进制的转换

本文创作灵感来自CSDN咸鱼WCY 的 咸鱼小白学嵌入式之C语言&#xff08;2.进制&#xff09; 博主更完就没更了&#xff0c;决定书接上回&#xff08;喜 进制是个啥 要理解进制&#xff0c;首先哈&#xff0c;咱得知道不同进制的含义 说到底&#xff0c;各个进制其实有点像在…

学生公寓|基于Springboot的学生公寓管理系统设计与实现(源码+数据库+文档)

学生公寓管理系统目录 目录 基于Springboot的学生公寓管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、宿舍列表 2、宿舍公告信息管理 3、宿舍公告类型管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八…

洛谷: [CSP-J2019] 公交换乘

题目描述 著名旅游城市 B 市为了鼓励大家采用公共交通方式出行&#xff0c;推出了一种地铁换乘公交车的优惠方案&#xff1a; 在搭乘一次地铁后可以获得一张优惠票&#xff0c;有效期为 45 分钟&#xff0c;在有效期内可以消耗这张优惠票&#xff0c;免费搭乘一次票价不超过地…

学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)

学生成绩管理系统目录 目录 基于Springboot的学生成绩管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能模块 2、学生功能模块 3、教师功能模块 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源…

AI引领低代码革命:未来应用开发的新主流

距离ChatGPT发布已经过去快一年时间。 在这一年里&#xff0c;以ChatGPT为代表的自然语言处理领域的重大进步&#xff0c;为我们的对话系统和语言交流提供了更加智能和自然的体验。随着ChatGPT的应用不断扩大&#xff0c;人们开始认识到人工智能&#xff08;AI&#xff09;技术…

elasticsearch增删改查

一、数据类型 1、字符串类型 &#xff08;1&#xff09;text &#xff08;2&#xff09;keyword 2、数值类型 &#xff08;1&#xff09;long、integer、short、byte、float、double 3、日期类型 &#xff08;1&#xff09;date 4、布尔类型 &#xff08;1&#xff0…

【AI绘图】初见·小白入门stable diffusion的初体验

首先&#xff0c;感谢赛博菩萨秋葉aaaki的整合包 上手 stable diffusion还是挺好上手的&#xff08;如果使用整合包的话&#xff09;&#xff0c;看看界面功能介绍简单写几个prompt就能生成图片了。 尝试 我在网上找了一张赛博朋克边缘行者Lucy的cos图&#xff0c;可能会侵…

假期作业 2月8日

数据类型与作用域练习 1、选择题 1.1、以下选项中,不能作为合法常量的是 __________ A&#xff09;1.234e04 B&#xff09;1.234e0.4 C&#xff09;1.234e4 D&#xff09;1.234e0 1.2、以下定义变量并初始化错误的是_____________。 A) char c1 ‘H’ &#xff…

开发自定义标记应用程序

开发自定义标记应用程序 问题陈述 Larry Williams 是ABC Inc.公司的CEO,他希望公司能够拥有一个交互式网站以向访问网站的用户表示问候并显示当前时间。他还希望最终用户能够指定主页的背景颜色。您是公司的网站管理员。Larry要您修改网站的主页,以便向最终用户显示自定义问…

Linux篇:网络基础1

一、网络基础&#xff1a;网络本质就是在获取和传输数据&#xff0c;而系统的本质是在加工和处理数据。 1、应用问题&#xff1a; ①如何处理发来的数据&#xff1f;—https/http/ftp/smtp ②长距离传输的数据丢失的问题&#xff1f;——TCP协议 ③如何定位的主机的问题&#…

Redis集中管理Session和系统初始化参数详解

Redis 是一个开源的、基于内存的键值存储系统&#xff0c;通常用作数据库、缓存或消息传递系统。在 Web 应用程序中&#xff0c;Redis 常用于集中管理 Session 数据和系统初始化参数。 Redis 管理 Session Session 是 Web 应用程序中用于保持用户状态的一种机制…