lamalamaz Опубликовано 28 ноября, 2013 Поделиться Опубликовано 28 ноября, 2013 Вот скрипт 1hit+god. И тут же вопросы.Правильно ли составлен скрипт(Синтаксис)? Может быть написано много лишнего помогите облагородить. Возможно ли в пределах одного скрипта опционально включать-выключать отдельно god и 1hit. Возможно ли потом добавить в этот же скрипт другие функции как(No reload,No recoil и т.д.)[ENABLE]aobscan(address0, D9 46 78 8B 86)alloc(newMem, 2048)label(returnHere)registersymbol(address0)label(1hit)label(god)newMem:cmp [esi+84],0je godjne 1hitjmp returnHeregod:mov [esi+78],(float)100fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHere1hit:mov [esi+78],(float)1fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHereaddress0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(address0) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 28 ноября, 2013 Поделиться Опубликовано 28 ноября, 2013 [ENABLE]aobscan(address0, D9 46 78 8B 86)alloc(newMem, 2048)label(returnHere)registersymbol(address0)label(1hit)label(god)label(godflag)label(1hitflag)label(exit)registersymbol(godflag)registersymbol(1hitflag)newMem:cmp [esi+84],0je godjmp 1hitgod:cmp byte ptr [godflag],1jne exitmov [esi+78],(float)100jmp exit1hit:cmp byte ptr [1hitflag],1jne exitmov [esi+78],(float)1exit:fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHeregodflag:db 001hitflag:db 00address0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(godflag)unregistersymbol(1hitflag)unregistersymbol(address0)Затем в самой таблице добавляешь два адреса, в которых прямо пишешь названия меток (для этого и делается регистрация символов godflag и 1hitflag).Затем по внесению 1 в любой из этих адресов будет сигнализировать скрипту о том, что нужно выполнить свою часть. Скрипт должен быть активирован заранее, разумеется.И да, байтовая сигнатура слишком мала для поиска. Может найтись много вхождений. Надо взять кусок побольше, хотя бы байт 20 Ссылка на комментарий Поделиться на другие сайты Поделиться
lamalamaz Опубликовано 28 ноября, 2013 Автор Поделиться Опубликовано 28 ноября, 2013 Спасибо большое!Насчет байт даже после 5 запуска работает все исправно... Пока что Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 28 ноября, 2013 Поделиться Опубликовано 28 ноября, 2013 Основная сложность в том чтобы сделать 4 возможных варианта в трейнере генерируемом CE1. Только чит на год мод2. Только чит на убийство с одного раза3. Два чита включены4. Два чита выключеныОбычно на АА скриптах делают 1 активирующий скрипт и два отдельных для каждого чита.Первый цепляется на хоткей для активации пользователем один раз после подключения трейнера к процессу игры. И автор трейнера просит пользователя один раз нажать какие-то кнопки для активации трейнера.Второй и третий могут включать и выключаться пользователем во время игры.Первый скрипт учитывает 4 варанта сравнивания с переменной.Второй и третий скрипт изменяют состояние переменной.Есть и вариант через Lua Engine во время аттача к процессу автоматически делать инъекцию. Тогда пользователю не придется это делать самому через хоткей. И не будет риска, что он сделает это повторно.function onOpenProcess(processid)// процесс подключен и можно сделать разовую инъекцию кодаendЕсть и более мудреный способ полностью сделать весь трейнер через CE Lua Engine. Начиная от создания формы трейнера и заканчивая назначением горячих клавиш. Поищи примеры на главном сайте по созданию заготовки трейнера. Может быть сложным. Но я настолько привык, что никаких сложностей кроме отладки и проверки не вижу. Но мне лень.И может быть пригодится самая главная функция инъекции асма кода на CE Lua EngineautoAssemble(text, targetself OPTIONAL) : runs the auto assembler with the given text. Returns true on success (if targetself is set it will assemble into Cheat Engine itself)Для неё множество примеров на официальном форуме Cheat Engine Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 29 ноября, 2013 Поделиться Опубликовано 29 ноября, 2013 Андрей, я выше описал способ проще - проверка дополнительных переменных ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuriko33 Опубликовано 11 декабря, 2014 Поделиться Опубликовано 11 декабря, 2014 [ENABLE]aobscan(address0, D9 46 78 8B 86)alloc(newMem, 2048)label(returnHere)registersymbol(address0)label(1hit)label(god)label(godflag)label(1hitflag)label(exit)registersymbol(godflag)registersymbol(1hitflag)newMem:cmp [esi+84],0je godjmp 1hitgod:cmp byte ptr [godflag],1jne exitmov [esi+78],(float)100jmp exit1hit:cmp byte ptr [1hitflag],1jne exitmov [esi+78],(float)1exit:fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHeregodflag:db 001hitflag:db 00address0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(godflag)unregistersymbol(1hitflag)unregistersymbol(address0)Затем в самой таблице добавляешь два адреса, в которых прямо пишешь названия меток (для этого и делается регистрация символов godflag и 1hitflag).Затем по внесению 1 в любой из этих адресов будет сигнализировать скрипту о том, что нужно выполнить свою часть. Скрипт должен быть активирован заранее, разумеется.И да, байтовая сигнатура слишком мала для поиска. Может найтись много вхождений. Надо взять кусок побольше, хотя бы байт 20 Скажите пожалуйста, как этот скрипт можно открыть при помощи Cheat Engine? Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 11 декабря, 2014 Поделиться Опубликовано 11 декабря, 2014 Скажите пожалуйста, как этот скрипт можно открыть при помощи Cheat Engine? Спасибо! Запускаем СЕ, открываем окно Отладчик далее Инструменты и Автоассемблер далее копи паст и сохранить, вот и всё. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuriko33 Опубликовано 12 декабря, 2014 Поделиться Опубликовано 12 декабря, 2014 Запускаем СЕ, открываем окно Отладчик далее Инструменты и Автоассемблер далее копи паст и сохранить, вот и всё. Спасибо! Попробую сделать, как сказали) Надеюсь получится)Всё сделал, как было сказано выше... Но теперь у меня пишет "Error while scanning AOB"s: address0" Простите, что туплю, но я ещё тот взломщик))Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 декабря, 2014 Поделиться Опубликовано 12 декабря, 2014 Спасибо! Попробую сделать, как сказали) Надеюсь получится)Всё сделал, как было сказано выше... Но теперь у меня пишет "Error while scanning AOB"s: address0" Простите, что туплю, но я ещё тот взломщик))Спасибо!Скорее всего Вы не запустили игру.Нужно запустить CE, запустить игру, в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ.После этого должно быть всё нормально. Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuriko33 Опубликовано 12 декабря, 2014 Поделиться Опубликовано 12 декабря, 2014 Скорее всего Вы не запустили игру.Нужно запустить CE, запустить игру, в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ.После этого должно быть всё нормально. "в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ" всё так и сделал ЗАПУСТИЛ "CE" выбрал FEAR.exe. после "открываем окно Отладчик далее Инструменты и Автоассемблер далее копи паст и выролнить" и выскакивает окошко с надписью "Error while scanning AOB"s: address0" и больше ничего!Может в скрипте что то надо вписать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 12 декабря, 2014 Поделиться Опубликовано 12 декабря, 2014 "в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ" всё так и сделал ЗАПУСТИЛ "CE" выбрал FEAR.exe. после "открываем окно Отладчик далее Инструменты и Автоассемблер далее копи паст и выролнить" и выскакивает окошко с надписью "Error while scanning AOB"s: address0" и больше ничего!Может в скрипте что то надо вписать? Тогда да. В скрипте, видно что сигнатура (aobscan(address0, D9 46 78 8B 86)) набрана вручную. У Вас скорее всего не сходятся версии игры. Нужно либо скачать туже версию игры, либо попросить lamalamaz В личных сообщениях прислать адрес инструкции.(будет выглядеть, типа так (FEAR.exe+36E4E0)В скрипте удалить строчку Аобскана "(aobscan(address0, D9 46 78 8B 86)" и заменить все строки "address0:" на полученный адрес "FEAR.exe+36E4E0:" Либо, что ещё сложнее, поискать сами инструкции в игре, эти(fld dword ptr [esi+78]mov eax,[esi+000000AC]).Ещё вариант (если в версиях отличаются только регистры в инструкциях), попробуйте Вариант 1:Замените (aobscan(address0, D9 46 78 8B 86)на(aobscan(address0, D9 xx xx 8B xx AC 00 00 00) Вариант 2:на(aobscan(address0, D9 xx xx 8B xx xx xx xx xx)Может что-то сработает Ссылка на комментарий Поделиться на другие сайты Поделиться
Yuriko33 Опубликовано 12 декабря, 2014 Поделиться Опубликовано 12 декабря, 2014 Тогда да. В скрипте, видно что сигнатура (aobscan(address0, D9 46 78 8B 86)) набрана вручную. У Вас скорее всего не сходятся версии игры. Нужно либо скачать туже версию игры, либо попросить lamalamaz В личных сообщениях прислать адрес инструкции.(будет выглядеть, типа так (FEAR.exe+36E4E0)В скрипте удалить строчку Аобскана "(aobscan(address0, D9 46 78 8B 86)" и заменить все строки "address0:" на полученный адрес "FEAR.exe+36E4E0:" Либо, что ещё сложнее, поискать сами инструкции в игре, эти(fld dword ptr [esi+78]mov eax,[esi+000000AC]).Ещё вариант (если в версиях отличаются только регистры в инструкциях), попробуйте Вариант 1:Замените (aobscan(address0, D9 46 78 8B 86)на(aobscan(address0, D9 xx xx 8B xx AC 00 00 00) Вариант 2:на(aobscan(address0, D9 xx xx 8B xx xx xx xx xx)Может что-то сработает Спасибо за совет, обязательно попробую сделать! Конечно тёмный лес, но буду стараться) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 14 декабря, 2014 Поделиться Опубликовано 14 декабря, 2014 (изменено) Yuriko33 игры у меня нет. Если инструкции и ID героя в скрипте найдены правильно, то по идее всё должно работать. Попробуй так:[ENABLE]aobscan(address0, D9 xx xx 8B xx xx xx xx xx)alloc(newMem, 512)label(returnHere)registersymbol(address0)label(hit)label(god)newMem:cmp [esi+84],0je godjne hitgod:mov [esi+78],(float)100fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHerehit:mov [esi+78],(float)0fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHereaddress0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(address0) Изменено 14 декабря, 2014 пользователем garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения