aliast Опубликовано 14 мая, 2011 Поделиться Опубликовано 14 мая, 2011 Вот ещё одна любопытная игра. Кому лень качать полную версию на плэйграунде есть какие-то демки 150 Мб. Не могу заломать в этой игре даже ничтожные патроны! Искал все типы, неизвестное, уменьшилось, увеличилось, просто изменилось - пока безрезультатно... Если верить файлу скриптов, жизнь хранится как float от 0.0 до 1.0, но нет, всё равно глухо.Вроде бы M4K пытался ломать игру артмани, но тоже не смог. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 14 мая, 2011 Поделиться Опубликовано 14 мая, 2011 Тут узнал что игру выпускали где то в 2003 году, нормально держиться если занчение трудно найти. Попробуем. aliast юзал на MHS_е? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 14 мая, 2011 Автор Поделиться Опубликовано 14 мая, 2011 Да, именно в 2003. Решил всё-таки пройти эту игру, в 2003 так и не доиграл, застрял на некоторой миссии, не знал куда идти. А что юзать - MHS, CE, Artmoney не думаю что есть существенная разница, кроме скорости поиска.PS Я тут вчера прошёл Чернобыль Зона отчуждения, игра 2011 года, а патроны хранятся в статическом адресе, не меняющемся после перезахода в игру. ТО-то я удивился))) (игра не очень) Ссылка на комментарий Поделиться на другие сайты Поделиться
SER[G]ANT Опубликовано 14 мая, 2011 Поделиться Опубликовано 14 мая, 2011 Скачал демку v1.30 (http://www.playground.ru/files/2045/)Бесконечные патроны:[ENABLE]"Chaser.exe"+1D43CD:db 90 90[DISABLE]"Chaser.exe"+1D43CD:mov [ecx],ediБессмертие:[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:mov [ebx+1D0],64 //макс. здоровьеmov [ebx+1D8],64 //макс. броняoriginalcode:mov eax,[ebx+000001D8]exit:jmp returnhere"Chaser.exe"+C6A1D:jmp newmemnopreturnhere:[DISABLE]dealloc(newmem)"Chaser.exe"+C6A1D:mov eax,[ebx+000001D8]Проблем с поиском значений не возникло. Ищется точное значение 4 байта, находится при первом же отсеве (пользовался CE 6.1 b3).P.S. Не ломай, а проходи честно. Больше удовольствие от игры получишь)P.P.S. Ни разу не играл с читами Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 14 мая, 2011 Автор Поделиться Опубликовано 14 мая, 2011 Возможно в демке всё проще, а Руссобитовцы перемудрили с какой-нибудь защитой аля старфорс. У меня версия 1.47, проблемы с поиском есть Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 14 мая, 2011 Поделиться Опубликовано 14 мая, 2011 ZOCKIR, возможно прав. Я уже точно не помню, но то что я не мог найти на CE 5.6, я нашёл MHS. Я имею ввиду поиск float. По поводу новых версий CE ничего сказать не могу. Тогда в CE 5.6 я тестил и ставил различные настройки округления float числа, различные типы поисков. Были проверены мной характеристики сканирумой памяти. Почему-то CE никак не находил адреса в районе десятых долей. MHS этот делал эффективно. В нём можно было сделать делать даже сразу три отсева за раз (в принципе в CE тоже)1) Ищем float "от 0,0 до 1000000,0" идём в игру и уменьшаем2) Отсеиваем "уменьшилось", отсеиваем "от 0,0 до 1000000,0", отсеиваем "не изменилось"; идём в игру ставим предыдущее значение3) Отсеиваем увеличилось,, отсеиваем "от 0,0 до 1000000,0" отсеиваем адреса значения которых равны при первом сканировании,НУ и так далее... так можно быстро найти, если нет обратной пропорциональности, иного алгоритма, иных типов данных или шифорования. Как я уже писал где-то, если поиск слишком нудный, то надо искать значение текста. Я это почему-то делаю в Артмани (уже не помню почему). Если адрес найдётся, то уже лезем в отладчик OllyDbg, ищем адрес в памяти, ставм бряк на запись и находим код который и исследуем, и понимаем в чем "секрет" Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 14 мая, 2011 Поделиться Опубликовано 14 мая, 2011 Возможно в демке всё проще, а Руссобитовцы перемудрили с какой-нибудь защитой аля старфорс. У меня версия 1.47, проблемы с поиском есть Следовало бы версию указывать с самого начала Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 14 мая, 2011 Автор Поделиться Опубликовано 14 мая, 2011 Интересно: нашёл для своей версии активатор вырезанного из русской лицензии чита GodMode - работает! Автор активатора просто изменил безусловный переход с одного адреса на другой. И кому приспичило этот чит вырезать)) Но моя цель не найти чит, а разобраться самому как там всё хранится. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 15 мая, 2011 Автор Поделиться Опубликовано 15 мая, 2011 Похоже здоровье кодировано... 100% здоровья = 5Bh99% = 5Ch...64% = 7Fh63% = 0062% = 01...1% = 3Ehсмерть = 3FhВот такая фигня...С патронами таже фигня.ЗЫ хех... после перезапуска игры кодированные значения ещё и изменяются.. т.е. уже не 100% = 5Bh, а что-то другое... алгоритм не могу определить( в принципе бессмертие работает, но каждый раз будет разное число здоровья)) Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 15 мая, 2011 Автор Поделиться Опубликовано 15 мая, 2011 Для русской версии 1.47 от Руссобита.Случайное здоровье+броня (бессмертие)://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 heremov [eax+000006B0],00 //Freeze Random value of Healthmov [eax+000006B4],00 //Freeze Random value of Armororiginalcode:mov eax,[eax+000006B0]exit:jmp returnhere"Chaser.exe"+1DEE52:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Chaser.exe"+1DEE52:mov eax,[eax+000006B0]//Alt: db 8B 80 B0 06 00 00[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 herenopnopnoporiginalcode://mov [ecx+edi*4],eaxmov edx,[esi+1C]exit:jmp returnhere"Chaser.exe"+1D7F27:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Chaser.exe"+1D7F27:mov [ecx+edi*4],eaxmov edx,[esi+1C]//Alt: db 89 04 B9 8B 56 1C[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 herenopnopnoporiginalcode://mov eax,[ecx+edx*8]lea edi,[ecx+edx*8]exit:jmp returnhere"Chaser.exe"+CBBE:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Chaser.exe"+CBBE:mov eax,[ecx+edx*8]lea edi,[ecx+edx*8]//Alt: db 8B 04 D1 8D 3C D1[ENABLE] Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 15 мая, 2011 Поделиться Опубликовано 15 мая, 2011 Что-то скрипты странные. Зачем писать нопы под newmen ? Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 15 мая, 2011 Автор Поделиться Опубликовано 15 мая, 2011 Действительно, зачем выделять память под нопы? Скрипт бессмертия в срочном порядке надо переделать, игра частенько принимает меня за трупа на старте. Я тут нашёл раскодировщик кодированного значения, вызов call идёт сразу за инструкцией, куда я сделал вставку кода:mov eax,[006897CC]mov ecx,[006897C8] //адреса статические, но содержимое изменчивоxor eax,ecxmov ecx,[esp+04] //в ecx кодированное значение из стекаxor eax,ecx //в eax - раскодированное значениеret На выходе в eax будет раскодированное значение здоровья, патронов. Можно ли отсюда написать кодировщик? У меня мало опыта с ксорами... Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 15 мая, 2011 Поделиться Опубликовано 15 мая, 2011 "Раскодировку" можно сделать применив xor повторно.A xor B = CРаскодировка:B = A xor C // если известны А и СA = B xor C // если известны В и СПотренироваться можно на Windows калькуляторе в инженерном режиме. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 16 мая, 2011 Автор Поделиться Опубликовано 16 мая, 2011 Всё, нашёл ошибку. Теперь работает и замораживает положенные 100% здоровья и брони. Ура!Новые версии скриптов.Бессмертие://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 herepush ebxmov ebx,#100 //Некодированное значение здоровья и брониpush eaxpush ecxmov eax,[006897CC] //mov ecx,[006897C8] //Эти два movxor eax,ecx //xor eax,ebx // и два xor переписаны из функции раскодированияmov ebx,eax //теперь в ebx кодированное значение числа 100pop ecx //команду выше можно изменить на xchg eax,ebx - минус 1 байтpop eaxmov [eax+000006B0],ebx //100% здоровьяmov [eax+000006B4],ebx //100% брониpop ebxoriginalcode:mov eax,[eax+000006B0]exit:jmp returnhere"Chaser.exe"+1DEE52:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Chaser.exe"+1DEE52:mov eax,[eax+000006B0]//Alt: db 8B 80 B0 06 00 00[ENABLE]Без перезарядки:"Chaser.exe"+1D7F27:db 90 90 90[DISABLE]//code from here till the end of the code will be used to disable the cheat"Chaser.exe"+1D7F27:mov [ecx+edi*4],eaxmov edx,[esi+1C]//Alt: db 89 04 B9 8B 56 1C[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 herepush ebxmov ebx,#99 //Некодированное число гранатpush eaxpush ecxmov eax,[006897CC] //mov ecx,[006897C8] //Эти два movxor eax,ecx //xor eax,ebx // и два xor переписаны из функции раскодированияmov ebx,eax //теперь в ebx кодированное значение числа 99pop ecx //команду выше можно изменить на xchg eax,ebx - минус 1 байтpop eaxmov [ecx+edx*8],ebx //99 гранатpop ebxoriginalcode:mov eax,[ecx+edx*8]lea edi,[ecx+edx*8]exit:jmp returnhere"Chaser.exe"+CBBE:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"Chaser.exe"+CBBE:mov eax,[ecx+edx*8]lea edi,[ecx+edx*8]//Alt: db 8B 04 D1 8D 3C D1[ENABLE] 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
M4K Опубликовано 19 мая, 2011 Поделиться Опубликовано 19 мая, 2011 Спасибо! Там ещё важный чит на невидимость - в русской версии от Руссобит также вырезан локализаторами. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 20 мая, 2011 Автор Поделиться Опубликовано 20 мая, 2011 Не невидимость, а режим полёта. Ага, его никто пофиксить не взялся Чит был бы полезен. Чтобы пройти игру мне частенько приходилось смотреть прохождение на ютубе ибо найти эти люки в полу и под потолком частенько бывает трудно)Сейчас пожалуй выложу тренер-таблицу в другой теме... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения