Python修改exe之类的游戏文件中的数值

文章目录

  • 场景
    • 查找
    • 修改
  • 补充
    • 字节
    • to_bytes

场景

某些游戏数值(攻击力、射程、速度…)被写在exe之类的文件里
要先查找游戏数值,然后修改

查找

首先,要查找数值,大数重复较少,建议从大数找起

F = '游戏原件.exe'def find_your_sister1(a: int):"""查找0~255的数"""with open(F, 'rb') as f:b = f.read()  # <class 'bytes'>for i in range(len(b)):if b[i] == a:print(i)def find_your_sister2(a: int):"""查找0~65535的数"""ab = a.to_bytes(2, byteorder='little')print(a, '转字节数组', ab)with open(F, 'rb') as f:b = f.read()for i in range(len(b) - 1):if b[i: i + 2] == ab:print(i)if __name__ == '__main__':# find_your_sister1(133)find_your_sister2(13536)

修改

F1 = '游戏原件.exe'
F2 = '游戏魔改文件.exe'def cp():with open(F1, 'rb') as f:b = f.read()with open(F2, 'wb') as f:f.write(b)def replace1(new_data: int, offset: int):"""修改1个byte"""with open(F2, 'rb') as f:b = f.read()with open(F2, 'wb') as f:f.write(b[:offset])f.write(new_data.to_bytes(1, byteorder='little'))f.write(b[offset + 1:])print(offset, '偏移量的位置', b[offset], '修改为', new_data)def replace2(new_data: int, offset: int):"""修改2个bytes"""nb = new_data.to_bytes(2, byteorder='little')  # 例如:256 --> b'\x00\x01'with open(F2, 'rb') as f:b = f.read()with open(F2, 'wb') as f:f.write(b[:offset])f.write(nb)f.write(b[offset + 2:])print(offset, '和', offset + 1, '偏移量的位置', b[offset: offset + 2], '修改为', nb)if __name__ == '__main__':cp()replace2(1600, 27935)  # 离子HPreplace1(72, 439952)  # 离子Areplace1(28, 440055)  # 风暴Areplace2(660, 376339)  # 大喷火HPreplace2(1120, 376402)  # 美洲狮HPreplace2(560, 376366)  # 重激光HPreplace1(23, 393697)  # 小喷火Vreplace1(20, 393726)  # 中喷火Vreplace1(17, 393759)  # 大喷火Vreplace1(24, 393977)  # 阿基里斯Vreplace1(13, 393490)  # 重防空Vreplace2(1100, 439604)  # 阿基里斯A

补充

字节

字节(Byte)是计算机信息技术用于计量存储容量的一种计量单位,储存的数值范围为0~255

WinHex是一款十六进制编辑器,编辑界面如下

to_bytes

函数说明

        Return an array of bytes representing an integer.lengthLength of bytes object to use.  An OverflowError is raised if theinteger is not representable with the given number of bytes.byteorderThe byte order used to represent the integer.  If byteorder is 'big',the most significant byte is at the beginning of the byte array.  Ifbyteorder is 'little', the most significant byte is at the end of thebyte array.  To request the native byte order of the host system, use`sys.byteorder' as the byte order value.signedDetermines whether two's complement is used to represent the integer.If signed is False and a negative integer is given, an OverflowErroris raised.

函数示例

>>> a = 256>>> a.to_bytes(2, byteorder='little')
b'\x00\x01'>>> hex(a)
'0x100'

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【系统架构师】-案例篇(五)企业应用系统集成与ESB

在航空业中&#xff0c;Ramp Coordination是指飞机从降落到起飞过程中所需要进行的各种业务活动的协调过程。通常每个航班都有一位员工负责Ramp Coordination&#xff0c;称之为RampCoordinator。由Ramp Coordinator协调的业务活动包括检查机位环境、卸货和装货等。 由于航班类…

企业如何做好数据安全治理?

在数字化时代&#xff0c;数据成为企业运营的核心资产&#xff0c;数据安全治理成为企业管理的重要组成部分。良好的数据安全治理不仅能保护企业信息不受侵犯&#xff0c;还能有效提升企业的运营效率和市场竞争力。下面是企业如何做好数据安全治理的几个关键步骤&#xff1a; 1…

【智能算法应用】基于麻雀搜索算法-支持向量回归预测(SSA-SVR)

目录 1.算法原理2.数学模型3.结果展示4.调试记录5.参考文献6.代码获取 1.算法原理 【智能算法】麻雀搜索算法&#xff08;SSA&#xff09;原理及实现 2.数学模型 支持向量机(SVM)是针对二分类问题&#xff0c;支持向量回归(SVR)基于SVM应用与回归问题。SVR回归与SVM分类的区…

【栈】Leetcode 验证栈序列

题目讲解 946. 验证栈序列 算法讲解 在这里就只需要模拟一下这个栈的出栈顺序即可&#xff1a;使用一个stack&#xff0c;每次让pushed里面的元素入栈&#xff0c;如果当前栈顶的元素等于poped容器中的当前元素&#xff0c;因此就需要让栈顶元素出栈&#xff0c;poped的遍历…

ArcGIS10.2能用了10.2.2不行了(解决)

前两天我们的推文介绍了 ArcGIS10.2系列许可到期解决方案-CSDN博客文章浏览阅读2次。本文手机码字&#xff0c;不排版了。 昨晚&#xff08;2021\12\17&#xff09;12点后&#xff0c;收到很多学员反馈 ArcGIS10.2系列软件突然崩溃。更有的&#xff0c;今天全单位崩溃。​提示许…

西米支付:数字藏品元宇宙的介绍与骗局套路解析

一、什么是元宇宙&#xff1f; 元宇宙是一个集体虚拟共享空间&#xff0c;由虚拟增强的物理现实和物理持久的虚拟空间融合而创造&#xff0c;包括所有虚拟世界、增强现实和互联网的总和。简单地说&#xff0c;元宇宙是Web3.0时期的数字世界。 这类新兴概念被非法分子包装后&am…

ssrf(第二弹)

四&#xff0c;post请求 1.打开环境&#xff0c;提示说发一个HTTP POST请求&#xff0c;ssrf是用php的curl实现的.并且会跟踪302跳转。 2.用dirsearch扫一下常见的端口&#xff0c;看到有三个可以访问的页面 3.构造伪协议&#xff0c;因为要通过172.0.0.1访问&#xff0c;我们…

TikTok shop多账户需要防关联吗?

TikTok是一个非常垂直的平台&#xff0c;每个账号的内容都应该尽可能的垂直&#xff0c;这样平台才能引流更多的流量。但是&#xff0c;TikTokShop只有一两个账号&#xff0c;流量往往难以保证&#xff0c;所以很多商家选择了TikTok的多账号运营模式。 众所周知&#xff0c;多店…

数字音频的采样和量化

一.PCM&#xff08;Pulse-Code Modulation 脉冲编码调制&#xff09; PCM是一个无损无压缩的&#xff08;相较于有损压缩&#xff0c;如果相对于模拟信号是有损的&#xff09;数字化编码方式&#xff08;PCM不单单应用于音频领域&#xff0c;本文只介绍在音频领域中的应用&…

GAMMA Lab——知识图谱和LLM大模型

图机器学习的发展与分类 图基础模型 LLM基础模型 GNN LLM 前沿工作

【智能算法】正切搜索算法(TSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2022年&#xff0c;A Layeb受到正切函数启发&#xff0c;提出了正切搜索算法&#xff08;Tangent Search Algorithm, TSA&#xff09;。 2.算法原理 2.1算法思想 TSAT基于正切函数的数学…

(Mac)RocketMQ的本地安装测试(详细图示)

目录 部署服务 namesrv / broker下载解压缩运行 namesrvnohup ./bin/mqnamesrv & 启动命令详解运行 broker 测试收发消息运行自带的生产者测试类运行自带的消费者测试类 部署 Dashboard 可视化下载打包运行访问 部署服务 namesrv / broker 下载解压缩 官网下载 https://r…

uniapp、web网页跨站数据交互及通讯

来来来&#xff0c;说说你的创作灵感&#xff01;这就跟吃饭睡觉一样&#xff0c;饿了就找吃的&#xff0c;渴了就倒水张口灌。 最近一个多月实在是忙的没再更新日志&#xff0c;好多粉丝私信说之前的创作于他们而言非常有用&#xff01;受益菲浅&#xff0c;这里非常感谢粉丝…

无人直播新模式——视频挂机自动播,一小时收益上千元,思路分享!

无人直播新模式——视频挂机自动播&#xff0c;一小时收益上千元&#xff0c;思路分享&#xff01; 无人直播新模式——视频挂机自动直播是一种创新的直播方式&#xff0c;能够实现自动化的收益。下面将分享一些思路、玩法和流程&#xff0c;帮助您了解这个模式并进行实施。 1、…

内容安全(DPI和DFI解析)

内容安全前言&#xff1a; 防火墙的本质其实就是包过滤&#xff0c;我们通常所说的安全设备&#xff08;如&#xff1a;IPS、IDS、AV、WAF&#xff09;的检测重心是应用层。下一代防火墙基于传统防火墙的拓展能力&#xff0c;就是可以将以上的安全设备模块集成在一起&#xff0…

uniapp的app端软件更新弹框

1&#xff1a;使用html PLUS实现&#xff1a;地址HTML5 API Reference (html5plus.org)&#xff0c;效果图 2&#xff1a;在app.vue的onLaunch生命周期中&#xff0c;代码如下&#xff1a; onLaunch: function() {let a 0let view new plus.nativeObj.View(maskView, {backg…

IO流-其他流:数据流,序列化流

import java.io.DataOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream;public class DataOutputStream1 {public static void main(String[] args) {//创建一个数据输出流包装一个低级的字节输出流try (DataOutputStream dosnew DataOutp…

Elasticsearch:RBAC 和 RAG - 最好的朋友

作者&#xff1a;来自 Elastic Jeff Vestal 检索增强生成 (RAG) 通过提供额外的上下文或信息来增强大型语言模型 (LLM) 的知识&#xff0c;从而提高响应质量。 尽管 LLMs 拥有令人印象深刻的能力&#xff0c;但也有其局限性&#xff0c;例如无法在培训后保留新信息以及对不熟悉…

软考网络工程师 第六章 第三部分 第三节 流量控制和拥塞控制

TCP流量控制 流量控制&#xff1a;为了防止发送方防止发送速度过快&#xff0c;导致接受方处理不过来&#xff0c;造成丢包重传&#xff0c;浪费网络资源 TCP流量控制机制&#xff1a;可变大小的滑动窗口 TCP滑动窗口机制 TCP拥塞控制 例题&#xff1a; TCP采用拥塞窗口&am…

Ubuntu意外断电vmdk损坏--打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。

背景&#xff1a;电脑资源管理器崩溃卡死&#xff0c;强行断电重启&#xff0c;结果虚拟机打不开了&#xff0c;提示打不开磁盘“***.vmdk”或它所依赖的某个快照磁盘。 删除lck文件&#xff1a;失败vmware-vdiskmanager修复 &#xff1a;提示无法修复最终用 VMFS Recovery挂载…