Ac1d Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 Привет! Вот хочу переделать трейнер на Deadhunt. Мой старый был написан на Tmk, вот хочу шагнуть в ногу со временем. Написал скрипт, нажал Execute, зашёл в игру, не вылетела, но и не поменяла значение. Как решить проблему? Скрипт:[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:mov [edx],000003E7 originalcode:mov [edx],ecxmov eax,[ebp-0000012c]exit:jmp returnhereDeadhunt.exe+84753:jmp newmemnopnopnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)Deadhunt.exe+84753:mov [edx],ecxmov eax,[ebp-0000012c]//Alt: db 89 0A 8B 85 D4 FE FF FF Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 Попробуй так Показать контент [ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov ecx,000003E7 originalcode:mov [edx],ecxmov eax,[ebp-0000012c]exit:jmp returnhereDeadhunt.exe+84753:jmp newmemnopnopnopreturnhere:[DISABLE]dealloc(newmem)Deadhunt.exe+84753:mov [edx],ecxmov eax,[ebp-0000012c] Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Спасибо! Работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 [ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov ecx,000003E7 // Тут пишем условые к инструкции на пример чтоб постоянно было 999 (000003E7) когда адрес обращается к инструкции. В этом случае правильно будет так mov ecx,000003E7. а у тебя mov [edx],000003E7.originalcode:mov [edx],ecx // к этой инструкцииmov eax,[ebp-0000012c]exit:jmp returnhereDeadhunt.exe+84753: // Этот адрес скопировал под [DISABLE]jmp newmemnopnopnopreturnhere:[DISABLE]dealloc(newmem)Deadhunt.exe+84753:mov [edx],ecxmov eax,[ebp-0000012c] Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Я так понял, что если инстр. вида mov [edx],ecx, то берётся eax и записывается mov ecx,ХХХХ, а если mov eax,[esi+xxxx], то mov [esi+xxxx],xxxx? Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 В 22.05.2011 в 12:35, Izmalkoff сказал: Я так понял, что если инстр. вида mov [edx],ecx, то берётся eax и записывается mov ecx,ХХХХ, а если mov eax,[esi+xxxx], то mov [esi+xxxx],xxxx?В общем да. Мы командой mov записываем постоянное значение в ecx. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Ааа Ссылка на комментарий Поделиться на другие сайты Поделиться
Chucky Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 Подскажите, а как скрипт СЕ перевести обратно в TMK? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Слушай, а вот допустим понаходил инструкций уйму и как проверить за что она отвечает? Как в TSearch поставил кружок красный и видно за что она отвечает. Как в CE сделать? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Нельзя вроде Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 В 22.05.2011 в 13:30, Izmalkoff сказал: Слушай, а вот допустим понаходил инструкций уйму и как проверить за что она отвечает? Как в TSearch поставил кружок красный и видно за что она отвечает. Как в CE сделать?В отладчике выделяешь инструкцию правой кнопкой мышки и Найти адреса,получающие доступ к этой инструкции с версии ENG Find out what addresses this instruction accesses Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 Чтобы вручную не перводить в HEX десятичные целые числа в скриптах можно использовать префикс "#". Если вещественные то (float). Если double, то надо смотреть в справке уже не помню....newmem:mov [eax], #100mov [eax+4], (float)100... В 22.05.2011 в 13:26, Chucky сказал: Подскажите, а как скрипт СЕ перевести обратно в TMK?А Вы сами подумайте можно или нет?! Очевидно, что нет. Либо вручную это делать либо писать программу. Лучше написать программу на LUA, которая бы выводила байты как на TMK... учите LUA, если настолько сильно требуется переводить в TMK формат. Я всё же советую забыть про TMK и пользоваться и учиться Cheat Engine 6.1 CR 1 (последняя тестовая версия и готовиться к финальной 6.1) Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Согласен! CE лучше. Только конструктор трейнеров меня не прикалывает . Если поможете сделаю трейнер +2 на Xenus 2 v1.1.Обьект взлома - опыт. Он там float. Инструкция вида movss [xxx+xxx],xmm0. По всякому пробовал записать, CE ругается Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 В 22.05.2011 в 17:05, Izmalkoff сказал: Инструкция вида movss [xxx+xxx],xmm0. По всякому пробовал записать, CE ругается ................label(name)newmem:mov [name],63originalcode:movss xmm0,[name]movss [xxx+xxx],xmm0exit:jmp returnherename: dd 0......................... Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 [ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [eax+esi*4+00001228],5F5E100 originalcode:movss [eax+esi*4+00001228],xmm0exit:jmp returnheregame.dll+DE415:jmp newmemnopnopnopnopreturnhere:[DISABLE]dealloc(newmem)game.dll+DE415:movss [eax+esi*4+00001228],xmm0//Alt: db F3 0F 11 84 B0 28 12 00 00Ничего не меняется Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 22 мая, 2011 Поделиться Опубликовано 22 мая, 2011 В 22.05.2011 в 18:15, Izmalkoff сказал: Ничего не меняетсяпеределаю ваш скрипт, если из сообщения выше вы чего-то не поняли[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)label(exp)newmem:mov [exp],5F5E100movss xmm0,[exp]originalcode:movss [eax+esi*4+00001228],xmm0exit:jmp returnhereexp: dd 0game.dll+DE415:jmp newmemnopnopnopnopreturnhere:[DISABLE]dealloc(newmem)game.dll+DE415:movss [eax+esi*4+00001228],xmm0//Alt: db F3 0F 11 84 B0 28 12 00 00 Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Да не понял . Кстати вылет после внедрения Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 22 мая, 2011 Автор Поделиться Опубликовано 22 мая, 2011 Хотя всё ок. Можете объяснить вот это?mov [exp],F4240movss xmm0,[exp]exp: dd 0 Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 23 мая, 2011 Поделиться Опубликовано 23 мая, 2011 Цитата ANT' date='23 Май 2011 - 00:28' timestamp='1306088895' post='3035']переделаю ваш скрипт, если из сообщения выше вы чего-то не поняли[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)label(exp)newmem:mov [exp],5F5E100movss xmm0,[exp]originalcode:movss [eax+esi*4+00001228],xmm0exit:jmp returnhereexp: dd 0game.dll+DE415:jmp newmemnopnopnopnopreturnhere:[DISABLE]dealloc(newmem)game.dll+DE415:movss [eax+esi*4+00001228],xmm0//Alt: db F3 0F 11 84 B0 28 12 00 00На заметку. Для инструкций работающих с регистрами xmm проверяйте, что ваши новые данные должны быть выровнены от начала блока памяти кратно 16 байт (иначе возможно игра будет подвисать, дёргаться или ещё что-нибудь), ещё говорят выровнены по 16-му параграфу. Назначь метку, от метки newmem на расстоянии кратном 16-ти байтам.Пример:[ENABLE] alloc(_newmem,2048) label(_coord) registersymbol(_coord)_newmem: _coord: // кратно 16-ти байтам dd (float)48.45 dd (float)2.96 dd (float)-3.54 dd (float)1 // а тут сделать тело чит-кода // или здесь отступить кратно 16-ти байтам[DISABLE] dealloc(_newmem) unregistersymbol(coord)//Alt: db 0F 28 44 24 10[ENABLE] aobscan(_faddress,66xxxxxxxx8bxxxxxxxxxx89xxxx80xxxxxxxxxxxx74xxd9xxxxxxxxxxxxd9xx) alloc(_newmem,2048) label(_returnhere) label(_originalcode)_newmem: movaps xmm0,[_coord]_originalcode: db 66 0F D6 46 30 //"movq [esi+30],xmm0" - не компилировалось, поэтому пришлось писать байтами jmp _returnhere_faddress: // 00753ECF = metro2033.exe+353ECF jmp _newmem_returnhere:[DISABLE] aobscan(_faddress,8bxxxxxxxxxx89xxxx80xxxxxxxxxxxx74xxd9xxxxxxxxxxxxd9xx)_faddress-5: db 66 0F D6 46 30 //movq [esi+30],xmm0 dealloc(_newmem)//Alt: db 66 0F D6 46 30 Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 25 мая, 2011 Поделиться Опубликовано 25 мая, 2011 Izmalkoff по поводу твоего трейнера Deadhunt ты там писал что <<Однако урон может вам нанести "Предводитель" во второй миссии, от зомби, скелетов урона не наблюдалось>> Выложи скрипт на бессмертие посмотрю, скрипт создан на CE? Ссылка на комментарий Поделиться на другие сайты Поделиться
Ac1d Опубликовано 26 мая, 2011 Автор Поделиться Опубликовано 26 мая, 2011 Нет, TSearch+TMK, Я тогда не знал как писать скрипы на CE Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения