wickedliving Posted November 21, 2023 Posted November 21, 2023 Hello everyone, I'm back!!I have been working on a project that involves DayZ (standalone). I am trying to implement private hives as my end goal. I am struggling with an sqlite blob of data that they dump into the db and when the player reenters the game, it parses the blob for use. I'm mostly struggling because the data seems all over the place. I've figured out some good chunks of the data but I'm struggling with about 170-175 bytes that I'm positive are used for player stats. Generally, the blob is pretty straightforward. The blob is pasted below for reference. The first 16 bytes are position data. 02 00 79 D4 4B 46 CC 13 B8 40 9E FF F4 45 22 7CThe first two bytes, 02 00, are unknown but I believe it has something to do with rotational value. The next four bytes, 79 D4 4B 46, are position X and create little endian float32 value of 13045.1The next four bytes, CC 13 B8 40, are unknown, but again I'm pretty sure it is a LE float32 with a value of 5.75242 (I think a rotation)The next four bytes, 9E FF F4 45, are position Y and create LE float32 value of 7839.95.The next four bytes, 22 7C 0F 53, are unknown but create a LE float32 value of 6.16263E+11This is where things get similar to Conquer string packing.The next byte, 0F, is a uint8 equal to 15. The next 15 bytes provide the model name in ascii: SurvivorF_Linda (53 75 72 76 69 76 6F 72 46 5F 4C 69 6E 64 61)The next 12 bytes, 03 01 00 00 5A 00 00 00 00 00 05 00, are not prefixed by any leading byte designating the length. I am guessing this determines the model options when setting up your character but I have no verified it. I'm not worried about this portion yet.The next series of bytes provide overall stats and are prefixed by a length designator. Immediately following the length prefix are 4 bytes which contain the value for the stat which vary from float32 to int32.04 64 69 73 74 06 58 7F 40[4] [dist] [3.98975] (float32)0E 70 6C 61 79 65 72 73 5F 6B 69 6C 6C 65 64 00 00 00 00[14] [players_killed] [0] (int32)0F 69 6E 66 65 63 74 65 64 5F 6B 69 6C 6C 65 64 00 00 00 00[14] [infected_killed] [0] (int32)08 70 6C 61 79 74 69 6D 65 08 EC 22 43[8] [playtime] [162.922] (float32)14 6C 6F 6E 67 65 73 74 5F 73 75 72 76 69 76 6F 72 5F 68 69 74 00 00 00 00[14] [longest_survivor_hit] [0] (flaot32)Most of this so far has been a write up, but I really am struggling with this next part. Currently, I'm sifting through Ghidra and ImHex of a memory dump to try to figure out how the next 170-175 bytes are created. After the 170-175 bytes the items begin which is pretty straightforward because they are length prefixed, strings, and that stats for the items are straightforward too. I am very much struggling with these 170-175 bytes though. I have gone in the game and tried performing different things to get the values to change, but it all seems random.87 00 00 00 89 1A 4C 9D A2 A5 40 89 A4 FC 02 90 88 10 92 FE 58 00 00 00 C9 FF FF C9 FF FF C2 C9 FF FF C2 C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF 31 00 00 00 00 00 00 00 00 C8 1B 54 C7 00 CA F5 09 0D 44 CA 40 9B 15 44 CA 00 40 1C 45 CA 00 00 C8 42 C7 04 C7 C7 00 00 80 00 D2 76 E7 6E C7 00 00 00 00 02 00 03 00 00 00 30 01 00 00Any help would be appreciated, even if you take a quick look and notice a pattern within the series.Full blob dump:02 00 79 D4 4B 46 CC 13 B8 40 9E FF F4 45 22 7C 0F 53 75 72 76 69 76 6F 72 46 5F 4C 69 6E 64 61 03 01 00 00 5A 00 00 00 00 00 05 00 04 64 69 73 74 06 58 7F 40 0E 70 6C 61 79 65 72 73 5F 6B 69 6C 6C 65 64 00 00 00 00 0F 69 6E 66 65 63 74 65 64 5F 6B 69 6C 6C 65 64 00 00 00 00 08 70 6C 61 79 74 69 6D 65 08 EC 22 43 14 6C 6F 6E 67 65 73 74 5F 73 75 72 76 69 76 6F 72 5F 68 69 74 00 00 00 00 87 00 00 00 89 1A 4C 9D A2 A5 40 89 A4 FC 02 90 88 10 92 FE 58 00 00 00 C9 FF FF C9 FF FF C2 C9 FF FF C2 C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF C9 FF FF C7 C9 FF FF 31 00 00 00 00 00 00 00 00 C8 1B 54 C7 00 CA F5 09 0D 44 CA 40 9B 15 44 CA 00 40 1C 45 CA 00 00 C8 42 C7 04 C7 C7 00 00 80 00 D2 76 E7 6E C7 00 00 00 00 02 00 03 00 00 00 30 01 00 00 19 54 53 68 69 72 74 5F 4F 72 61 6E 67 65 57 68 69 74 65 53 74 72 69 70 65 73 00 00 FF FF FF FF 04 42 6F 64 79 1F 00 00 00 65 29 BE 6F 1F A8 4F C7 A7 71 DD AB 9F CA B5 F2 03 00 00 00 C9 02 7D 04 00 00 00 01 FF 00 00 03 00 00 00 40 00 00 00 0F 42 61 6E 64 61 67 65 44 72 65 73 73 69 6E 67 00 00 00 00 00 00 05 63 61 72 67 6F 1C 00 00 00 7D A3 A0 91 AC 78 43 F9 AB 79 A0 D0 E5 AB 71 8B 00 00 00 00 04 00 00 00 01 02 00 00 00 00 00 00 55 00 00 00 0F 43 68 65 6D 6C 69 67 68 74 5F 57 68 69 74 65 00 00 00 00 01 00 05 63 61 72 67 6F 31 00 00 00 D5 63 7A 79 9E 15 49 C7 93 86 2C 42 ED C0 B9 66 03 00 00 00 C9 F2 8F 16 00 00 00 CA 00 C0 28 46 00 00 00 00 00 00 00 01 01 01 01 CA 00 00 C8 42 00 00 00 00 00 43 00 00 00 05 41 70 70 6C 65 00 00 00 00 02 00 05 63 61 72 67 6F 29 00 00 00 32 99 4F A8 23 A6 45 FA BD 53 50 F0 71 81 67 44 03 00 00 00 C9 09 A2 0E 00 00 00 01 03 00 00 01 00 00 00 CA 24 34 36 47 01 00 00 00 00 48 00 00 00 15 43 61 6E 76 61 73 50 61 6E 74 73 4D 69 64 69 5F 42 65 69 67 65 00 00 FF FF FF FF 04 4C 65 67 73 1F 00 00 00 B4 29 B8 C1 82 80 4C 08 8C 59 0B DC D8 06 74 21 03 00 00 00 C9 FB 83 04 00 00 00 01 FF 00 00 00 00 00 00 46 00 00 00 13 41 74 68 6C 65 74 69 63 53 68 6F 65 73 5F 42 6C 61 63 6B 00 00 FF FF FF FF 04 46 65 65 74 1F 00 00 00 17 DE 60 80 43 43 44 0E A4 C1 15 B4 1F 49 36 34 03 00 00 00 C9 E1 FF 04 00 00 00 01 FF 00 00 00 00 00 00 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.