ясно спасибо, а вообще кто знает? как сервер проверяет целостность и идентичность пакажей, насколько я знаю, не по размеру файлов(это было бы слишком просто подделать)... по хеш суммам что ли?
Если я правильно поняла, то у одного файла может быть только, единственная, уникальная хеш сумма, а не несколько (как у сд-кея например), верно? А тогда такой вопрос: реально ли изменить пакаж, так чтобы не поменялась хеш сумма или может как-то "обмануть" систему, так чтобы система "думала" что хеш не поменялся. А вообще если я захочу узнать эту самую сумму, мне надо: создать сервер, зайти (с такой игры, на него, у которой нет такого файла) и потом когда она его выкачает, то зайти и посмотреть в папке cache... так что ли? Или есть нормальный способ или прога там какая?
Если я правильно поняла, то у одного файла может быть только, единственная, уникальная хеш сумма, а не несколько (как у сд-кея например), верно? А тогда такой вопрос: реально ли изменить пакаж, так чтобы не поменялась хеш сумма или может как-то "обмануть" систему, так чтобы система "думала" что хеш не поменялся. А вообще если я захочу узнать эту самую сумму, мне надо: создать сервер, зайти (с такой игры, на него, у которой нет такого файла) и потом когда она его выкачает, то зайти и посмотреть в папке cache... так что ли? Или есть нормальный способ или прога там какая?
Да, файлу соответствует единственный хеш. Про сд-кей вопрос не понятен: в UT2004 используется GUID (что есть хеш из сд-кея), каждому ключу соответствует один GUID. Пэкедж изменить сложно. Используемая хеш-функция должна быть такой, чтобы подобрать исходные данные под хеш было сложно. Иначе бы проверка хеша была бы бессмысленной.
Узнать значения можно относительно просто, но зачем тебе значения хешей, которые использует анриал? Внимание: я не знаю, зачем нужна утилита mastermd5 в UT2004 и база хешей в файле Packages.md5. Команда ниже будет его менять. Если что-то перестало работать - я не виноват, надо было сделать бэкап!
- запустить консоль, перейти в папку System (Win+R, 'cmd', нажать OK, ввести cd 'папка System анриала' ) - ввести ucc mastermd5 -c dm-gael.ut2 dm-deck17.ut2 dm-antalus.ut2
Executing Class Engine.MasterMD5Commandlet ================================================== MD5 Database Management ==================================================
Creating a new MD5 Database... Adding New GUID DD3CA52A46F23CD883D2EFA1D32317EB for ..\maps\DM-Gael.ut2 Allowed MD5 0 [fbd2ad0c41e36d77dd4d2de846668351] Adding New GUID 23126B9545527D546BDBF3B6393505A4 for ..\maps\DM-Deck17.ut2 Allowed MD5 0 [92e101a3c8febdcdbf643084bef18c15] Adding New GUID D7B47504448839EFE0B05F9F71F09418 for ..\maps\DM-Antalus.ut2 Allowed MD5 0 [bc1de5e805824500456ed2c37f586e40] ================================================== No of Packages in Array: 3 ================================================== Package GUID: DD3CA52A46F23CD883D2EFA1D32317EB Revision: 0 Native 1 MD5 #0 [fbd2ad0c41e36d77dd4d2de846668351] Package GUID: 23126B9545527D546BDBF3B6393505A4 Revision: 0 Native 1 MD5 #0 [92e101a3c8febdcdbf643084bef18c15] Package GUID: D7B47504448839EFE0B05F9F71F09418 Revision: 0 Native 1 MD5 #0 [bc1de5e805824500456ed2c37f586e40] ================================================== This MD5 Database is at revision level 0 Save=1.044260 Moving 'Save.tmp' to 'Packages.md5' Success - 0 error(s), 0 warning(s)
GUID соответствует записи в cache.ini, MD5 - хеш самого файла. Проблема в том, что он не соответствует MD5, который можно получить в Total Commander или какой-нибудь утилитой в линуксе. Скорее всего MD5 считается от файла + что-то еще.
ЦитатаXCanG ()
EVA, да, по хешу. Можете убедиться, открыв Chache\chache.ini Например состав мб такой:
Что что по хешу, это, конечно, верно. Но открыв этот файл, можно увидеть только GUID пэкэджей, а не сами хеши файлов (а в чем там можно убедиться - вообще загадка, там не написано, что это хеши). Т.е. если качать, допустим, DM-Gael, который бездумно ретекстурировали на разных серверах по разному, то GUID будет один и тот же, и добавится постфикс. Хеш файлов клиента хранить нет смысла, его все равно надо проверять каждый раз.
ЦитатаXCanG
Нормального способа нет. Только через извращения. И у СД-кея нет хеш-суммы. СД-кей и есть СД-кей.
У СД-кея есть хеш-сумма. Во-первых, у чего-угодно в цифровом виде есть хеш. Во-вторых, у СД-кея есть не просто некие произвольные хеши, которые можно получить, взяв с потолка, или выдумав свою хеш-функцию. У СД-кея есть GUID, который тоже есть его хеш.