GameKiller 中文文档 下载 App

Hex 十六进制编辑 —— 直接读写内存字节的高级技巧

Hex 编辑是什么

Hex 编辑器让你绕过"数据类型"这一层,直接看到内存里的原始字节。你看到的是一串 0-9 和 A-F 组成的十六进制数,每个数代表一个字节。

这对于理解和处理复杂数据结构特别有用——比如:

如何打开 Hex 编辑器

不同版本的八门神器操作略有不同:

  1. 在搜索结果里找到目标地址
  2. 长按或点击,选择 "Hex 编辑" / "以十六进制编辑" / "查看内存"
  3. 打开后你会看到一个十六进制表格:每行 16 个字节,左边是地址偏移,右边是 ASCII 预览

Hex 编辑器界面解析

地址       | 字节(每行 16 字节,两个字符一组)             | ASCII 预览
0x1A2B3C40 | 10 00 00 00 64 00 00 00 19 00 00 00 12 00 00 00 | ....d...........
0x1A2B3C50 | 47 61 6D 65 4B 69 6C 6C 65 72 00 00 00 00 00 00 | GameKiller......

左半部分:十六进制字节

右半部分:ASCII 预览

常用 Hex 操作

操作一:直接修改字节

  1. 点击或选中某个要改的字节
  2. 输入新的十六进制值(0-9, A-F)
  3. 有些版本需要点"应用"或"保存"才生效

操作二:修改 Dword(多字节)

想改一个 4 字节 Dword 值(比如金币):

  1. 找到那 4 个字节(比如原来的 C0 1D 00 00 = 0x00001DC0 = 7616)
  2. 把它们改成你要的值,比如 999999 = 0x000F423F
  3. 记得小端序:字节序应该是 3F 42 0F 00(低字节在前)
改之前:C0 1D 00 00 → 7616
改之后:3F 42 0F 00 → 999999

操作三:搜索字符串

在 Hex 编辑器里搜 ASCII 字符串:

  1. 有些版本的 Hex 编辑器有"搜索"功能
  2. 输入要搜索的 ASCII 文本(比如玩家名字)
  3. 八门神器会在整个内存里找这个字符串出现的位置
  4. 找到后你可以直接在 Hex 界面里修改那个字符串

操作四:修改 Bit 级数据

有些游戏用一个字节表示多个开关状态:

字节值:00000101(二进制)
含义:bit0 = 已通关, bit2 = 收集了某个道具

想解锁 bit1:

原字节:00000101(0x05)
想要:  00000111(0x07)
操作:0x05 | 0x02 = 0x07

在 Hex 编辑器里把那一个字节从 05 改成 07 就行。

小端序 vs 大端序

这是很多人在 Hex 编辑时最容易搞错的一点:

Android / ARM 架构默认是小端序(Little Endian):

Dword 值 191(十进制)= 0x000000BF(十六进制)

内存中存储顺序(小端):BF 00 00 00(低字节在前)
你直觉认为的顺序(大端):00 00 00 BF(高字节在前)← 错的!

八门神器的 Hex 编辑器显示的是原始字节顺序(小端)。如果你想在 Hex 里改 Dword 值,一定要按小端序写字节。

用 Hex 编辑器理解内存结构

这是 Hex 编辑器最大的教育价值——让你看到内存的真实布局:

假设玩家 struct 在内存中的布局:

偏移   Dword 名称        十进制值    Hex 字节
+00    HP               1065353216  00 00 00 3F(加密)
+04    MaxHP            100         64 00 00 00
+08    Attack           25          19 00 00 00
+0C    Defense          18          12 00 00 00
+10    Level            5           05 00 00 00
+14    PlayerName[16]   "Hero\0\0\0..."...      48 65 72 6F 00 00 ...

在 Hex 编辑器里,你能看到这一整段连续内存。理解这个布局后,你就知道:

Hex 编辑器的实际用途

用途说明
调试搜索结果看到原始字节,确认搜到的地址是不是"真数据"还是"副本"
修改 ASCII 字符串改玩家名字、NPC 名字、关卡名
处理 Bitmask 数据一个字节存多个开关状态时逐位修改
理解加密算法观察加密后的数据在内存中长什么样
处理非标准类型游戏用自定义的小数值格式或特殊编码时

注意事项