2021年7月15日0A8C: write_memory 0xC0BC15 size 1 value 1 virtual_protect 0
0A8D: $result = read_memory 1@ size 4 virtual_protect 0
目前大概就搞懂了这两个,以下以子弹拖尾作为范例。
原文:
- "Start" is start address of array in gta_sa.exe v1.0 proc.
- "Size" is size of each element of array in gta_sa.exe v1.0 proc.
- "Num" is elements of array in gta_sa.exe v1.0 proc.
Start:子弹拖尾的起始内存地址为:0xC7C748
Size:其包含的数组中每一个元素的大小为:0x2c //这个不是很理解,是说这个地址的大小为0x2C吗
Num:关于该内存地址的数组元素共有:0x10 也就是16个//然而下面有17个,迷惑...
那么该内存地址的最后一个则是:0xC7C748 +( (0x10 -1)* 0x2C )= 0xC7C9DC
在Ryosuke所整理的档案里提到在起始地址加上以下偏移值(元素)可以实现不同的效果(这一部分我认为我的理解有不对的地方,感觉混淆了)
///////////////////////////////////////
+0x00 Float Trans Side X
+0x04 Float Trans Side Y
+0x08 Float Trans Side Z
+0x0C Float Yellow Side X
+0x10 Float Yellow Side Y
+0x14 Float Yellow Side Z
+0x18 Byte Exist Flag
+0x19 Byte Pad
+0x1A Byte Pad
+0x1B Byte Pad
+0x1C DWord Created Time (from 0xB7CB84)
+0x20 DWord Disappear Time (e.g. 750)
+0x24 Float Radius
+0x28 Byte Alpha
+0x29 Byte Pad
+0x2A Byte Pad
+0x2B Byte Pad
///////////////////////////////////////Type | Size | Range |
---|
Char | 1 Bytes | -0x80 - +0x7F |
Byte | 1 Bytes | +0x00 - +0xFF |
Short | 2 Bytes | -0x8000 - +0x7FFF |
Word | 2 Bytes | +0x0000 - +0xFFFF |
Long | 4 Bytes | -0x80000000 - +0x7FFFFFFF |
DWord | 4 Bytes | +0x00000000 - +0xFFFFFFFF |
Float | 4 Bytes | +/-3.4e38 - +/-1.4e-45
|
///////////////////////////////////////
关于语句的使用0A8C: write_memory 0xC0BC15(这里自然就是内存地址) size 1(这个则是偏移量的数据类型,见上表) value 1 virtual_protect 0(这里一般是填0或者1)如果目标地址是只读的话,那就写1,如果是可编辑的则是0,同理,在语句0A8D中,1代表该地址不可读,0则是可读。可以的话,还是希望有大佬能解答下...