细心的小伙伴可能会问了,虽然这是服务器,但它也在程序的进程内,内存空间是在一起的,怎么会没有办法修改呢? 简单的说,就是 Python 的值打一枪换一个地方,所以 CE 这种搜固定内存的变化的方法是很难直接找到对应的值进行修改的。你可以自己启动 Python,输入 a=1234, 用 CE 搜索,再输入 a = a+1,再用 CE 搜索,是搜不到任何对应内存的。 下面我用一段官方的示例代码,来说明一下。这段 Python 代码和 C 代码是等价的,用于将 dict[key] 自增 1.
data = b'3\r\r\nPU\\d\xf6\x01\x00\x00\xe3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00@\x00\x00\x00\x1a\x00\x00\x00s4\x00\x00\x00||\xfc\xf8\xefT||\xfc\xef\xdd\xc4|\xc7\x95\xfd\xc5\xf5\xc4||\xb7\xef|\x13j\x00\x01\x00\x01\x01\x01\x00\x02\x02\x02\x00\x03\x03\x04\x00\x07\x13\x14\x00\x05\x04\x05\x00\x06\x02\x01)\x06\xe9\x00\x00\x00\x00)\x01\xda\x0bPythonErrorN\xda\x0bg_CustomClsc\x01\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\t\x00\x00\x00C\x00\x00\x00&\x00\x00\x00sO\x00\x00\x00\x7fo\xfd\xc5|\x13\x7fo\xfd\xc5\xdco\xaa|\x7f\x0f\x95\xfa\x7f\xaao\x7f)d\xc3TTTo\x95T|\x13o\x7f3\x13j\x00\x00\x07\x06\x07\x00\x01\x00\x01\x07!%\x0e\x0f\x02\x03\x01\x00\x01\x01\x01\x01\x04\x01\x00\x01\x01\x08\x08\x01\x01\x01\x05\x00\x01\x00\x01\x01\x00\x01\x01)\x02Nz!cl_platformdata.custom.weapon.i%d)\x06\xda\x0fg_CustomDefinesr\x03\x00\x00\x00\xda\timportlib\xda\rimport_moduleZ\x07CCustomr\x02\x00\x00\x00)\x02Z\x07iCustom\xda\x03mod\xa9\x00r\x08\x00\x00\x00\xfa8..\\clientlogic\\cl_platformdata\\custom\\weapon\\__init__.py\xda\x0cGetCustomCls\r\x00\x00\x00s\x14\x00\x00\x00\x00\x03\x04\x01\x02\x01\x04\x01\x01\x01\x07\x01\x07\x01\x03\x01\x03\x01\x02\x01r\n\x00\x00\x00)\x07Z\x07cl_onlyr\x02\x00\x00\x00r\x05\x00\x00\x00r\x04\x00\x00\x00\xda\x07globalsr\x03\x00\x00\x00r\n\x00\x00\x00r\x08\x00\x00\x00r\x08\x00\x00\x00r\x08\x00\x00\x00r\t\x00\x00\x00\xda\x08<module>\x02\x00\x00\x00s\n\x00\x00\x00\x06\x02\x04\x03\x02\x02\x05\x01\x02\x03'