Korol2010 Опубликовано 8 февраля, 2015 Поделиться Опубликовано 8 февраля, 2015 Привет всем, у меня возник вопрос по поводу fld инструкции. Вопрос заключается в том что нужно как то сделать так, что бы в игре устанавливалось максимальное значение или конкретное значение, но в fld инструкции, как я понимаю не всегда можно использовать mov функцию или иные. Дак вот у меня есть инструкция в принципе рабочая, для того чтоб она работала в игре более менее правильно я соответственно внедряю в fld значение по некому смещению, которое предположительно является либо статичным и подходящим мне, либо максимальным значением. Но что делать если мне нужно впихать в инструкцию именно максимальное значение (возможно больше максимального), но его в структуре адреса нет, а так же нет ни одного подходящего и статичного значения (все либо меньше, либо не статичны)?П.С.: Объясню на всякий зачем мне, на примере жизней, именно максимальное значение внедрять в инструкцию если она и без максималки работает и ты и так не сдохнешь, если будет внедрятся статичное значение, но меньше максимального. Для того что бы было красиво, но и возможно по иным причинам. Привожу пример кода в котором внедряется значение меньше максимального, хоть и этого хватает:[ENABLE]aobscan(address20, D9 80 C8 09 01 00 8B 16 8B 42 18 D9 5C 24 04 57)alloc(newMem, 100)label(returnHere)registersymbol(address20)newMem:push ebxmov ebx, dword ptr [eax+109CC]//внедряется значение 300, но требуемое максимальное значение в игре 350mov dword ptr [eax+109C8],ebxpop ebxfld dword ptr [eax+000109C8]jmp returnHereaddress20:jmp newMemnopreturnHere:[DISABLE]address20:fld dword ptr [eax+000109C8]dealloc(newMem)unregistersymbol(address20) Ссылка на комментарий Поделиться на другие сайты Поделиться
drs36 Опубликовано 8 февраля, 2015 Поделиться Опубликовано 8 февраля, 2015 Так ты внедряешь 350,а пишется 300И что за игра больше информации предоставь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Korol2010 Опубликовано 8 февраля, 2015 Автор Поделиться Опубликовано 8 февраля, 2015 Так ты внедряешь 350,а пишется 300И что за игра больше информации предоставь.Нет, внедряю 300 и пишется в игру соответственно 300)) Мне как раз и надо внедрить 350, но в структуре такого значения нет с типом нужным мне float, есть только 300 статичное, есть больше 350 и с подходящим мне типом float , я был бы рад их внедрить, но они не статичны. Игра Mini ninjas.Да вообще собственно не важно в какой игре, мне бы хотелось правильно работать с инструкциями fld в такой ситуации и в других играх. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 февраля, 2015 Поделиться Опубликовано 8 февраля, 2015 (изменено) Привет всем, у меня возник вопрос по поводу fld инструкции. Вопрос заключается в том что нужно как то сделать так, что бы в игре устанавливалось максимальное значение или конкретное значение,По поводу максимального значения: есть игры где оно есть, а есть игры где жизнь выглядит так Жмаксимальная - Урон = Жтекущая (например Fallout3), может у тебя такой случай?По конкретному значению, попробуй так: Если так не получится, можно попробовать ввести переменную. Сперва попробуй 1 скрипт, потом, если что попробуем с константой. PS:Добавлю по этому варианту: Жмаксимальная - Урон = Жтекущая.В данном случае Жмаксимальной в структуре нет. Если мы убираем Урон (обнуляем, нопим инструкцию, которая отнимает Ж), тогда и получаем:Жмаксимальная = Жтекущая [ENABLE]aobscan(address20, D9 80 C8 09 01 00 8B 16 8B 42 18 D9 5C 24 04 57)alloc(newMem, 100)label(returnHere)registersymbol(address20) newMem://внедряется значение 300, но требуемое максимальное значение в игре 350mov dword ptr [eax+109C8],(float)350fld dword ptr [eax+000109C8]jmp returnHere address20:jmp newMemnopreturnHere: [DISABLE]address20:fld dword ptr [eax+000109C8] dealloc(newMem)unregistersymbol(address20) Изменено 8 февраля, 2015 пользователем garik66 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Korol2010 Опубликовано 8 февраля, 2015 Автор Поделиться Опубликовано 8 февраля, 2015 (изменено) По поводу максимального значения: есть игры где оно есть, а есть игры где жизнь выглядит так Жмаксимальная - Урон = Жтекущая (например Fallout3), может у тебя такой случай?По конкретному значению, попробуй так: Если так не получится, можно попробовать ввести переменную. Сперва попробуй 1 скрипт, потом, если что попробуем с константой. PS:Добавлю по этому варианту: Жмаксимальная - Урон = Жтекущая.В данном случае Жмаксимальной в структуре нет. Если мы убираем Урон (обнуляем, нопим инструкцию, которая отнимает Ж), тогда и получаем:Жмаксимальная = Жтекущая Вот блин я дубина))) Работает, спасибо тебе огромное, а я блин думал что mov dword ptr [eax+109C8],#350 это одно и тоже что и mov dword ptr [eax+109C8],(float)350 Вот только щас ещё проверю этот способ на анологичной инструкции. Да к стате не мог бы ты по подробней рассказать об случае максимальная-урон= текущая, а то вдруг тоже столкнусь дак чтобы знать что делать. Примерчик бы так сказать не помешал))[ENABLE]aobscan(address20, D9 80 C8 09 01 00 8B 16 8B 42 18 D9 5C 24 04 57)alloc(newMem, 100)label(returnHere)registersymbol(address20) newMem://внедряется значение 300, но требуемое максимальное значение в игре 350mov dword ptr [eax+109C8],(float)350fld dword ptr [eax+000109C8]jmp returnHere address20:jmp newMemnopreturnHere: [DISABLE]address20:fld dword ptr [eax+000109C8] dealloc(newMem)unregistersymbol(address20) Изменено 8 февраля, 2015 пользователем Korol2010 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 февраля, 2015 Поделиться Опубликовано 8 февраля, 2015 Вот блин я дубина))) Работает, спасибо тебе огромное, а я блин думал что mov dword ptr [eax+109C8],#350 это одно и тоже что и mov dword ptr [eax+109C8],(float)350 Вот только щас ещё проверю этот способ на анологичной инструкции. Да к стате не мог бы ты по подробней рассказать об случае максимальная-урон= текущая, а то вдруг тоже столкнусь дак чтобы знать что делать.По типам данных посмотри этот урок Xipho: Ссылка на комментарий Поделиться на другие сайты Поделиться
Korol2010 Опубликовано 8 февраля, 2015 Автор Поделиться Опубликовано 8 февраля, 2015 (изменено) По типам данных посмотри этот урок Xipho: ок. Да, а что с примером на счёт максимальная-урон= текущая? Покажешь?))) Изменено 8 февраля, 2015 пользователем Korol2010 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 8 февраля, 2015 Поделиться Опубликовано 8 февраля, 2015 PS: А по этому варианту: Жмаксимальная - Урон = Жтекущая. посмотри у меня: здесь и здесь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Korol2010 Опубликовано 8 февраля, 2015 Автор Поделиться Опубликовано 8 февраля, 2015 PS: А по этому варианту: Жмаксимальная - Урон = Жтекущая. посмотри у меня: здесь и здесь.Ок, спс большое) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения