Вместе с некоторыми другими людьми мы пытаемся сделать Savegameeditor для игры, но столкнулись с некоторыми проблемами. Файлы сохранений содержат своего рода контрольную сумму, и мы не можем найти, какая контрольная сумма используется для этого. На данный момент мы знаем только следующее:
Мне интересно, есть ли лучший способ определить, какая контрольная сумма используется для этих файлов, или если кто-то знает какие-либо советы, чтобы узнать, какая контрольная сумма используется. Сейчас я просто пробую некоторые контрольные суммы, которые я нашел на разных сайтах, в программе на C++. Возможно, также важно знать, что игра 2004 года, и в других файлах она использовала DJB2 для строковых хэшей. По словам других людей, .exe, похоже, использует проверку CRC32.
Edit 1: Через некоторое время мне удалось получить 924 различные версии одного и того же файла, за исключением 2 байт, которые меняются в каждом сохранении, и я также получил контрольные суммы этих файлов, чтобы посмотреть, как он реагирует на эти изменения, и составил список. (Обратите внимание, что я не могу вручную вносить изменения в файл, и игра просто делает контрольную сумму для него, каждый раз, когда я сохранял файл, она добавляла +2 к беззнаковому long, содержащему изменяющееся число, вот как я создал список.)
Смотрите часть списка ниже здесь (50 записей из 924):
> The bytes Checksum (as Hex and unsigned long)
> -----------------------------
> 0x 0 0x18 0x 0 0x13DFA 81402
> 0x 0 0x19 0x 0 0x13F76 81782
> 0x 0 0x1A 0x 0 0x1406D 82029
> 0x 0 0x1B 0x 0 0x14114 82196
> 0x 0 0x1C 0x 0 0x13EC5 81605
> 0x 0 0x1D 0x 0 0x13790 79760
> 0x 0 0x1E 0x 0 0x143C1 82881
> 0x 0 0x1F 0x 0 0x13ED0 81616
> 0x 2 0x18 0x 0 0x13D02 81154
> 0x 2 0x19 0x 0 0x13ABD 80573
> 0x 2 0x1A 0x 0 0x14271 82545
> 0x 2 0x1B 0x 0 0x13E39 81465
> 0x 2 0x1C 0x 0 0x140FC 82172
> 0x 2 0x1D 0x 0 0x13FFE 81918
> 0x 2 0x1E 0x 0 0x1413B 82235
> 0x 2 0x1F 0x 0 0x13A5F 80479
> 0x 4 0x18 0x 0 0x138F2 80114
> 0x 4 0x19 0x 0 0x141AE 82350
> 0x 4 0x1A 0x 0 0x13E91 81553
> 0x 4 0x1B 0x 0 0x13F67 81767
> 0x 4 0x1C 0x 0 0x13C6C 81004
> 0x 4 0x1D 0x 0 0x13F4E 81742
> 0x 4 0x1E 0x 0 0x13BB8 80824
> 0x 4 0x1F 0x 0 0x1398D 80269
> 0x 6 0x18 0x 0 0x146C0 83648
> 0x 6 0x19 0x 0 0x139B5 80309
> 0x 6 0x1A 0x 0 0x13FAC 81836
> 0x 6 0x1B 0x 0 0x13E71 81521
> 0x 6 0x1C 0x 0 0x14162 82274
> 0x 6 0x1D 0x 0 0x13D55 81237
> 0x 6 0x1E 0x 0 0x13BE8 80872
> 0x 6 0x1F 0x 0 0x13B72 80754
> 0x 8 0x18 0x 0 0x142FE 82686
> 0x 8 0x19 0x 0 0x13E07 81415
> 0x 8 0x1A 0x 0 0x14923 84259
> 0x 8 0x1C 0x 0 0x13D3E 81214
> 0x 8 0x1D 0x 0 0x14420 82976
> 0x 8 0x1E 0x 0 0x13BEE 80878
> 0x 8 0x1F 0x 0 0x145F5 83445
> 0x 8 0x1F 0x 0 0x145F5 83445
> 0x A 0x18 0x 0 0x13CB6 81078
> 0x A 0x19 0x 0 0x142FB 82683
> 0x A 0x1A 0x 0 0x13EB2 81586
> 0x A 0x1B 0x 0 0x13C14 80916
> 0x A 0x1C 0x 0 0x13915 80149
> 0x A 0x1D 0x 0 0x14100 82176
> 0x A 0x1E 0x 0 0x14310 82704
> 0x A 0x1F 0x 0 0x13B34 80692
> 0x C 0x18 0x 0 0x142AE 82606
> 0x C 0x19 0x 0 0x14091 82065
Я все еще не могу увидеть закономерность между этими изменяющимися байтами и контрольной суммой, поэтому мне интересно, может кто-то еще видит закономерность между ними? Или, может быть, есть методика, как найти закономерности между ними. Если кто-то может помочь мне в этом, я также могу выложить ссылку на полный список (в формате Microsoft Excel или TXT)