【发布时间】:2012-09-18 05:01:37
【问题描述】:
从this question 开始,我需要将一些内存值设置为字符串,而不是 long。我在使用作弊引擎时注意到,如果我通过浏览内存区域将地址的值设置为字符串,则会有一个整数值,例如“6513249”为“abc”。
如何将字符串转换为这种形式,以用作长字符串?
谢谢。
【问题讨论】:
标签: c# process long-integer memory-editing
从this question 开始,我需要将一些内存值设置为字符串,而不是 long。我在使用作弊引擎时注意到,如果我通过浏览内存区域将地址的值设置为字符串,则会有一个整数值,例如“6513249”为“abc”。
如何将字符串转换为这种形式,以用作长字符串?
谢谢。
【问题讨论】:
标签: c# process long-integer memory-editing
使用 Encoding.GetBytes 将字符串转换为具有正确编码的字节数组,而不是直接写入字节,毕竟您可能不需要转换为 long。
如果您必须转换为 long - 请确保您了解 endiannes 以知道应该首先使用哪些字节,再次计算编码并将字符(可能包括代理对)转换为字节数组 Encoding.GetBytes 并结合 long通过对字节使用移位运算符(>> 和 <<),每 8 个字节中取出一个值。将结果字节数组包装在 MemeoryStream 中可能比 BinaryReader 和读取长值更容易。
【讨论】: