内存扫描 - Natsukage/PostNamazu GitHub Wiki

内存扫描

鲶鱼精邮差内存扫描的方法 ScanText 所用的内存签名格式如下:

  • 每个确定的字节以十六进制表示,如 0F 48 E9

  • 字节间以 分隔

  • 普通的未知字节占位符以 ??? 表示

  • 代表相对寻址的未知字节占位符以 *** 表示,如果使用,则仅能有连续四个。如:

    • 48 8D 0D * * * * 4C 8B 85 ...
    • E8 * * * * 48 83 C4 ? E9 ? ? ? ? ...

未使用相对寻址(内存签名不含 *)时,返回这串签名起始处的地址;

使用相对寻址时,返回 * * * * 指定寻址的地址(计算方式为 * * * * 后的地址 + 这四字节对应的 int 偏移量)。

例:

  • 内存数据:

    E8 67 45 23 01 48 83 C4 20 E9 F5 39 06 00 @ 7FF700000000

  • 内存签名 1:

    E8 ?? ?? ?? ?? 48 83 C4 ?? E9 ?? ?? ?? ??

    代表仅获取这串签名所在位置,即返回 7FF700000000

  • 内存签名 2:

    E8 ** ** ** ** 48 83 C4 ?? E9 ?? ?? ?? ??

    代表使用相对寻址,即返回 7FF700000005 + 01234567 = 7FF70123456C