это врядли будет безопаснее... тем более мне кажется что игра запускается с каким-то параметром, как минимум я в апдейтере нарыл параметр -savemode, что подтверждает теорию ибо после всех проверок апдейтер предлагает запуск игры в save режиме, так что вариантов 2. Или обойти все проверки или научиться запускать программу непосредственно тем более если я не могу пересобрать апдейтер, куда мне до самой игры... какая-то тупизна с unicode 0, <"">, 0
не то я бегло пробежался и кажется, что все-таки сама игра смотрит кто ее вызвал и из этого оперирует... так что нужно пользоваться планом А. Отучивать Апдейтер совать мне палки в колеса
Пишешь в фасме invoke WinExec,"coh.exe" ....и называешь файл CohUpdater.exe Это я конечно утрирую, но я бы отучивал саму игру от апдейтера. А crypto и roman_pro сказали самый лучший вариант - пересчитать хэши. Если их список не проверяется в интернете, то будет самое то. ---------- Есть ещё глупый вариант) Поставить Пакет Denver, открыть на локальной машине веб сервер с адресом coupdate.coh.com и выложить туда пропадченные файлы)
Zhbanito А зачем пересобирать дизассемблированный код? Нужно патчить саму программу в 16-ричном редакторе.
как же мне это подобрать? я хочу по 404793 вставить mov ecx, 0 ... пока тока получилось вставить mov ecx, [ebp+0] оно же 8B 8D 00 00 00 00
Zhbanito Сделай две замены: 1. Адрес 0x404793: меняешь байты 0x74, 0x4E на 0x90, 0x90 (короче правишь команду jz на nop, nop) 2. Адрес 0x404806 : меняешь байты 0x74, 0x0D на 0x90, 0x90 (короче правишь команду jz на nop, nop) Если это прокатит, то проще изменить текст процедуры FileChecksum (адрес 0x40404D), чтобы она всегда возвращала 1 (если я не ошибся ). Твое дело - проверить гипотезу, так как игры у меня нет.
он в самом начале сам себя проверяет ситуация такая. сначала идет подключение к какому-то серверу, а потом идет проверка апдейтера. ну а дальше поскольку апдейтер бракованый, то закачивается новый интересно а сам апдейтер проверяется функцией FileChecksum?
Zhbanito Можешь указать адрес, где это происходит? Я не могу скачать игру, соответственно дебужить тоже не могу. Я так понимаю, что ты просто обязан добраться без проблем до адреса 407707, где вызывается функция clientPatch. И объясни все-таки идеологию обновлений (что такое к примеру major_patch, client_patch...)
я не знаю адреса этого... это происходит при запуске апдейтера, пишется процесс. вообще тебе игра и не нужна... апдейтер независимая программа, которая в случае отсутствия игры закачивает ее, так что можешь его "пропатчить" и попробывать запустить, тогда увидишь то, что вижу я. идеологию я не знаю, т.к. она скрыта от конечного пользователя. Ты просто ждешь пока апдейтер сделает что ему нада и нажимаешь на кнопку Next major_patch видимо самая последняя версия патча client_patch видимо текущая установленная версия патча как минимум я вроде подобрался к инициализации сети (слава богу, я с WinSock на ты), значит где-то рядом подключение к серверу, а чуть дальше собственно проверка самого Апдейтера
Zhbanito Вот я закачать ее и не могу (политики админстрации не позволяют). Ладно, попробуем так, без всего.
Zhbanito Давай еще попробуем вариант - я тебе буду говорить точки бряка для дебуггера, а ты будешь сообщать, добрался ты до этого места или нет. ЗЫ Чтобы не разводить флуд в топике, можно информацией обмениваться через личные сообщения.
Видимо тему можно закрыть, поскольку сам топикстартер посоветовал на нее забить ввиду бесперспективности