doc9009 Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Привет всем! Решил написать эту статью, так как достаточно многие игры используют одну инструкцию для нескольких целей и новичков бывает это в гоняет в ступор, хотя догадаться как обойти эту проблему самому довольно не трудно, поэтому я разместил эту статью в разделе для новичков!Итак начнем... Допустим у нас есть инструкция(или набор инструкций) для работы со здоровьем игрока и его противника и вот мы хотим сделать игроку бессмертие и убийство его врагов с одного удара, но при этом мы бы еще хотели бы, чтобы эти опции работали отдельно друг от друга, сейчас я покажу Вам как это осуществить. Внимание! Вам надо знать хотя бы азы ассемблера, чтобы вникнуть в суть.1) Допустим вы нашли адрес здоровья вашего игрока, теперь Вам надо найти ID вашего игрока, если не знаете как это сделать идете и смотрите эти видосыhttp://forum.gamehac...?showtopic=1577http://forum.gamehac...?showtopic=1940 3)Теперь приступим к написанию скрипта, но для начала я добавлю пояснения: [id offset] - оффсет, по которому хранится ID игрока в классе игрока, IDplayer - ид вашего игрока, instrPlayerHP - инструкции работающие с жизнью игрока, например: movss xmm1,[esi+000078C0]addss xmm1,xmm0movss [esi+000078C0],xmm1, Создадим метку, где будет проверка наш ли ID пришел в инструкцию и в зависимости от результата будем предпринимать дальнейшие действия:conditions:cmp dword ptr [id offset], idplayer jne OneHitKill // если idplayer не равен id тому, что лежит в [id offset], то прыгаем на метку OneHitKilljmp GodMod // иначе прыгаем на метку GodModТеперь создадим метку GodMod и опишем действия происходящие там:GodMod:cmp dword ptr [gmFlag],0je originalcode //если опция GodMod отключена, то прыгаем на метку original codejmp returnhere // иначе просто продолжаем выполнение кода игры пропуская инструкции работы с HPОпишем метку OneHitKill, на которую происходит прыжок, если нам приходит Id не нашего игрокаOneHitKill:cmp dword ptr[ohkFlag],0je originalcode // если опция OneHitKill отключена, то прыгаем на метку originalcode//иначе тут предпринимаем действия по обнулению HP противникаjmp returnhereВот и все ничего сложного! Флаги принимают значения 0/1, вкл/выкл. соответственно:gmFlag:dd 1ohkFlag:dd 1Вот исходный код скрипта для большей наглядностиnewmem:conditions:cmp dword ptr [id offset], idplayerjne OneHitKilljmp GodModGodMod:cmp dword ptr [gmFlag],0je originalcodejmp returnhereOneHitKill:cmp dword ptr[ohkFlag],0je originalcode//тут предпринимаем действия по обнулению HP противникаjmp returnhere///////////////////////////////////////////////////originalcode:instrPlayerHPjmp returnheregmFlag:dd 1ohkFlag:dd 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Loner Опубликовано 14 июля, 2013 Поделиться Опубликовано 14 июля, 2013 Привет всем! Решил написать эту статью, так как достаточно многие игры используют одну инструкцию для нескольких целей и новичков бывает это в гоняет в ступор, хотя догадаться как обойти эту проблему самому довольно не трудно, поэтому я разместил эту статью в разделе для новичков!Итак начнем... Допустим у нас есть инструкция(или набор инструкций) для работы со здоровьем игрока и его противника и вот мы хотим сделать игроку бессмертие и убийство его врагов с одного удара, но при этом мы бы еще хотели бы, чтобы эти опции работали отдельно друг от друга, сейчас я покажу Вам как это осуществить. Внимание! Вам надо знать хотя бы азы ассемблера, чтобы вникнуть в суть.1) Допустим вы нашли адрес здоровья вашего игрока, теперь Вам надо найти ID вашего игрока, если не знаете как это сделать идете и смотрите эти видосыhttp://forum.gamehac...?showtopic=1577http://forum.gamehac...?showtopic=1940 3)Теперь приступим к написанию скрипта, но для начала я добавлю пояснения: [id offset] - оффсет, по которому хранится ID игрока в классе игрока, IDplayer - ид вашего игрока, instrPlayerHP - инструкции работающие с жизнью игрока, например: movss xmm1,[esi+000078C0]addss xmm1,xmm0movss [esi+000078C0],xmm1, Создадим метку, где будет проверка наш ли ID пришел в инструкцию и в зависимости от результата будем предпринимать дальнейшие действия:conditions:cmp dword ptr [id offset], idplayer jne OneHitKill // если idplayer не равен id тому, что лежит в [id offset], то прыгаем на метку OneHitKilljmp GodMod // иначе прыгаем на метку GodModТеперь создадим метку GodMod и опишем действия происходящие там:GodMod:cmp dword ptr [gmFlag],0je originalcode //если опция GodMod отключена, то прыгаем на метку original codejmp returnhere // иначе просто продолжаем выполнение кода игры пропуская инструкции работы с HPОпишем метку OneHitKill, на которую происходит прыжок, если нам приходит Id не нашего игрокаOneHitKill:cmp dword ptr[ohkFlag],0je originalcode // если опция OneHitKill отключена, то прыгаем на метку originalcode//иначе тут предпринимаем действия по обнулению HP противникаjmp returnhereВот и все ничего сложного! Флаги принимают значения 0/1, вкл/выкл. соответственно:gmFlag:dd 1ohkFlag:dd 1Вот исходный код скрипта для большей наглядностиnewmem:conditions:cmp dword ptr [id offset], idplayerjne OneHitKilljmp GodModGodMod:cmp dword ptr [gmFlag],0je originalcodejmp returnhereOneHitKill:cmp dword ptr[ohkFlag],0je originalcode//тут предпринимаем действия по обнулению HP противникаjmp returnhere///////////////////////////////////////////////////originalcode:instrPlayerHPjmp returnheregmFlag:dd 1ohkFlag:dd 1Чуть позже запишу наглядный видеоурок на примере, какой-нибудь игры.извините..опять я со своими проблемами..если можете посмотрите игру C&C generals Zero hour v 1.04 (2003 года игра.стратегия)...попробуйте взломать таймер супероружия(ядерной ракеты,лазерный луч,PM-17).Я точно знаю что одна инструкция отвечает за изменение всех таймеров..будь это доп умения или спец умения.Так же там довольно хитро запрятаны значения именно таймеров.Плюс вас ждёт головоломка с инструкциями.Я уже пару месяцев парюсь...значение нашёл..по чистой случайности..скрипты написать не могу..+там есть боты, следовательно и фильтры можно написать.Получается полный набор.Качать репак рекомендую от R.G МеханикиЯ умудрился запустить данную игру даже на win8 х64 без танцев Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 15 июля, 2013 Поделиться Опубликовано 15 июля, 2013 Наверно так лучше подходит по смыслуconditions:cmp dword ptr [id offset], idplayer jne TryOneHitKill // если это противник, то пытаемся проверить выполнять ли убийство с одного разаjmp TryGodMod // если это не противник (мой игрок) пытаемся проверить выполнять ли годмод Ссылка на комментарий Поделиться на другие сайты Поделиться
doc9009 Опубликовано 15 июля, 2013 Автор Поделиться Опубликовано 15 июля, 2013 Loner, будет время обязательно посмотрю, люблю сложности. MasterGH, вы правы, но, к сожалению, не могу больше редактировать шапку темы. Ссылка на комментарий Поделиться на другие сайты Поделиться
Bromvol Опубликовано 23 января, 2014 Поделиться Опубликовано 23 января, 2014 Doc9009 чето я не понял как ты сделал отдельное включение и выключение разных опций в одном скрипте.Я конечно не новичек в плане геймхакинга, но я ничего не понял. Судя по урокам этим там просто скрипт, который делает две опции одновременно, а именно бесконечное здоровье для глав героя и его команды и убийство с одного удара для противников.Ни готового скрипта ни на одном "жывом" примере. Возьми любую игру и сделай все от "А" до "Я", а то совсем ничего не понятно. Хоть тот же Мас Ефект 3,но сделай все "от" и "до". Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Опубликовано 23 января, 2014 Поделиться Опубликовано 23 января, 2014 А по-моему все понятно. Автор показал "шаблон" скрипта, осталось лишь подставить нужные инструкции, и в самом CE поставить метки в качестве адресов, и готово дело. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения