Перейти к содержанию

aliast

Разработчики
  • Постов

    572
  • Зарегистрирован

  • Посещение

  • Победитель дней

    34

Весь контент aliast

  1. Господи, что-то я уже совсем с этой игрой запутался... Я находил скрипты в памяти с помощью поиска текста скриптов в Cheat Engine, а выдирал из дампа памяти Ida Pro, приаттачившись к процессу и перейдя к найденному в CE адресу) изврат конечно, но самому прогу писать лениво)
  2. Сейчас только погуглил - это что, Java-игра? Насколько я могу судить в Яве адреса могут прыгать, как в Flash. Я когда в Minecraft'е искал голод и здоровье этот адрес в какой-то момент изменялся на другой. При этом из игры я не выходил и вроде бы причин для смены адреса не было. Может и в этой игре адрес плавающий..
  3. А ты не думал что после перетасовки колоды может быть перерасчёт DMA-адресов? Тогда вообще хрен что найдёшь. Когда-то давно я пробовал ломать карты, не получилось. Даже нашёл исходники каких-то карт, но так ничего и не добился.
  4. Вообще логично предположить, что истинный ID игрока при изменении его на ID врага должен превращать игрока в союзника врагов. Но это только в теории. На практике я этот вопрос мало изучал.. данное утверждение справедливо для игр серии Operation Flashpoint и Arma. В любом случае игра как-то "знает" кого атаковать, а кого нет... надо будет при случае заняться тестами.
  5. Мне кажется эта бредятина для 2D платформеров каких-нибудь. Может будет спрайты выдирать. Но вот полезность опции для PC-игр весьма сомнительна.
  6. Таки поиск бы помог) http://forum.gamehacklab.ru/topic/1925-корсары-каждому-своё/
  7. 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) - в пропатченных играх эти скрипты могли измениться! Использование скриптов от другой версии может привести к неработоспособности исправлений, внесённых новым патчем.
  8. Продолжаю изучать вызовы функций игрового движка. Пока только научился выводить надпись на экране. Функцию Log_Info(string, false) нашёл с помощью Function Hacker'а. Читом это назвать сложно, но вдруг кому интересно вот скрипт:
  9. Переключить отладчик в режим VEH Debugger или, если не поможет, в Kernel Mode, отключив обязательную проверку подписи драйверов при запуске винды. По поводу недоступности настроек отладчика - нужно просто перезапустить Cheat Engine и не выбирая процесса игры изменить эти опции - они блокируются после выбора процесса если не ошибаюсь.
  10. И правда что работает.. вчера почему-то не работало... тогда сейчас разберусь с тем нопом чтобы без него всё работало и придумаю как прикрутить описание .cof, чтобы самому не создавать Итак, QuickSave в первый слот:
  11. Хмм... про формат сохранений я в курсе. Однако лично у меня мой скрипт не создаёт никаких файлов! Ни .cof, ни .sav. У кого-то создаётся .sav? Очень интересно.. сейчас проверил, даже если сохраняться на магнитофон без читов файл.sav в этой функции не создаётся) надо искать другую((
  12. Пробовал, не фурычит - разрабы пофиксили этот "чит". В общем-то я тоже добился вызова функции сохранения, появляются надписи "Идёт сохранение", затем "Готово", а сохранения тю-тю скорее всего либо функция не та, либо там идёт доп. проверка на "активатор" сохранения - просто ли вызвали функцию или магнитофон её вызвал? Функцию вроде такую нашёл (void __thiscall CTapeRecorder__TapeUse(CTapeRecorder *this, CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value)), но пока непонятно как ЕГО вызывать. И можно ли обойтись без этого... Ну а кому интересно вот скрипт на вызов сохранения (толку то...)
  13. И всё-таки никак не могу разобраться как же вызывать внутриигровые функции без вылета из игры... тут как-то всё просто получилось: 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. Вот её псевдокод:
  14. Для интересующихся инфа по прогрессу взлома игры. Мне помогли вытащить скрипты из игры (не все, а только те, что загружаются при запуске игры). В результате проблема с размерностью массивов выше отпала сама собой (причину ошибки так и не понял). Однако появился неприятный сюрприз - отладочная консоль никак не вызывается. Вроде бы всё на месте - интерфейс отладочного окна есть, файл скрипта Interface\debuger.c распакован, но насколько я понимаю не срабатывает ивент BOAL_Control, тот самый внутриигровой ивент, вызывающий консоль. т.е. этот ивент скорее всего обрабатывается ENGINE.EXE или одной из dll-ок и не даёт себя перехватить посредством скриптов надо копаться в дизассемблере, а это сложно)) возможно я не там копаю...
  15. aliast

    Ollydbg

    Видимо никак, не умеет такого оля... http://www.rohitab.com/discuss/topic/35055-can-i-debug-the-kernel-mode-program-while-runtime-using-ollydbg/
  16. А всё же непонятно - всегда сравнивали структуры по старинке, в dissect data вводи несколько адресов, группируем в группы, смотрим что зелёное, что синее, а что красное. Читал форум даркбайта, там особо инфы тоже нет. Один умелец сделал фильтр на игрока, найдя какую-то уникальную СТРОКУ с помощью этого паука. Но потом чуть позже переделал фильтр с полноценным фильтром с id игрока. Какого-то туториала с описанием преимуществ паука так и не нашёл. Как и Ultimap (поисковик функций) - ультимап немного описывается, но примеров взлома с ним нет(( и это печалит..
  17. Теперь стало возможно ломать игры в реальном времени с помощью отладчика ProDG, но чтобы он заработал нужно конвертнуть консоль в DEX (заменить прошифку и BIOS). Я это всё сделал, но отладчик упорно не видит процесс с игрой. С этой проблемой столкнулась куча народа и никто не может внятно объяснить как её фиксить. Может кто разберётся и найдёт фикс) Минусы данного метода: 1) Мало кому захочется возиться с конвертацией консоли в DEX 2) Непонятная проблема с процессом игры в отладчике 3) Непонятно как искать данные в окне дампа памяти Предполагается сохранение дампа с разным числом взламываемого параметра и их сравнение. Всё ещё не хватает Cheat Engine для PS3 Плюсы: 1) Взлом в реальном времени прямо во время игры (если знать адреса) 2) Возможность ставить бряки на доступ к адресам памяти (неподтверждено, но вроде можно) Ссылка на форум где идёт общение с авторами метода (так они и не ответили внятно на пробоему с процессами). Нужна регистрация на форуме чтобы читать тему. Вот ссылка на перевод статьи
  18. А может быть Memory dissect это dissect code? Или диссект код там тоже есть? Дисект код это анализ файла, сбор инфы по всем джампам. Вещь удобная, но на практике пока не пригодилось.
  19. Забавный глюк ошибка - если зайти в раздел линых сообщений и нажать кнопку "Просмотр новых публикаций" откроются не новые посты, а список новых членов нашего форума)))
  20. В общем мне по прежнему непонятно какого чёрта оно ругается на размер массива 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-представлением буковок.. а как без них бы?
  21. Решил выложить свои наработки по расшифровке байт-кода скриптов, может кому пригодится) У меня затык на индексации функций, не пойму по какому принципу они индексируются... Скрипт seadogs.c восстановлен до строки 833, дальше пока затык... Вот бы дизассемблер кто накатал... А тем временем файл seadogs.c полностью восстановлен, но игра с ним не запускается, выдаёт странные ошибки в другом файле, который я даже не трогал.. бред... пытаюсь найти проблему. Восстановленные файлы прикрепляю. b-code.rar PROGRAM_CSS.rar
  22. Итак, начинаем ломать новую часть Корсаров Каждому своё v 1.0.2. Ломать игру CE по прежнему считаю слишком сложным путём. Имеем параметр "run=seadogs.c" в engine.ini, но к сожалению самого файла seadogs.c в папке с игрой не наблюдается. Попытка подсунуть игре этот и другие файлы из версии ГПК ни к чему не приводят - вылет с ошибкой о неправильной передаче аргументов функциям, другие функции оказались и вовсе не обЪявлены - видимо что-то там в движке игры изменили... Попытался как-то исправить ошибку, но там дальше вообще непонятные ошибки идут, что-то про скобку ")" - сами логи подробностями не блещут, даже не показывает имя файла в котором возникает ошибка... В общем надо как-то заставить игру запускать посторонний lua-скрипт. Все скрипты запускаются из seadogs.c (которого у нас нет). Как бы подсунуть игре оигинальный файл и заставить загружать свой скрипт пока не придумал... также непонятно откуда игра берёт файл seadogs.c, видимо из какой-то DLL-ки (вот бы его найти и выдрать как). Ломаю голову дальше... Также любопытной мне кажется другой параметр INI-файла: "codefiles = 0", который создаёт некий дамп скриптовых файлов. Как дамп превратить в текстовый файл скрипта тоже непонятно - в самом дампе сохраняются только строки, всё остальное превращается в непонятный байт-код. Сам байт-код оказался элементарный:
  23. Ну да, про DLL тоже была мысль. Но потом решил накатать по быстрому ассемблерный скрипт (как-то им чаще пользуюсь, чем C++) и на удивление с первой попытки без ошибок прописал всем своим юнитам максимум рекрутов. Обрадовался, но радость оказалась преждевременной - чит сработал один раз и никаких значений не заморозил, обидно.. а мне ещё хотелось чит "бесконечный ход", а тут уже одноразовым читом никак не отделаться, нужна заморозка... надо будет попробовать DLL. Как тут правильно написать? По адресу [[FREEDOCORE.DLL+28370]+0xDAA54] находится имя юнита, а вовсе не указатель на класс. Поэтому в классе поставил char skip[0xDAA54] - а как по другому написать?
  24. Речь вообще шла о первом Панзере, выходившем на приставке Panasonic 3DO в 96 году. Возможно следовало создать тему в разделе о приставках, но вопрос был про потоки, создал тут) Теперь сомнения одолели, возможно в эмуляторе эти потоки работают не так, как в PC-играх? Ну и в эмуле все события в игре обрабатываются одной инструкцией, что в общем то логично для эмулятора...Такой скрипт крашит игру:
  25. Есть такая пошаговая стратегия Panzer General. Вот скрипт для максимального числа юнитов:
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.