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

krocki

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

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

  • Посещение

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

    110

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

  1. Если есть в эмуляторе отладчик, то можно реально что то хакнуть. И создавать свои Game Genie и Game Shark коды. Playstation = Debugger-R3000. Sega Mega Drive/Genesis = Debugger-M68000. Ну и т.д.
  2. Ну что можно сказать!!! 1: Находишь адрес жизней своего юнита допустим, делаешь бряк на запись в этот адрес.2: Создаешь авто-скрипт на ту инструкция которая появиться. Типо такой mov [esi+24C],eaxВот пример, метку exit я убрал, она просто не нужна: [ENABLE]Alloc(newmem,128)Label(returnhere)Label(originalcode) newmem: originalcode:mov [esi+24C],eaxjmp returnhere GAME.EXE+12345678:jmp newmemnopreturnhere: [DISABLE]Dealloc(newmem)GAME.EXE+12345678:mov [esi+24C],eax 3: Находишь адреса 2-3 юнитов врага.Как найти адреса жизней врагов?В отладчике жмёшь правой кнопкой мыши на брякнутую инструкцию и выбираешь:"Найти адреса, получающие доступ к этой инструкции". Появится окошко для адресов.После этого ударь по одному разу 2 врагов. И в этом окошке появиться адреса врагов.Добавьте их в список, двойным нажатием левой кнопки мышки.4: В отладчике жмёшь на "Инструменты > Анализ данных/Структур" появится окно, в этом окнедалее жмёшь "Файл > Добавить новую группу" штуки 2 для врагов, поскольку одна будет уже для тебя. 5: В первую группу вбиваешь свой адрес жизней юнита, типо так 12345678-24C24С - Это смещение в брякнутой инструкции к динамическому адресу.Ну и врагов адреса также делаешь в 2 и 3 группу заносишь.Во второй группе где адрес врага, жмёшь правой кнопки мышки и выбираешь "Изменить группу"далее в новом окошке выбираешь группу номер 3 и подтвердить, то есть адреса 2 врагов будут в одной группе.Потом в окне "Анализ структуры" жмёшь на "Структуры > Определить новую структуру" и жмёшь: "Подтвердить > Да > Подтвердить" после этого появиться смещения, адреса и значения. Находишь одно уникальное смещение, то есть твоё значение например 1, а у врагов должно быть по 0-ям. Рекомендую перезапустить игру и проделать заново анализ данных/структур, чтобы точно найти правильное смещение и значение. Типо так: Анализ структур: Смещение-описание Адрес: Значение Адрес: Значение Адрес: Значениебезымянная структура0260 - 4 Bytes 12345678 : 1 12345678 : 0 12345678 : 0 6: Запоминаем смещение 0260 и значение 1 и дорабатываем наш скрипт. Примечание:Я добавил ещё одну инструкцию в скрипт и изменил на её смещение,которая находится чуть выше над этой mov [esi+24C],eax Типо так, этот образец основан на стратегии Red Alert 2: [ENABLE] // Включение скрипта.Alloc(newmem,128) // Выделенная память пустоты на 128 байт.Label(returnhere) // Обратный прыжок.Label(originalcode) // Метка для оригинального кода.Label(originalcode2) // Добавил новую метку. newmem: // Выделенная памятьcmp byte ptr [esi+260],01 // Сравниваю общий регистр с нашим смещением и значение.je originalcode2 // Если равно, то прыгаю на полу изменённый код.jmp originalcode // Делаю прыжок на оригинальный код. originalcode2: // Метка для нашего кода бессмертия.nop // Здесь затёрли ненужную инструкцию test eax,eaxnopmov [esi+24C],eax // Оригинальная инструкция где сработал наш бряк.jmp returnhere // Делаем прыжок обратно. originalcode: // Метка для нашего оригинального кода.test eax,eax // Оригинальная инструкция которая находится над брякнутой.mov [esi+24C],eax // Оригинальная инструкция где сработал наш бряк.jmp returnhere // Делаем прыжок обратно. GAME.EXE+87654321: // Это модуль файла игры + смещение.jmp newmem // Делаем прыжок на выделенную память.nop // Здесь затёрли остаток части оригинального кода.nop // Чтобы не нарушать логику кода, а то будет вылет из игры.nopreturnhere: [DISABLE] // Выключение скрипта.Dealloc(newmem) // Высвобождение выделенной памяти (Дабы не засорять память).GAME.EXE+87654321: // Это модуль файла игры + смещение.test eax,eax // Оригинальная инструкция которая находится над брякнутой.mov [esi+24C],eax // Оригинальная инструкция где сработал наш бряк. В игре Red Alert 2 скрипт работал, все твои созданные войска и построенные здания были бессмертными. Хотя можно написать скрипт и по другому, вариантов много, кому как удобно.
  3. Надо ставить бряк на адрес, а на не указатель. exorcise По пробу заново найти указатель на адрес золото, потом перезапусти игру, и отсеивай указатели, пока не найдёшь один уникальный. Бывает так что найти статический указатель невозможно на некоторые игры или при переходе на другой уровень он меняет смещение. По этому надо использовать инструкции assembler'а, и искать анализ данных, чтобы построить фильтр в скрипте, если и это не помогает, используй регистры как фильтр в скрипте. Почитай статейки здесь на форуме, чтобы научиться как правильно писать скрипты.
  4. Если не получается найти указатель на адрес, попробуй через анализ данных/структур, ну или с регистрами поработай. Кстати я так и не вкурил чем же отличается db 90 90 от nop nop Не чем не отличается как сказал A1t0r. db 90 90 - байты в нех. nop nop - байты в Assembler.
  5. С начало попробуй так: 1.Найди адрес жизней своего героя. 2.Сделай брякпоинт на запись и потеря немного жизней. 3.Появится инструкция отвечающая жизни твои и скорее всего врагов. 4.Переходим в отладчик и жмем правой кнопкой мыши на эту инструкцию и выбираем Найти адреса получающие доступ к этой инструкции. И ударь врага чтоб он потерял немного жизней. Таким образом ты узнаешь адреса врагов и добавь их в таблицу. 5.Поставь брякпоинт на чтение свой адрес и адрес врагов, потрать немного жизней своих и врага, таким образом ты узнаешь какие инструкции работают с твоей жизнь и жизнью врагов. 6.Если среди них есть инструкция которой нет у врагов, то тебе возможно не придётся делать фильтр. 7.Если они все одинаковые тогда ищи на свой адрес здоровья, многоуровневый указатель. И пиши скрипт сним.
  6. Блин ну и ну, как же я сам до этого не допёр. Спасибо что кто то помог мне! Спасибо Bromvol. Спасибо MasterGH. Сheat Engine рулит. Тему можно закрыть.
  7. У меня была только версия 1.13d поэтому и не знаю на сколько сильно они сместились(изменились) инструкции кода игры после патчей. Надож было так сделать чтоб с одной инструкцией работало столько вещей. Жаль что нет официальных чит-кодов на игру. А то можно было бы зайти с другого конца. То есть найти адрес активации кода сделать бряк чтение и запись и посмотреть с какими инструкциями оно работает и искать,искать,искать,искать, и ещё раз искать цепь инструкций которые работают с ней. А так лучше ломать игру последнюю версию и бацать тренер под него. WarCraft'e TFT модуль игры был game.dll, может и Diabl'e 2 LOD тоже там где отвечает за жизни и т.д. типа D2game.dll всё таки обе от BLIZZARD сделаны. Может с лишком много модулей в игре, поэтому так сложно взоломать её. WarCraft'e TFT есть такой чит код на бессмертие + убить с одного удара. Интересно было отделить бессмертие от убить с одного удара. Кстати это работает и в игре по локальной сети между компами игроков.
  8. По сути мне нужно было только перевести код ASM в НЕХ код для патчей игр вот и все. В нете искал таких подобных конверторов, кодировщиков не нашёл, есть вопрос а IDA может это зделать. Вроде там чета про Disassembler что-то говорилось.
  9. MasterGH сможеш сделать пожалуйста для меня готовый LUA типа EASYWRITE INTERPRETER. А то CE Lua Engine очень плохо знаю, как я понял это программирование как делфи. Чтобы понять как это пишется\делается, нужен образец.Кстати я раньше с помощью TSearch-EASYWRITE INTERPRETER патчил игры (читы), чтобы не создавать трейнеры, а сразу вшивать их в exe или dll файл игры, спомощью проги WinHEX-(Крутая прога). Поскольку я в программировании не силён чтоб писать тренеры.По сути мне и нужна была прога TSEARCH поскольку там была эта функция EASYWRITE INTERPRETER переводить ASM в HEX (Poke) код.Пока не встретилась эта инструкция movss xmm0,[eax+C0] ну и т.д. Я то думал ассемблер он и в африке ассемблер, а тут такое.
  10. Прошло столько времени...... вобщем нужно попробовать найти идентификатор игрока ID. И написать скрипт по другому. Интересно чё там можно сравнивать, разве что исправление игры и новые добавки. Если чё та интересное найдёшь скажеш A1t0r.
  11. Помню была в программе TSearch 1.6b функция - EASYWRITE INTERPRETER, которая переводила инструкции ASM в HEX код и в проге Game Trainer Studio v2.0 тоже типа того было, но проблема в том что не все инструкции они понимают ассемблера. Просту хочу несколько игр пропатчить на графику исправления.Люди подскажите есть ли проги конвертирования ассемблера в простой НЕХ код, как в TSearch 1.6b, чтоб понимали все инструкции.
  12. Здаров chuvak1121. Я сталкивался стакой ситуацией, только в Red alert 2. Ты используеш не ту инструкцию. Найди многоуровневый указатель, Далее попробуй поставить бряк на чтение. Посмотри какие инструкции появятся и проверяй попорядку присваевая каждому многоуровневый указатель. Если не получиться попробуй бряк на запись и также проверяй попорядку присваевая каждому многоуровневый указатель.
  13. Спасибо что ответил Xipho попробывал найти структуре чё не нашёл. Другие вариант есть. Да и ещё хочу сказать, я просто хочу заморозить, без максимального увеличения жизней, как пологается в игре увеличивать жизни по опыту не сразу, а постепенно. Например так-же не будет работать вот это: newmem: mov eax,[D2Client.dll+11CA04] //Указатель на здоровье mov eax,[eax+38] \\Сравниваю регистр по смещению от казателя mov eax,[eax+c8] \\Второе сравнивие по смещению от указателя mov eax,[eax+24] \\Третье сравнивие по смещению от указателя (Без добавления жизней) CheatEngine выдает ошибку при создании скрипта что так нельзя.
  14. Кто-нибуть ломал игру Diablo 2 LOD. Я написал скрипт на вечное здоровье он работает. Но я нехочу прописывать какое либо количество здоровья, а хочу просто заморозить, при этом чтоб увеличивалось значение например при повышения опыта ну и т.д. Подскажите ктонибуть как исправить скрипт: Скрипт на вечное здоровье: [ENABLE] alloc(newmem,32) label(returnhere) newmem: mov eax,[D2Client.dll+11CA04] //Указатель на здоровье mov eax,[eax+38] \\Сравниваю регистр по смещению от казателя mov eax,[eax+c8] \\Второе сравнивие по смещению от указателя mov [eax+24],00002800 \\Третье сравнение от указателя + добавляю здоровье (HEX 2800 это DEC 14080 значение). mov ecx,[eax+04] \\Оригинальная инструкция где сработала на запись test ecx,ecx \\Иструкция ниже под оригинальной, для логики кода jmp returnhere "D2Common.dll"+5839B: jmp newmem returnhere: [DISABLE] dealloc(newmem) "D2Common.dll"+5839B: mov ecx,[eax+04] test ecx,ecx
  15. Пока ёщё не разобрался но Спасибо запомощь.
  16. А где в Cheat Engine создаются скрипты, Что-то я не могу найти. Да и ещё. Так и вставлять для создания скрипта... Образец............. Offset 0x007A2E90 mov dword ptr [edi+000005c4],0x00004416 movss xmm0,[edi+000005c4] jmp 0x0041761c Offset 0x00417614 jmp 0x007A2E90 nop
  17. Зделал так. Offset 0x00A22D9B movss xmm0,[edi+000005c4] mov dword ptr [edi+000005c4],0x46140000 jmp 0x0041761C Offset 0x00417614 jmp 0x00A22D9B nop Выдаёт ошибку при создании скрипта типа что-то сдесь неправильно в это инструкции movss xmm0,[edi+000005c4]
  18. Ясно.............. Тогда скажите как писать скрипт для примера с этой инструкцией movss xmm0,[edi+000005c4] что-бы знать как пишутся скрипты.
  19. Вот это мне нужна инструкция.......... 00417614 - f3 0f 10 87 c4 05 00 00 - movss xmm0,[edi+000005c4] Что делать дальше... как создать скрипт через Cheat Engine если можно. А то в Tsearch где прописывается для создания скрипта EasyWrite , эта инструкция выдаёт ошибку типа неизвестный индефикатор.
  20. скачал я эту прогу Cheat Engine v5.6 ------------------------------------ Заново нашёл через неё адрес 15789BDC нажал на Find out accesses this address нажал ДА приоткрытии Дебагера Зашёл в игру побегал (Не тратив жизни) и свернул игру. Вот что она мне показалa совсем другое в отличие от TSearch... 0042e053 - 0f 2f 81 d0 04 00 00 - comiss xmm0,[ecx+000004d0] 00417614 - f3 0f 10 87 c4 05 00 00 - movss xmm0,[edi+000005c4] 005df531 - f3 0f 10 02 - movss xmm0,[edx] Чё делать дальше опиши.
  21. Подскажите полуйста как создать скрипт для игры Икс-Блейд на бесконечное здоровье. Нашёл адрес здоровья 11598BCD при помощи проги TSearch нажимаю на отладчик и открываю окно автохак, после нажимаю на зелёную стрелку и добавляю этот адрес и выбираю тип Read/Write, захажу в игру (причём жизни не трачу) после снова сварачиваю игру и выжу в окне автохака вот такое... 42E055: adc eax,0x72000004 417619: add eax,0xFF30000 5DF533: adc [edx],al Как создать скрипт из этих адресов. Допустим нужен этот адрес 42E055: adc eax,0x72000004 или этот адрес 5DF533: adc [edx],al Хочу сразу сказать что в Cheat Engine проге я неочень разбираюсь,
  22. Я вроде разобрался, проблема была в регистре. Единствено не пойму что это за код 0x00400000 и как ты узнал что 1Е334 меньше кода 0x00400000
  23. Регистор уменя показывает постоянно 1Е334 и не меняется. А вот когда я в ARTMONEY поставил в поиске 1Е334h в нехе Он мне выдал два 2 Адреса 0510C11B Целое 3 байта и 027C0780 С точкой 6 байт. Я испробовал эти 2 адреса всё равно ничего не получилось, а после я заметил что эти 2 адреса изминилось у них значения когда выбрал новую зону игры для битвы. Может из-за этого и неработает.
  24. Я взламывал через TSearch, но Cheat Engine тоже выдаёт такой же результат. -------------------------------- Сразу к делу............ TSearch выдал 2 кода... 1 код при заморозке в игре ничё не дал,2 код заморозив у меня перестали жизни уменьшаться, но и упративника то же самое перестали жизни уменьшаться, вродебы этот адресс больше он нечего не выдал(Примеч. Я не тратил жизни, просто стоял на месте). Вот оригинальный код игры 236CAB6 mov eax,[ebx+0X2026020] ----------------------------------- 004D09B5 - Этот код я нашёл при помощи Code Caver, я сделал так как на писано в инструкции для новичков. Ну а остальное я просто скопировал, заменив на свои адреса и значения---- Но всё сделал как в инструкции без ошибок -------------------------------- Я попробовал поменять местами как ты написал сначала mov dword ptr [ebx+0X2026020],0x00000064 а после неё mov eax,[ebx+0X2026020] всё равно нет никакого еффекта словно я ничё и не делал. --------------------------- Я пытаюсь взломать одиночную игру(Схватка и Битва),а не сетевую. Если есть идеи подскажи что я делаю не так.
×
×
  • Создать...

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

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