JIeXA Опубликовано 20 ноября, 2010 Поделиться Опубликовано 20 ноября, 2010 Начал ломать новую игруху и сразуже наткнулся на такую проблемуЛомаю позицию в гонке (смысле 1 там второй) нашёл значение вышел на инструкцию,Нужен фильт, пытаюсь написать СЕ его не компилит ругается на LABEL(_Player).Собственно вопрос где я накасячилСам скрипт aobscan(_faddress,89xxxx8bxxxx8bxxxxxx8dxxxxxxxx8bxxffxx8bxx89xx8bxxxxxx8d) alloc(_newmem,2048) label(_returnhere) label(_originalcode) LABEL(_Player) REGISTERSYMBOL(_Player)_newmem: mov [esi+48],eax push ecx mov ecx,(NFS11.exe+014DF9A0) mov ecx,(ecx+6A4) mov ecx,(0871c520+50) mov ecx,(0871c578) mov ecx,(0871c520+9c) mov ecx,(0871c5c4+48) mov (_Player),ecx pop ecx cmp esi,(_Player) ine short _originalcode mov [esi+48],#1_originalcode: mov [esi+48],eax mov eax,[ebp+00] jmp _returnhere_faddress: // 00583CEF = NFS11.exe+183CEF jmp _newmem nop_returnhere:_player: db 90 90[DISABLE] aobscan(_faddress,908bxxxxxx8dxxxxxxxx8bxxffxx8bxx89xx8bxxxxxx8d)_faddress-5: mov [esi+48],eax mov eax,[ebp+00] dealloc(_newmem)//Alt: db 89 46 48 8B 45 00[ENABLE] Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 20 ноября, 2010 Поделиться Опубликовано 20 ноября, 2010 Когда пишешь ассемблерные инструкции нужно писать не в круглых скобках, а в квадратных.mov (_Player),ecxнужно заменить на mov [_Player],ecxА также необходимо заменить остальные скобки под "_newmem:" Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 20 ноября, 2010 Автор Поделиться Опубликовано 20 ноября, 2010 Что-то я потыркался, потыркался и ни хрена не вышло всё равно не компилитМастересли не трудно, отредактируй мой скрипт чтоб компилисяи укажи на места ошибок!!!!!!!!!!!!!!!!!!!!!!!!! Ссылка на комментарий Поделиться на другие сайты Поделиться
JIeXA Опубликовано 20 ноября, 2010 Автор Поделиться Опубликовано 20 ноября, 2010 нитро[ENABLE] aobscan(_faddress,d9xxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx69) alloc(_newmem,2048) label(_returnhere) label(_originalcode)_newmem: mov [eax+ecx+64],(float)100_originalcode: fld dword ptr [eax+ecx+64] ret 0004 jmp _returnhere_faddress: // 005D7F7A = NFS11.exe+1D7F7A jmp _newmem nop nop_returnhere:[DISABLE] aobscan(_faddress,9090xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx8bxxxxxx69)_faddress-5: fld dword ptr [eax+ecx+64] ret 0004 dealloc(_newmem)зми и прочие[ENABLE] aobscan(_faddress,ffxxxxxxxxxxxxf3xxxxxxxxxxxxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx83) alloc(_newmem,2048) label(_returnhere) label(_originalcode)_newmem:_originalcode: inc [ecx+eax*4+00000598] jmp _returnhere_faddress: // 00572141 = NFS11.exe+172141 jmp _newmem nop nop_returnhere:[DISABLE] aobscan(_faddress,9090f3xxxxxxxxxxxxxxxxc2xxxxxxxxxxxxxxxxxxxxxxxxxxxx83)_faddress-5: dec [ecx+eax*4+00000598] dealloc(_newmem)Награда[ENABLE] aobscan(_faddress,8bxxxxxxxxxxxx01xxxxxxxxxxxx3bxxxxxxxxxx72xx3bxxxxxxxxxx74xx8b) alloc(_newmem,2048) label(_returnhere) label(_originalcode)_newmem: mov dword ptr [eax+ecx*4+000455a0],#10000000_originalcode: mov edi,[eax+ecx*4+000455a0] jmp _returnhere_faddress: // 005E59F0 = NFS11.exe+1E59F0 jmp _newmem nop nop_returnhere:[DISABLE] aobscan(_faddress,909001xxxxxxxxxxxx3bxxxxxxxxxx72xx3bxxxxxxxxxx74xx8b)_faddress-5: mov edi,[eax+ecx*4+000455a0] dealloc(_newmem) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Что-то я потыркался, потыркался и ни хрена не вышло всё равно не компилитМастересли не трудно, отредактируй мой скрипт чтоб компилисяи укажи на места ошибок!!!!!!!!!!!!!!!!!!!!!!!!!Ты ещё забыл попросить сделать трейнер ) Не. У нас на форуме есть множество примеров как писать скрипты по ним можно научиться. Если что-то не компилируется,то упрощай скрипт так чтобы компилировался, а затем добавляй по строчке своего кода и увидишь ошибку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Ты метку _Player объявить - объявил, но не определил. Она не указывает ни на какой адрес. Поэтому Авто-Ассемблер и ругается.Определи ее в коде примерно так:_newmem: mov [esi+48],eax push ecx mov ecx,(NFS11.exe+014DF9A0) mov ecx,(ecx+6A4) mov ecx,(0871c520+50) mov ecx,(0871c578) mov ecx,(0871c520+9c) mov ecx,(0871c5c4+48) mov (_Player),ecx pop ecx cmp esi,(_Player) jne short _originalcode mov [esi+48],#1_originalcode: mov [esi+48],eax mov eax,[ebp+00] jmp _returnhere_Player: dd 0То есть, в области выделенной памяти за кусками нужного кода ты выделяешь один адрес для того, чтобы записывать в него статичный адрес, и все будет путем ) Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Нет, он её объявил и определил. Если он скобки сделал квадратными, то возможно должно было бы всё работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Точно нет. ибо компилятор авто-ассемблера не знает, какой адрес записываь в квадратные скобки, если не зарезервировать место под метку. У меня такое было раз, когда я торопясь писал скрипт. Ошибка именно отсюда ползет. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Нет. Он определил:_Player: dd 0но не там где надо (я сразу не увидел) . Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 ноября, 2010 Поделиться Опубликовано 21 ноября, 2010 Ага, не там, где надо, да еще и неправильно. Регистр символов при объявлении меток важен. Еще и поэтому компилятор ругался ) Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 16 февраля, 2011 Поделиться Опубликовано 16 февраля, 2011 Привет всем... подскажите как в игре таймер гонки сломать... а точнее как его найти то... и штрафные секунды у ментов...спс... Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 16 февраля, 2011 Поделиться Опубликовано 16 февраля, 2011 Привет всем... подскажите как в игре таймер гонки сломать... а точнее как его найти то... и штрафные секунды у ментов...спс...вот скрипт[ENABLE] aobscan(_faddress,01xxxx8dxxxx8bxxxxxx11xxxx66xxxx75xxxxxxxxxx83xxxxc2) aobscan(_faddress2,01xx11xxxxe8xxxxxxxxxxxxxxxxxxxxe8xxxxxxxx33xx38xxxxxx0f)_faddress: // 00562FE8 = AK::GameLogic::Profile::ReadFromFile+4E58 db 90 90 90_faddress2: // 00545375 = AK::GameLogic::CompetitorsManager::RegisterWithBindingManager+F5F5 db 90 90[DISABLE] aobscan(_faddress,9090908dxxxx8bxxxxxx11xxxx66xxxx75xxxxxxxxxx83xxxxc2) aobscan(_faddress2,909011xxxxe8xxxxxxxxxxxxxxxxxxxxe8xxxxxxxx33xx38xxxxxx0f)_faddress: add [edx+ecx*8],ebp_faddress2: add [eax],ediтолько как искал, не помню) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 17 февраля, 2011 Поделиться Опубликовано 17 февраля, 2011 Объясните мне, зачем вы в части скрипта, которая ВЫКЛЮЧАЕТ чит, повторяете поиск сигнатуры? Она ведь уже найдена во ВКЛЮЧАЮЩЕЙ части скрипта. Соответственно, в повторном поиске необходимости нет. Достаточно сразу использовать адреса, найденные в первой части скрипта. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 17 февраля, 2011 Поделиться Опубликовано 17 февраля, 2011 Это самая простая проверка на, то что код после инъекции не изменился и его можно спокойно отменить. На самом деле это понадобилось только в одной игре - сделать инъекцию на кол-во золота для покупки войск перед загрузкой карты и последующим боем. У игры выгружались и подгружались dll-ки перед началом боя. Соответственно после боя невозможно отменить инъекцию, т.к. сигнатуры не существует. Ссылка на комментарий Поделиться на другие сайты Поделиться
Grom-Skynet Опубликовано 17 февраля, 2011 Поделиться Опубликовано 17 февраля, 2011 Игра Need for Speed Hot Pursuit v1.0Помогите сломать таймер гонки и штрафные секунды у ментов...Значени находится как float и double но как double мне кажется подходит лучше всего... заморозка не рабобает и инструкции тоже... Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 18 февраля, 2011 Поделиться Опубликовано 18 февраля, 2011 (изменено) Если хочешь больше шансов чтобы ответили(может быть и я помогу), то желательно потрудиться для этого:1) В CE скопировать участок кода прервавшейся инструкции для тамера гонки и сгенерировать и привести сигнатуру из CE 5.6 RUS.2) В CE скопировать участок кода прервавшейся инструкции для штрафных секунд и сгенерировать и привести сигнатуру из CE 5.6 RUS3) Приаттачить два сейв-файла перед началом миссий в которых будут срабатывать инструкции из пункта 2 и пункта 3. Изменено 18 февраля, 2011 пользователем MasterGH Ссылка на комментарий Поделиться на другие сайты Поделиться
live_4_ever Опубликовано 19 февраля, 2011 Поделиться Опубликовано 19 февраля, 2011 Как изменить время в игре, таймер или вообще его отсчет заморозить? Во-первых, таймер может считать время по убыванию к нулю, или, наоборот по возрастанию до определенного времени. Причем даже если ты думаешь что это таймер по убыванию, он может храниться как таймер по возрастанию. Попробуй оба варианта. Нужно в игре зайти в меню или поставить игру на паузу. Если в игре нет кнопки паузы, тогда поставь паузу через, в твоем случае, CE. Обычно время хранится в секундах, или в миллисекундах (в тысячных долях секунды). Очень редко минуты и секунды хранятся отдельно. Например, игра Starcraft время хранит в секундах. Если у тебя 24 минуты и 33 секунды, то искать надо 1473 секунд (24мин*60+33сек=1473сек). Обычно видимое на экране время на единицу отличается от реального, эффект задержки. Искать лучше через поиск "Неизвестное значение" (условия Увеличилось/Уменьшилось). Или искать диапазоном, то есть у тебя 3:14 это 194 секунд. Ищи диапазон с 192 до 196 целые. Просто секунды тоже ищи в диапазоне, то есть с 12 до 16 целые. Источник Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения