CTIGRA Опубликовано 9 апреля, 2014 Поделиться Опубликовано 9 апреля, 2014 Подскажите пожалуйста как задать вот такое условие при работе с FPU (double)Если X<10000 AND Y<10000гдеXfld qword ptr [eax+08] // значениеfstp qword ptr [edi+08] // запись в структуруYfld qword ptr [eax+10]fstp qword ptr [edi+10]пробовал наподобииpush eaxfld [ValueX]fcom [ValueY]fstsw axsahfjl Rezult1 -если X<Yjnle Rezult2 -если X>Yje Rezult3 -если X=Ypop eaxно тут получается только ИЛИк тому же встает вопрос как доставить из стека eax в случае ELSE (когда условие не выполняется) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 9 апреля, 2014 Поделиться Опубликовано 9 апреля, 2014 Если Вы не знаете как написать низкоуровневый код, то его можно написать на языке высокого уровня.Например, это можно сделать используя Visual Studio C++. После того как код написан, то в среде разработки можно поставить брейкпоинт на выполнение инструкции подсмотреть дизассемблерный код.Пример:На скриншоте код не соответствует условию X<10000 AND Y<10000. Поэтому надо переписать, подсмотреть и переделать под инъекцию кода в процесс игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
CTIGRA Опубликовано 9 апреля, 2014 Автор Поделиться Опубликовано 9 апреля, 2014 спасибо, попробую. Надо только студио скачать будет...Ещё 2 вопроса если можно )1) По условию будет прыжок, а у нас eax в стеке. Как же достать его из стека? ставить ещё метку или можно сделать это после returnhere?2) автоассемблер переходит на метку cheat, потом прыгает на cheatByteCodeв результате имеем такой кодcheat:jmp cheatByteCodenopполучается что данный код это 6 байт?(потому что это 6ть байтfld qword ptr [eax+08] // значениеfstp qword ptr [edi+08] // запись в структуру)таким образом, мне нужно ещё добавить nop'ов после jmp cheatByteCodeпо формуле (кол-во байт на выполнение условия минус 6)?или можно не добавлять nop? просто перезаписать значения в адресах [edi+08] и [edi+10] согласно условию?в результате я хочу менять значения в X и Y но при условии что описано выше. Ссылка на комментарий Поделиться на другие сайты Поделиться
Tiger Опубликовано 9 апреля, 2014 Поделиться Опубликовано 9 апреля, 2014 Выложите пример скрипта с готовыми инжектами... и состояние стека fpu после загрузки каждого из значений.Может быть загрузить последовательно все значения, и сортировать FCOMIP ST,ST(i) FCOMI ST,ST(i).... в зависимости от количества и расположения инжектов по коду...Хотя можно до fld [] поработать с eax+08/10aobscan(cheat, XX XX XX XX XX XX XX XX XX XX XX)alloc(cheatByteCode, 2048)registersymbol(cheat)label(metka)cheatByteCode:pushfcmp [eax+08],#10000jge metkacmp [eax+10],#10000jge metkamov [eax+08], {0000} // тут присваеваем требуемое значение xmov [eax+10], {0000} // тут присваеваем требуемое значение ymetka:popffld qword ptr [eax+08]fstp qword ptr [edi+08]//fld qword ptr [eax+10]//fstp qword ptr [edi+10]retcheat:call cheatByteCodenop[DISABLE]cheat:db XX XX XX XX XX XX XX XX XX XX XXdealloc(cheatByteCode)unregistersymbol(cheat)[ENABLE] Ссылка на комментарий Поделиться на другие сайты Поделиться
CTIGRA Опубликовано 10 апреля, 2014 Автор Поделиться Опубликовано 10 апреля, 2014 Вот что получилось, но не работает...что я делаю не так?[ENABLE]alloc(newmemZ,2048)label(returnhereZ)label(cheatByteCodeZ)label(QWordValueZ)label(QWordValue)label(cheatZ)registersymbol(cheatZ)aobscan(aob_scanZ,DD 40 18 DD 5F 18 8B)newmemZ:newmemZ + 64:QWordValueZ:dq (double)10000QWordValue:dq (double)10cheatByteCodeZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]push eaxfld [QWordValueZ]fcomp qword ptr [edi+08]fnstsw axtest ah,0x41jne returnhereZfld [QWordValueZ]fcomp qword ptr [edi+10]fnstsw axtest ah,0x41jne returnhereZfld qword ptr [QWordValue]fstp qword ptr [edi+08]fld qword ptr [QWordValue]fstp qword ptr [edi+10]jmp returnhereZaob_scanZ:cheatZ:jmp cheatByteCodeZnopreturnhereZ:pop eax[DISABLE]cheatZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]unregistersymbol(cheatZ)dealloc(newmemZ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Tiger Опубликовано 14 апреля, 2014 Поделиться Опубликовано 14 апреля, 2014 [ENABLE]alloc(cheatByteCodeZ,2048)label(returnhereZ)aobscan(aob_scanZ,DD 40 18 DD 5F 18 8B)label(aob_scanZ)registersymbol(aob_scanZ)label(QWordValueZ)registersymbol(QWordValueZ)label(QWordValue)registersymbol(QWordValue)//########################################cheatByteCodeZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]push eaxfld [QWordValueZ] // подгрузил, возможно вытолкнул что нужное стека...fcomp qword ptr [edi+08]fnstsw axtest ah,0x41jne returnhereZ// fld [QWordValueZ] // уже загружалfcomp qword ptr [edi+10]fnstsw axtest ah,0x41jne returnhereZfld qword ptr [QWordValue]fstp qword ptr [edi+08]fld qword ptr [QWordValue]fstp qword ptr [edi+10]returnhereZ:fstp [QWordValueZ] // подгрузил, но оставил невыгруженным.pop eaxret //*****************возврат к месту вызова//****************объявить переменные можно в конце страницы cheatByteCodeZQWordValueZ:dq (double)10000QWordValue:dq (double)10//########################################//*****************инжект вызова процедуры cheatByteCodeZaob_scanZ:call cheatByteCodeZnop//########################################[DISABLE]//****************возвращаем как былоaob_scanZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]//****************стираем все что создавалиunregistersymbol(aob_scanZ)unregistersymbol(QWordValueZ)unregistersymbol(QWordValue)dealloc(cheatByteCodeZ)FPREM... посмотри, или переделай без стека fpu, он тут не принципиален.... Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Durantx Опубликовано 12 октября, 2014 Поделиться Опубликовано 12 октября, 2014 [ENABLE]alloc(cheatByteCodeZ,2048)label(returnhereZ)aobscan(aob_scanZ,DD 40 18 DD 5F 18 8B)label(aob_scanZ)registersymbol(aob_scanZ)label(QWordValueZ)registersymbol(QWordValueZ)label(QWordValue)registersymbol(QWordValue)//########################################cheatByteCodeZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]push eaxfld [QWordValueZ] // подгрузил, возможно вытолкнул что нужное стека...fcomp qword ptr [edi+08]fnstsw axtest ah,0x41jne returnhereZ// fld [QWordValueZ] // уже загружалfcomp qword ptr [edi+10]fnstsw axtest ah,0x41jne returnhereZfld qword ptr [QWordValue]fstp qword ptr [edi+08]fld qword ptr [QWordValue]fstp qword ptr [edi+10]returnhereZ:fstp [QWordValueZ] // подгрузил, но оставил невыгруженным.pop eaxret //*****************возврат к месту вызова//****************объявить переменные можно в конце страницы cheatByteCodeZQWordValueZ:dq (double)10000QWordValue:dq (double)10//########################################//*****************инжект вызова процедуры cheatByteCodeZaob_scanZ:call cheatByteCodeZnop//########################################[DISABLE]//****************возвращаем как былоaob_scanZ:fld qword ptr [eax+18]fstp qword ptr [edi+18]//****************стираем все что создавалиunregistersymbol(aob_scanZ)unregistersymbol(QWordValueZ)unregistersymbol(QWordValue)dealloc(cheatByteCodeZ)FPREM... посмотри, или переделай без стека fpu, он тут не принципиален.... aobscan(aob_scanZ,DD 40 18 DD 5F 18 8B)label(aob_scanZ) ошибка вылазиит в этой строке is not a valid identifier Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 12 октября, 2014 Поделиться Опубликовано 12 октября, 2014 label уже не нужно объявлять, он автоматом объявляется в aobscan Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Durantx Опубликовано 13 октября, 2014 Поделиться Опубликовано 13 октября, 2014 (изменено) Помогите не получается обещал людям телепортацию сделать.И так и сяк не получается игра вылетает Изменено 13 октября, 2014 пользователем Durantx Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 13 октября, 2014 Поделиться Опубликовано 13 октября, 2014 Помогите не получается обещал людям телепортацию сделать.И так и сяк не получается игра вылетаетКенг же писал видео урок как сделать телепорт. Почему не посмотришь? Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Durantx Опубликовано 13 октября, 2014 Поделиться Опубликовано 13 октября, 2014 ссылку киньте сам поискал ничего не нашел Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 13 октября, 2014 Поделиться Опубликовано 13 октября, 2014 http://www.youtube.com/user/remizovm/videos Тут найдешь все, что необходимо. Что будет непонятно - отписывайся в этом теме, объясню. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения