NEMO Опубликовано 21 апреля, 2012 Поделиться Опубликовано 21 апреля, 2012 Всем привет!Прошу строго не судить . это мои первые шаги в СЕ. руководствовался видеоуроками от KENG. Оговорюсь сразу я поклонник игры CRYSIS,Суть моего вопроса в следующем ,. Решил начать с простого , с бесконечных патрон для пистолета.. Код нашел, ,все работает,когда замораживаешь значение, добрался до скрипта, вроде все работает, но , как всегда есть НО !Как только я ночинаю стрелять ,патроны уменьшаются до определенного количества и потом не кончаются, т.е.было в магазине 20 пуль,начинаю стрелять доходит до 16 и потом не кончаются, Вроде можно стрелять и радоваться,но я то знаю, что на нормальных тренерах таких вещей не происходит. Прошу помощи, помогите, подскажите,Вот мой скрипт[ENABLE]alloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:mov dword ptr [esp+20],(float)1mov edx,[esp+20]mov [eax+14],edxexit:jmp returnhere"CryGame.dll"+141F53:jmp newmemnopnopreturnhere:[DISABLE]"CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edxПрошу прощения но я не нашел как сделать текст скрипта скрытым. подскажите и с этим, Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 21 апреля, 2012 Поделиться Опубликовано 21 апреля, 2012 Нажми вот сюда, потом вставляй свой скрипт. Чтобы скрыть его используй тэг:[spoiler=Hidden][/spoiler]NEMO Напиши inc edx (мож пронесё) Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 апреля, 2012 Поделиться Опубликовано 22 апреля, 2012 [ENABLE]alloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem:mov [esp+20],(float)99 - Запись в иструкцию Nнного значения делается под строчкой newmem: И командой mov делается запись, без dword ptr.originalcode:mov edx,[esp+20]mov [eax+14],edxexit:jmp returnhere"CryGame.dll"+141F53:jmp newmemnopnopreturnhere:[DISABLE]"CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edx Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 22 апреля, 2012 Автор Поделиться Опубликовано 22 апреля, 2012 Привет всем!Ac1d Подправил скрипт,так ка ты подсказал,но результат прежний.Колличество пуль определяют цифры ,которые стоят радом с floatпоставил 99 так патроны замерли на 84 . поставил 1.5 потроны замерли на 20. Хотелось бы что бы патроны замерли в том колличестве при котором был включен тренер,live_4_ever ты написал Напиши inc edx (мож пронесё) кудаже прописать inc edx подскажи куда писать,я в этом деле новичек, то что для вас пустяк для меня наука, может клочек скрипта для наглядности пропишешь?Есть еще вопрос Иногда в скриптах есть такое, часть скрипта[DISABLE]"Crysis.exe"+668C:pop espand al,1Cmov [esp+20],edi//Alt: db 5C 24 1C 89 7C 24 20 - ЧТО ЭТО ЗА ЗНАЧЕНИЕ И ОТ КУДА ОНО ВЗЯЛОСЬ(К ЧЕМУ ПРИВЯЗАНО)За ранее благодарен. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 По указанному в скрипте вопросу - это значение - "опкоды" инструкций, то есть, это то же самое, что показано чуть выше (в секции DISABLE), только выраженное цифрами, а не дизассемблерным кодом (именно "цифры" и понимает процессор). По сути, это не принципиально, пока учишься. Как твои навыки станут чуть больше, ты сам поймешь суть этих цифр. Ну, а если не поймешь, то мы с радостью объясним, но только тогда, когда твой уровень достигнет той отметки, при которой ты сможешь правильно понять наши объяснения ) Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 Привет всем!Ac1d Подправил скрипт,так ка ты подсказал,но результат прежний.Колличество пуль определяют цифры ,которые стоят радом с floatпоставил 99 так патроны замерли на 84 . поставил 1.5 потроны замерли на 20. Хотелось бы что бы патроны замерли в том колличестве при котором был включен тренер,live_4_ever ты написал Напиши inc edx (мож пронесё) кудаже прописать inc edx подскажи куда писать,я в этом деле новичек, то что для вас пустяк для меня наука, может клочек скрипта для наглядности пропишешь?Есть еще вопрос Иногда в скриптах есть такое, часть скрипта[DISABLE]"Crysis.exe"+668C:pop espand al,1Cmov [esp+20],edi//Alt: db 5C 24 1C 89 7C 24 20 - ЧТО ЭТО ЗА ЗНАЧЕНИЕ И ОТ КУДА ОНО ВЗЯЛОСЬ(К ЧЕМУ ПРИВЯЗАНО)За ранее благодарен.прописать inc edx под newmem.[DISABLE]"Crysis.exe"+668C:pop espand al,1Cmov [esp+20],edi//Alt: db 5C 24 1C 89 7C 24 20 - CE перехватил начало и конец работы инструкции 5с это pop esp а 24 20 esp+20 проверочные байты. Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 NEMOВот, что я имел ввиду (И дополню ZOCKIR'а). По твоему скрипту, смотри:[ENABLE]alloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem:inc edx // увеличивается значение edx на 1.//Можно написать add edx. Только тогда нужно указывать на сколько увеличивать.//Например: add edx,63. Если значение float надо указать (float)63.//Только писать на сколько увеличивать, надо в шестнадцатеричной системе счисления (hex).//В этом может помочь калькулятор переключенный в инженерный вид. originalcode:mov edx,[esp+20]mov [eax+14],edxexit:jmp returnhere"CryGame.dll"+141F53:jmp newmemnopnopreturnhere:[DISABLE]"CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edxХотелось бы что бы патроны замерли в том колличестве при котором был включен тренер.Тогда можешь просто нопить. Так даже лучше.db 90 90 90 90 //ставить 90 столько, сколько байт занимает инструкция. Писать тоже под newmemЗЫ Админам: Если можно, перенесите эту тему из раздела "Статьи для новичков" в "Вопросы по взлому игр". Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 [ENABLE]alloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem:inc edx // увеличивается значение edx на 1.//Можно написать add edx. Только тогда нужно указывать на сколько увеличивать.//Например: add edx,63. Если значение float надо указать (float)63.//Только писать на сколько увеличивать, надо в шестнадцатеричной системе счисления (hex).//В этом может помочь калькулятор переключенный в инженерный вид.originalcode:mov edx,[esp+20]mov [eax+14],edxexit:jmp returnhere"CryGame.dll"+141F53:jmp newmemnopnopreturnhere:[DISABLE]"CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edxНемного от себя. Как мне показалось логичнее будет увеличивать (inc) значение в регистре (esp) со смещением +20, то есть inc [esp+20]Так же если у вас число число с точкой (float), то написав add [esp+20],(float)63 у вас ничего не выйдет. Правильнее будет так: fadd [esp+20], если же всё равно что то хотите добавить, то add [esp+20],#1234567890 НО, Число будет заоблачное. И не обязательно писать на сколько прибавить (add), т.е add [esp+20] - число, патрон допустим 123 будет становиться в два раза больше при выстреле - 123 выстрел, 246, выстрел, 369... Ссылка на комментарий Поделиться на другие сайты Поделиться
boss Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 я себе делал так и все пашет норм было 21 патрон стрельнул стало 20 включил тренер и так стойт 20 )[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048) //2kb should be enoughlabel(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:pop espand al,1Cmov [esp+20],ediexit:jmp returnhere"Crysis.exe"+668C:jmp newmemnopnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Crysis.exe"+668C:pop espand al,1Cmov [esp+20],edi//Alt: db 5C 24 1C 89 7C 24 20Ac1d: можно по другому для примера так я делал newmem:mov [esp+20], 0000014E Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 23 апреля, 2012 Поделиться Опубликовано 23 апреля, 2012 Я люблю конкретно писать #числа. Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 26 апреля, 2012 Автор Поделиться Опубликовано 26 апреля, 2012 Всем привет! Спасибо что не оставляете мои вопросы без внимания.. Начнем по порядку.ive_4_ever писал следующее newmem:inc edx // увеличивается значение edx на 1.//Можно написать add edx. Только тогда нужно указывать на сколько увеличивать.//Например: add edx,63. Если значение float надо указать (float)63.//Только писать на сколько увеличивать, надо в шестнадцатеричной системе счисления (hex).//В этом может помочь калькулятор переключенный в инженерный вид. пробовал разные варианты и результат такой inc edx 41A00000 ,inc edx 20 - ошибкаinc edx ,inc edx 0000014 ,inc edx ,(float)1,inc edx ,(byte)0000014 - не работаетadd edx ,add edx ,(float)63 - НЕ РАБОТАЕТadd edx ,(float)41A00000 - ошибкаAc1d писал Немного от себя. Как мне показалось логичнее будет увеличивать (inc) значение в регистре (esp) со смещением +20, то есть inc [esp+20]Так же если у вас число число с точкой (float), то написав add [esp+20],(float)63 у вас ничего не выйдет. Правильнее будет так: fadd [esp+20], если же всё равно что то хотите добавить, то add [esp+20],#1234567890 НО, Число будет заоблачное. И не обязательно писать на сколько прибавить (add), т.е add [esp+20] - число, патрон допустим 123 будет становиться в два раза больше при выстреле - 123 выстрел, 246, выстрел, 369Результат fadd [esp+20]#1,fadd [esp+20] - игра слетаетadd [esp+20]#1,add [esp+20] - не принимает код(ошибка)Но есть и хорошая новость!!! inc [esp+20] - патроны остаются в том колличестве при котором был запущен тренер,но не у всего оружияВсе это я прописывал в своем скрипте(который выложен в первом посту) под пунктом newmem:(как вы мне и подсказали)Во время проб со скриптом ,заметил такое , При этом коде mov [esp+20],(float)99у всех видов оружия работает без лимит патрон( на технике не пробовал)но как я уже писал выше патроны останавливаются при определенном колличестве.а при inc [esp+20]патроны остаются в том колличестве при котором был запущен тренер,но не у всего оружияНе стану скрывать что искал значение только для пистолета,Поделитесь своими соображениями,Строго прошу не судить мои эксперименты ,наверняка что то где то не так написал ,поэтому и не все ваши подсказки у меня получились в деле. Я ведь только учусь!!! За ранее благодарен за помощь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 27 апреля, 2012 Поделиться Опубликовано 27 апреля, 2012 Найди инструкции которые пишут в адрес с патронами, и напиши нужный тебе скрипт.Если же тебе надо, чтобы значение осталось таким же как и было (а не 999 например), ищи инструкцию, которая пишет в твой адрес при выстрели, а потом проверь что ещё к ней обращается, если же там только твой адрес, можешь нопить её и всё.Если там ещё чужие адреса окажутся, делай фильтр (как его сделать можно найти на форуме).ACID, нет разницы - указал ты конкретное число или будет браться тоже самое число только с какого-нибудь регистра. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 27 апреля, 2012 Поделиться Опубликовано 27 апреля, 2012 ACID, нет разницы - указал ты конкретное число или будет браться тоже самое число только с какого-нибудь регистра.Я этой строчки не понял, но всё равно я остаюсь при своих методах...NEMO, add [esp+20]#1 - Тут утеряна запятая add [esp+20],#1И вообще посоветую найти другую инструкцию, чтобы записать (mov) допустим 99 и не париться Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 27 апреля, 2012 Автор Поделиться Опубликовано 27 апреля, 2012 Всем привет!.Проверил add [esp+20],#1 тот же самый эфект что и inc [esp+20] - патроны остаются в том колличестве при котором был запущен тренер,но не у всего оружия.Не в первый раз здесь пишут о том ,что можно НОПИТЬ ,NOP,live_4_ever писал о таком способеТогда можешь просто нопить. Так даже лучше.db 90 90 90 90 //ставить 90 столько, сколько байт занимает инструкция. Писать тоже под newmemРезультата никакого.Может напишете свой способ ,как нужно нопить,и если можно по подробней или более наглядно в скрипте,Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 28 апреля, 2012 Поделиться Опубликовано 28 апреля, 2012 Вот NOP'ом ты просто в лучшем случае заморозишь число и оно не будет меняться, а если нужно записать 99, то ищи другие инструкции Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 29 апреля, 2012 Поделиться Опубликовано 29 апреля, 2012 NEMO покажи окно БрекПоинта какие инструкции там. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 30 апреля, 2012 Поделиться Опубликовано 30 апреля, 2012 Поробуйте так.[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [esp+20],(int)999originalcode:mov edx,[esp+20]mov [eax+14],edxexit:jmp returnhere"CryGame.dll"+141F53:jmp newmemnopnopreturnhere:[DISABLE]"CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edxdealloc(newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 30 апреля, 2012 Автор Поделиться Опубликовано 30 апреля, 2012 Всем привет!ZOCKIR спасибо за помощь. протестил твою подсказку ,работает на всем оружии,правда только значение пуль в магазинах имеет 9 или 99 или 999, я сэтим делом поэксперементировал , т.е. подставлял здесь mov [esp+20],(int)999 в место 999 и 10 и 1 и т.д.Может я конечно излишне дотошный ,но мне все же хочется сделать так чтобы после включения тренера колличество пуль оставалось не изменным . т.е. если в магазине 15 вкл тренер то и 15 осталось пока не отключил.Если поставить такое значение inc [esp+20]add [esp+20],#1 то пули замирают в том колличестве при котором вкл тренер.но не на всем оружии,если оружие имеет магазин в трехзначное число(в моем случае 500) . Пули также не кончаются но замирают в колличестве 1шт.Просто я никак не пойму причину,почему одна команда может увеличить боезапас везде,а другая команда заморвживает патроны не везде,ведь код один и тот же.ZOCKIR в том скрипте что ты написал я заметил в самом низу строку "CryGame.dll"+141F53:mov edx,[esp+20]mov [eax+14],edxdealloc(newmem) - ВОТ ЭТУ!!! что она означает. скрипт работает как с ней так и без нее. Спасибо!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 30 апреля, 2012 Поделиться Опубликовано 30 апреля, 2012 dealloc(newmem)Очень полезная штука. Создаем новую память при активации чит а при деактивации очищаем ранее создаваемую память то ист убираем мусор за собой. Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 30 апреля, 2012 Автор Поделиться Опубликовано 30 апреля, 2012 ZOCKIR а есть ли какие соображения по другой части моего вопроса?dealloc(newmem) этот пункт всегда не изменен,т.е. вовсех скриптах только так? Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 30 апреля, 2012 Поделиться Опубликовано 30 апреля, 2012 Другие вопросы я не понял, слишком по умному записал. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 30 апреля, 2012 Поделиться Опубликовано 30 апреля, 2012 NEMO, патроны, магазины... Что ты конкретно хочешь сломать то? Сами пули заряженые в пушку? (Чит No reload) или колличество пуль в магазине? (Infinite ammo). Если и то и то, то для этих значений две инструкции будет.Может я конечно излишне дотошный ,но мне все же хочется сделать так чтобы после включения тренера колличество пуль оставалось не изменным . т.е. если в магазине 15 вкл тренер то и 15 осталось пока не отключил.Тут Nop в помощь... Как я понимаю если записать 99, то индикатор пуль либо пропадает, либо вылазит за пределы рамок. Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 30 апреля, 2012 Автор Поделиться Опубликовано 30 апреля, 2012 На сколько я понимаю пули хранятся в магазине, и когда стреляешь, они то и убавляются в первую очередь. А остальное это боезапас, по крайней мере так меня учили))Мне нужно No reload ,но чтобы патроны оставались в том колличестве при котором был включен тренер.Другие вопросы я не понял, слишком по умному записал.Все мы люди разные и обесняемся по своему.Я только учусь не будьте ко мне строги,просто пытаюсь понять суть дела,Как только освою все термины ,надеюсь нам будет проще понять друг друга.Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 30 апреля, 2012 Поделиться Опубликовано 30 апреля, 2012 Не, вопрос по правде я не догнал.Допустим. в игре 9 разных оружие:Пистолет= 12 в магазинеСнайпер = 3 в магазинеИнгерм= 36 в магазинеПулемет =380 в магазине пуль.и тд.Если записать newmem:mov [esp+20],(int)9Все выше перечисленные оружие пуль будет равен 9. Я так понял ты хочешь чтоб было заморозить как есть:Пистолет= 12 Снайпер = 3 Ингерм= 36Пулемет =380Примерно так понял. Ссылка на комментарий Поделиться на другие сайты Поделиться
NEMO Опубликовано 30 апреля, 2012 Автор Поделиться Опубликовано 30 апреля, 2012 Да . совершенно верно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения