-
Постов
572 -
Зарегистрирован
-
Посещение
-
Победитель дней
34
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент aliast
-
Сейчас только погуглил - это что, Java-игра? Насколько я могу судить в Яве адреса могут прыгать, как в Flash. Я когда в Minecraft'е искал голод и здоровье этот адрес в какой-то момент изменялся на другой. При этом из игры я не выходил и вроде бы причин для смены адреса не было. Может и в этой игре адрес плавающий..
-
А ты не думал что после перетасовки колоды может быть перерасчёт DMA-адресов? Тогда вообще хрен что найдёшь. Когда-то давно я пробовал ломать карты, не получилось. Даже нашёл исходники каких-то карт, но так ничего и не добился.
-
Вообще логично предположить, что истинный ID игрока при изменении его на ID врага должен превращать игрока в союзника врагов. Но это только в теории. На практике я этот вопрос мало изучал.. данное утверждение справедливо для игр серии Operation Flashpoint и Arma. В любом случае игра как-то "знает" кого атаковать, а кого нет... надо будет при случае заняться тестами.
-
Мне кажется эта бредятина для 2D платформеров каких-нибудь. Может будет спрайты выдирать. Но вот полезность опции для PC-игр весьма сомнительна.
-
IDA Pro прекрасно сохраняет всё как надо. Ссылка на читы http://yadi.sk/d/gUAuDz_S2K33U Ссылка на ориг. файлы seadogs.c, ships\ships.c и ships_init.c (кто хочет добавлять в игру новые корабли) http://yadi.sk/d/-dsKvVTa2UnWN Ссылка на все вытащеные скрипты в одном файле (делить на отдельные файлы было лениво) http://yadi.sk/d/AzjWxhNn2Unyn Все файлы для игры версии ver. 1.0.4 (25.12.12) - в пропатченных играх эти скрипты могли измениться! Использование скриптов от другой версии может привести к неработоспособности исправлений, внесённых новым патчем.
-
Переключить отладчик в режим VEH Debugger или, если не поможет, в Kernel Mode, отключив обязательную проверку подписи драйверов при запуске винды. По поводу недоступности настроек отладчика - нужно просто перезапустить Cheat Engine и не выбирая процесса игры изменить эти опции - они блокируются после выбора процесса если не ошибаюсь.
-
Пробовал, не фурычит - разрабы пофиксили этот "чит". В общем-то я тоже добился вызова функции сохранения, появляются надписи "Идёт сохранение", затем "Готово", а сохранения тю-тю скорее всего либо функция не та, либо там идёт доп. проверка на "активатор" сохранения - просто ли вызвали функцию или магнитофон её вызвал? Функцию вроде такую нашёл (void __thiscall CTapeRecorder__TapeUse(CTapeRecorder *this, CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)), но пока непонятно как ЕГО вызывать. И можно ли обойтись без этого... Ну а кому интересно вот скрипт на вызов сохранения (толку то...)
-
И всё-таки никак не могу разобраться как же вызывать внутриигровые функции без вылета из игры... тут как-то всё просто получилось: http://forum.gamehac...__fromsearch__1 Имеется игра Cry of Fear, в ней разработчики оставили файл с отладочной инфой hl.pdb, как следствие все функции подписаны, имеется список классов, почти исходники)) пытаюсь сделать квиксэйв, чтобы сохраняться в любом месте игры, а не только возле магнитофонов. Вроде бы кто-то что-то подобное делал для старых версий игры, хочется самому научиться) Функция отвечающая за сохранение находится в файле CryOfFear\cl_dlls\hl.dll, называется (если я ничего не напутал) void __thiscall CBasePlayer__PreSave(CBasePlayer *this, int slot). На входе видим указатель на игрока и номер слота 1-5. Вот её псевдокод:
-
Для интересующихся инфа по прогрессу взлома игры. Мне помогли вытащить скрипты из игры (не все, а только те, что загружаются при запуске игры). В результате проблема с размерностью массивов выше отпала сама собой (причину ошибки так и не понял). Однако появился неприятный сюрприз - отладочная консоль никак не вызывается. Вроде бы всё на месте - интерфейс отладочного окна есть, файл скрипта Interface\debuger.c распакован, но насколько я понимаю не срабатывает ивент BOAL_Control, тот самый внутриигровой ивент, вызывающий консоль. т.е. этот ивент скорее всего обрабатывается ENGINE.EXE или одной из dll-ок и не даёт себя перехватить посредством скриптов надо копаться в дизассемблере, а это сложно)) возможно я не там копаю...
-
Видимо никак, не умеет такого оля... http://www.rohitab.com/discuss/topic/35055-can-i-debug-the-kernel-mode-program-while-runtime-using-ollydbg/
-
А всё же непонятно - всегда сравнивали структуры по старинке, в dissect data вводи несколько адресов, группируем в группы, смотрим что зелёное, что синее, а что красное. Читал форум даркбайта, там особо инфы тоже нет. Один умелец сделал фильтр на игрока, найдя какую-то уникальную СТРОКУ с помощью этого паука. Но потом чуть позже переделал фильтр с полноценным фильтром с id игрока. Какого-то туториала с описанием преимуществ паука так и не нашёл. Как и Ultimap (поисковик функций) - ультимап немного описывается, но примеров взлома с ним нет(( и это печалит..
-
Теперь стало возможно ломать игры в реальном времени с помощью отладчика ProDG, но чтобы он заработал нужно конвертнуть консоль в DEX (заменить прошифку и BIOS). Я это всё сделал, но отладчик упорно не видит процесс с игрой. С этой проблемой столкнулась куча народа и никто не может внятно объяснить как её фиксить. Может кто разберётся и найдёт фикс) Минусы данного метода: 1) Мало кому захочется возиться с конвертацией консоли в DEX 2) Непонятная проблема с процессом игры в отладчике 3) Непонятно как искать данные в окне дампа памяти Предполагается сохранение дампа с разным числом взламываемого параметра и их сравнение. Всё ещё не хватает Cheat Engine для PS3 Плюсы: 1) Взлом в реальном времени прямо во время игры (если знать адреса) 2) Возможность ставить бряки на доступ к адресам памяти (неподтверждено, но вроде можно) Ссылка на форум где идёт общение с авторами метода (так они и не ответили внятно на пробоему с процессами). Нужна регистрация на форуме чтобы читать тему. Вот ссылка на перевод статьи
-
Забавный глюк ошибка - если зайти в раздел линых сообщений и нажать кнопку "Просмотр новых публикаций" откроются не новые посты, а список новых членов нашего форума)))
-
В общем мне по прежнему непонятно какого чёрта оно ругается на размер массива object Nations[MAX_NATIONS]; при определённом выше #define MAX_NATIONS 5. Обе строки находятся в файле globals.c, который ДОЛЖЕН браться из внутренних ресурсов игры при его отсутствии в папке PROGRAM, но ведь ругается.. в файле seadogs.c к массиву нет прямого обращения, есть только вызов функции, которая уже обращается к этому массиву. Функция NationsInit() также находится за пределами seadogs.c - мистика какая-то, либо хитрая защита от распаковки скриптов... С ошибкой столкнулся другой чел, отписал ему в личку, может он нашёл решение за 2 года... Но есть и хорошие новости - исходники скриптов в текстовом виде распаковываются игрой и на какое-то недолгое время оседают в памяти по адресу [[0046B044]+0] (применительно к версии 1.0.2) - они оттуда очень быстро удаляются уже после появления на экране логотипа Акеллы, так что извлекать их надо в процессе загрузки игры. Чем я сегодня и попробую заняться Upd: природа ошибки - компилятор не даёт указывать размерность массива через переменную, хоть ты её перез #define обЪявляй, хоть даже через int DIMENSION=10; int mas[DIMENSION]; Всё равно вылезет ошибка размера. Почему так происходит непонятно... Фиксить только жёстко заданной размерностью int mas[10]; Подскажите как из памяти текст скопировать? CE или Olly копирует вместе с байтами - HEX-представлением буковок.. а как без них бы?
-
Решил выложить свои наработки по расшифровке байт-кода скриптов, может кому пригодится) У меня затык на индексации функций, не пойму по какому принципу они индексируются... Скрипт seadogs.c восстановлен до строки 833, дальше пока затык... Вот бы дизассемблер кто накатал... А тем временем файл seadogs.c полностью восстановлен, но игра с ним не запускается, выдаёт странные ошибки в другом файле, который я даже не трогал.. бред... пытаюсь найти проблему. Восстановленные файлы прикрепляю. b-code.rar PROGRAM_CSS.rar
-
Итак, начинаем ломать новую часть Корсаров Каждому своё v 1.0.2. Ломать игру CE по прежнему считаю слишком сложным путём. Имеем параметр "run=seadogs.c" в engine.ini, но к сожалению самого файла seadogs.c в папке с игрой не наблюдается. Попытка подсунуть игре этот и другие файлы из версии ГПК ни к чему не приводят - вылет с ошибкой о неправильной передаче аргументов функциям, другие функции оказались и вовсе не обЪявлены - видимо что-то там в движке игры изменили... Попытался как-то исправить ошибку, но там дальше вообще непонятные ошибки идут, что-то про скобку ")" - сами логи подробностями не блещут, даже не показывает имя файла в котором возникает ошибка... В общем надо как-то заставить игру запускать посторонний lua-скрипт. Все скрипты запускаются из seadogs.c (которого у нас нет). Как бы подсунуть игре оигинальный файл и заставить загружать свой скрипт пока не придумал... также непонятно откуда игра берёт файл seadogs.c, видимо из какой-то DLL-ки (вот бы его найти и выдрать как). Ломаю голову дальше... Также любопытной мне кажется другой параметр INI-файла: "codefiles = 0", который создаёт некий дамп скриптовых файлов. Как дамп превратить в текстовый файл скрипта тоже непонятно - в самом дампе сохраняются только строки, всё остальное превращается в непонятный байт-код. Сам байт-код оказался элементарный:
-
Ну да, про DLL тоже была мысль. Но потом решил накатать по быстрому ассемблерный скрипт (как-то им чаще пользуюсь, чем C++) и на удивление с первой попытки без ошибок прописал всем своим юнитам максимум рекрутов. Обрадовался, но радость оказалась преждевременной - чит сработал один раз и никаких значений не заморозил, обидно.. а мне ещё хотелось чит "бесконечный ход", а тут уже одноразовым читом никак не отделаться, нужна заморозка... надо будет попробовать DLL. Как тут правильно написать? По адресу [[FREEDOCORE.DLL+28370]+0xDAA54] находится имя юнита, а вовсе не указатель на класс. Поэтому в классе поставил char skip[0xDAA54] - а как по другому написать?
-
Речь вообще шла о первом Панзере, выходившем на приставке Panasonic 3DO в 96 году. Возможно следовало создать тему в разделе о приставках, но вопрос был про потоки, создал тут) Теперь сомнения одолели, возможно в эмуляторе эти потоки работают не так, как в PC-играх? Ну и в эмуле все события в игре обрабатываются одной инструкцией, что в общем то логично для эмулятора...Такой скрипт крашит игру:
-
Есть такая пошаговая стратегия Panzer General. Вот скрипт для максимального числа юнитов: