Coder Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Адреса вроде статические.Вот адрес на P1-Scores "tennistrainme.exe+6480" (Float)------------------P2-Scores "tennistrainme.exe+6484" (Float)Что бы P1-Scores до 99[ENABLE]alloc(newMem, 2048)label(returnHere)newMem:cmp [tennistrainme.exe+6480],(float)99jne tennistrainme.exe+1E87mov byte ptr [eax+ecx],01cmp eax,0Fjnge tennistrainme.exe+1FB1jmp returnHeretennistrainme.exe+1FB8:jmp newMemreturnHere:[DISABLE]tennistrainme.exe+1FB8:cmp eax,0Fjnge tennistrainme.exe+1FB1dealloc(newMem)Что бы P2-Scores до 99[ENABLE]alloc(newMem, 2048)label(returnHere)newMem:cmp [tennistrainme.exe+6484],(float)99jne tennistrainme.exe+1E87mov byte ptr [eax+ecx],01cmp eax,0Fjnge tennistrainme.exe+1E75jmp returnHeretennistrainme.exe+1E7C:jmp newMemreturnHere:[DISABLE]tennistrainme.exe+1E7C:cmp eax,0Fjnge tennistrainme.exe+1E75dealloc(newMem)Что бы всегда очки в пользу Р1[ENABLE]alloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem:originalcode:fld dword ptr [tennistrainme.exe+6480]mov ecx,[esi+04]fadd qword ptr [tennistrainme.exe+4428]xor eax,eaxfstp dword ptr [tennistrainme.exe+6480]exit:jmp returnhere"tennistrainme.exe"+1E5E:jmp newmemnopnopnopnopnopnopnopnopnopnopnopnopnopnopnopnopnopnopreturnhere:[DISABLE]dealloc(newmem)"tennistrainme.exe"+1E5E:fld dword ptr [tennistrainme.exe+6484]mov ecx,[esi+04]fadd qword ptr [tennistrainme.exe+4428]xor eax,eaxfstp dword ptr [tennistrainme.exe+6484]Все условии сделаны (не смотря что все статические), кроме видео. Видео делать я не умею... уж извините) да и с временем туго.Эти адреса на экранные значение, а реальные значение только 15, т.е. подсчет идет ка кто по другому.(попробую объяснит: Когда считает, игра проверяет пятнадцать 8 битных значении, расположенных подряд друг за другом на 0 или 1. Изначально все нули. Когда первый раз выигрывает, первый байт переводит на "один", второй раз выигрывает, второй байт... и так дале. Последний байт самый важный.Я попробовал отключить подсчет и связал его с экранным значением... вроде получилось (скрипт на верху). Правда в конце один баг заметил, но исправить нету сил. спать хочется)Вообще ни один скрипт не работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Вообще ни один скрипт не работает.Работает у Laziz_а скрипт, может не тот трейнми(старую версию скачал ) скачал?Скрипт чтоб убрать ограничение 15.[ENABLE]"tennistrainme.exe"+1E75:cmp byte ptr [eax+ecx],01 //PS2/////////////////////////////"tennistrainme.exe"+1FB1:cmp byte ptr [eax+ecx],01 //PS1[DISABLE]"tennistrainme.exe"+1E75:cmp byte ptr [eax+ecx],00"tennistrainme.exe"+1FB1:cmp byte ptr [eax+ecx],00 Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Coder может еще от виндовса зависит. Скрипты делал на ХР, хотя Я только что проверил на вин8 х64, тоже робит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Работает у Laziz_а скрипт, может не тот трейнми(старую версию скачал ) скачал?Скрипт чтоб убрать ограничение 15.[ENABLE]"tennistrainme.exe"+1E75:cmp byte ptr [eax+ecx],01 //PS2/////////////////////////////"tennistrainme.exe"+1FB1:cmp byte ptr [eax+ecx],01 //PS1[DISABLE]"tennistrainme.exe"+1E75:cmp byte ptr [eax+ecx],00"tennistrainme.exe"+1FB1:cmp byte ptr [eax+ecx],00Не работает.Вы ломаете визуальное значение, а это до добра не доводит.Ты сказал убирает ограничение, и до скольки так набивать сидеть? Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Coder может еще от виндовса зависит. Скрипты делал на ХР, хотя Я только что проверил на вин8 х64, тоже робит.На Win7 отл. работает.Ты сказал убирает ограничение, и до скольки так набивать сидеть?Просто убирает на прочь, без конца, если сделать ровно 100 сделаем не вопрос, это вопрос времени.Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать.Laziz ты на правильном пути, сделай грамотно и покажи видео, главное не торопись Вы ломаете визуальное значение, а это до добра не доводит.Все правильно делаем, или делает, но решение дает результат, а главное результат. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать.Я знаю фишку, но не скажу.На Win7 отл. работает.Просто убирает на прочь, без конца, если сделать ровно 100 сделаем не вопрос, это вопрос времени.Laziz ты на правильном пути, сделай грамотно и покажи видео, главное не торопись Все правильно делаем, или делает, но решение дает результат, а главное результат.Нифига у тебя не работает, ты ломаешь картинку.Если ты так уверен в себе, то продемонстрируй нам на видео как ты будешь играть до 100 очков и победишь.Естественно, в видео должно быть как ты скачивать трейнми с этой темы и ломаешь его. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Естественно, в видео должно быть как ты скачивать трейнми с этой темы и ломаешь его.Пусть новички займутся, я верю то что они сделают на все 100. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Пусть новички займутся, я верю то что они сделают на все 100.Я бы не был в этом так уверен.Я конечно не говорю, что я хороший гейм хакер и т.д., но однако мой взлом закончился фэйлом, хотя я и узнал больше чем вы о структуре данного трейн ми, но взломать не сумел. Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 25 ноября, 2012 Поделиться Опубликовано 25 ноября, 2012 попробую сегодня записать, как найду свободное время =) Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 25 ноября, 2012 Поделиться Опубликовано 25 ноября, 2012 Вот, собственно, и попытка взлома. Здесь предложен самый быстрый вариант решения. Ссылка на видео. Сама таблица: tennistrainme.CT.p.s.: я изменил проверочные условия, а значит все зависит от самого значения очков (а не от наличия единицы в определенном байте). Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 26 ноября, 2012 Поделиться Опубликовано 26 ноября, 2012 Вот, собственно, и попытка взлома. Здесь предложен самый быстрый вариант решения. Ссылка на видео. Сама таблица: tennistrainme.CT.p.s.: я изменил проверочные условия, а значит все зависит от самого значения очков (а не от наличия единицы в определенном байте).Принцип такой же как у меня, т.е зависит от экранного значение. Но Coder против этого, так что Coder сказал бы "Не РАБОТАЕТ".Я бы не был в этом так уверен.Я конечно не говорю, что я хороший гейм хакер и т.д., но однако мой взлом закончился фэйлом, хотя я и узнал больше чем вы о структуре данного трейн ми, но взломать не сумел.У меня есть и другой вариант взлома но нет времени((( Если не опередит SnedS91, то сделаю и покажу.Про структуры знать это хорошо. но эта не был задачей Автора.Будет время сделаю видео на первый вариант (но получиться почти аналогичен с видео SnedS91) Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 26 ноября, 2012 Поделиться Опубликовано 26 ноября, 2012 ну в какой то степени работает, т.к. визуально работает как надо. А если этого мало и нужно делать грамотный взлом, то и на этот случай у меня есть таблица, вечером возможно видео запишу Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 26 ноября, 2012 Автор Поделиться Опубликовано 26 ноября, 2012 Разумеется, нужен грамотный взлом, ибо трейнми пишется с той целью, чтобы прокачать скилл взлома реальных игр. Впрочем, мой подход навряд ли встретится в какой-либо игре, но, как говорится, чем черт не шутит )ЗЫ. Sned91 почти докопался до того, как на самом деле хранится истинное значение. Но еще на очереди пункт, чтобы снять ограничение на 15 очков, и дать возможность набирать больше. Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 26 ноября, 2012 Поделиться Опубликовано 26 ноября, 2012 ограничение я же снял, сначала сделал 20, чтобы показать, а потом 100 вечером выложу более грамотный взлом тогда. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 26 ноября, 2012 Автор Поделиться Опубликовано 26 ноября, 2012 А, я видео еще не смотрел, вечером посмотрю ) Урвал пару минут, посмотрел видео. Подход сделан чисто к визуальной части, это не совсем то, чего я ждал, но работает, да. Меня удивляет другое - по идее, при снятии этого ограничения в силу архитектуры защиты должен быть вылет из трейнми, а его не происходит, надо будет покопать скрипт Sned91. Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 26 ноября, 2012 Поделиться Опубликовано 26 ноября, 2012 Вот способ снятия ограничения в 15 очков: видеоТаблица: tennistrainme_adv.CT 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 26 ноября, 2012 Поделиться Опубликовано 26 ноября, 2012 Вот способ снятия ограничения в 15 очков: видеоТаблица: tennistrainme_adv.CTПревосходная работа!Получаешь плюс) Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 26 ноября, 2012 Автор Поделиться Опубликовано 26 ноября, 2012 Да, оно работает, но, на самом деле, тут есть толика везения - взлом опять делался в визуальной части, и, по прихоти компилятора, вокруг массивов, хранящих значения очков, оказалось достаточно свободного места для манипуляций. На самом же деле, если бы упаковка данных была сделана компилятором так, как задумывалось, то пришлось бы еще искать выделение памяти под массив очков, и его менять. Впрочем, работает, следовательно, SnedS91 получает очередную медальку ) Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 27 ноября, 2012 Поделиться Опубликовано 27 ноября, 2012 Превосходная работа!Получаешь плюс)А ты сомневался, трейнми взломали (почти так как автор хотел.)Круто SnedS91 Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 27 ноября, 2012 Поделиться Опубликовано 27 ноября, 2012 Сначала я делал по такому принципу: выделял свою память и туда перенаправлял массив, пока не нашел участок кода, похоже отвечающий за выделение памяти под массив Ссылка на комментарий Поделиться на другие сайты Поделиться
Laziz Опубликовано 27 ноября, 2012 Поделиться Опубликовано 27 ноября, 2012 Свою идею не смог воплотить из за не достаточного знание ассемблера и ассемблерных команд((( Согласитесь 3,5 месяца учение, только в свободные время, все таки мало. Но с помощью экранного значение все таки взломал). Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 27 ноября, 2012 Автор Поделиться Опубликовано 27 ноября, 2012 В следующей версии трейнми постараюсь еще больше запутать защиту ) Ссылка на комментарий Поделиться на другие сайты Поделиться
SnedS91 Опубликовано 27 ноября, 2012 Поделиться Опубликовано 27 ноября, 2012 Ждём с нетерпением Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 31 июля, 2014 Автор Поделиться Опубликовано 31 июля, 2014 Прошло два года и наконец-то у меня появилось немного времени. Написал новую версию своего трейнми. Хотя, новой версией это назвать нельзя, весь код переписан с нуля и графическая часть реализована на OpenGL, хотя, конечно, необходимости в этом не было ) Так, баловался. Да, игра не заканчивается, просто продолжается постоянно, и комп в качестве второго игрока я еще не добавил. Это все будет в следующей версиииСами значения пока особо спрятать не пытался, так что взлом, скорее всего, будет быстрым. Задания:1. Найти очки игрока 1 и написать иньекцию кода с заморозкой значения2. То же самое, но для второго игрока3. Найти статичный указатель для очков игрока 14. То же самое для второго игрока5. Найти и заморозить координаты ракеток (обеих)6. Изменить размер ракеток на двойной7. Увеличить вдвое размера шарика8. Сделать так, чтобы скорость шарика не увеличивалась с течением времени9. (Сложно) Перекрасить шарик в красный цветИ пока на этом все.ЗЫ. Управление - Escape - выход из трейнми. W/S - ракетка вверх/вниз для первого игрока, P/L - ракетка вверх/вниз для второго игрока. Первые трое, кто успеет выполнить хотя бы пять заданий из всего набора, получат медальки и +10 к репутации. Первый выполнивший 7 и более заданий получит две медали и +30 к репутации. Второй выполнивший 7 и более заданий получит одну медаль и +25 к репутации. Третий выполнивший 7 заданий и более - получит медаль и +20 к репутации. Удачного взлома!TennisTrainme_v2.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения