61 сообщение в этой теме

Адреса вроде статические.

Вот адрес на 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)99
jne tennistrainme.exe+1E87
mov byte ptr [eax+ecx],01
cmp eax,0F
jnge tennistrainme.exe+1FB1
jmp returnHere
tennistrainme.exe+1FB8:
jmp newMem
returnHere:
[DISABLE]
tennistrainme.exe+1FB8:
cmp eax,0F
jnge tennistrainme.exe+1FB1
dealloc(newMem)

Что бы P2-Scores до 99


[ENABLE]
alloc(newMem, 2048)
label(returnHere)
newMem:
cmp [tennistrainme.exe+6484],(float)99
jne tennistrainme.exe+1E87
mov byte ptr [eax+ecx],01
cmp eax,0F
jnge tennistrainme.exe+1E75
jmp returnHere
tennistrainme.exe+1E7C:
jmp newMem
returnHere:
[DISABLE]
tennistrainme.exe+1E7C:
cmp eax,0F
jnge tennistrainme.exe+1E75
dealloc(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,eax
fstp dword ptr [tennistrainme.exe+6480]
exit:
jmp returnhere
"tennistrainme.exe"+1E5E:
jmp newmem
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
returnhere:

[DISABLE]
dealloc(newmem)
"tennistrainme.exe"+1E5E:
fld dword ptr [tennistrainme.exe+6484]
mov ecx,[esi+04]
fadd qword ptr [tennistrainme.exe+4428]
xor eax,eax
fstp dword ptr [tennistrainme.exe+6484]

Все условии сделаны (не смотря что все статические), кроме видео. Видео делать я не умею... уж извините) да и с временем туго.

Эти адреса на экранные значение, а реальные значение только 15, т.е. подсчет идет ка кто по другому.

(попробую объяснит: Когда считает, игра проверяет пятнадцать 8 битных значении, расположенных подряд друг за другом на 0 или 1. Изначально все нули. Когда первый раз выигрывает, первый байт переводит на "один", второй раз выигрывает, второй байт... и так дале. Последний байт самый важный.

Я попробовал отключить подсчет и связал его с экранным значением... вроде получилось (скрипт на верху). Правда в конце один баг заметил, но исправить нету сил. спать хочется)

Вообще ни один скрипт не работает.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще ни один скрипт не работает.

Работает у Laziz_а скрипт, может не тот трейнми(старую версию скачал :D ) скачал?

Скрипт чтоб убрать ограничение 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

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Coder может еще от виндовса зависит. Скрипты делал на ХР, хотя Я только что проверил на вин8 х64, тоже робит.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Работает у Laziz_а скрипт, может не тот трейнми(старую версию скачал :D ) скачал?

Скрипт чтоб убрать ограничение 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

Не работает.

Вы ломаете визуальное значение, а это до добра не доводит.

Ты сказал убирает ограничение, и до скольки так набивать сидеть?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Coder может еще от виндовса зависит. Скрипты делал на ХР, хотя Я только что проверил на вин8 х64, тоже робит.

На Win7 отл. работает.

Ты сказал убирает ограничение, и до скольки так набивать сидеть?

Просто убирает на прочь, без конца, если сделать ровно 100 сделаем не вопрос, это вопрос времени.

Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать.

Laziz ты на правильном пути, сделай грамотно и покажи видео, главное не торопись :)

Вы ломаете визуальное значение, а это до добра не доводит.

Все правильно делаем, или делает, но решение дает результат, а главное результат.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Coder а как ты бы ломал? Покажешь скрипт или скажи теорию как надо ломать.

Я знаю фишку, но не скажу.

На Win7 отл. работает.

Просто убирает на прочь, без конца, если сделать ровно 100 сделаем не вопрос, это вопрос времени.

Laziz ты на правильном пути, сделай грамотно и покажи видео, главное не торопись :)

Все правильно делаем, или делает, но решение дает результат, а главное результат.

Нифига у тебя не работает, ты ломаешь картинку.

Если ты так уверен в себе, то продемонстрируй нам на видео как ты будешь играть до 100 очков и победишь.

Естественно, в видео должно быть как ты скачивать трейнми с этой темы и ломаешь его.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Естественно, в видео должно быть как ты скачивать трейнми с этой темы и ломаешь его.

Пусть новички займутся, я верю то что они сделают на все 100.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пусть новички займутся, я верю то что они сделают на все 100.

Я бы не был в этом так уверен.

Я конечно не говорю, что я хороший гейм хакер и т.д., но однако мой взлом закончился фэйлом, хотя я и узнал больше чем вы о структуре данного трейн ми, но взломать не сумел.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробую сегодня записать, как найду свободное время =)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот, собственно, и попытка взлома. Здесь предложен самый быстрый вариант решения.

Ссылка на видео.

Сама таблица: tennistrainme.CT.

p.s.: я изменил проверочные условия, а значит все зависит от самого значения очков (а не от наличия единицы в определенном байте).

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот, собственно, и попытка взлома. Здесь предложен самый быстрый вариант решения.

Ссылка на видео.

Сама таблица: tennistrainme.CT.

p.s.: я изменил проверочные условия, а значит все зависит от самого значения очков (а не от наличия единицы в определенном байте).

Принцип такой же как у меня, т.е зависит от экранного значение. Но Coder против этого, так что Coder сказал бы "Не РАБОТАЕТ".

Я бы не был в этом так уверен.

Я конечно не говорю, что я хороший гейм хакер и т.д., но однако мой взлом закончился фэйлом, хотя я и узнал больше чем вы о структуре данного трейн ми, но взломать не сумел.

У меня есть и другой вариант взлома но нет времени((( Если не опередит SnedS91, то сделаю и покажу.

Про структуры знать это хорошо. но эта не был задачей Автора.

Будет время сделаю видео на первый вариант (но получиться почти аналогичен с видео SnedS91)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну в какой то степени работает, т.к. визуально работает как надо. А если этого мало и нужно делать грамотный взлом, то и на этот случай у меня есть таблица, вечером возможно видео запишу :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Разумеется, нужен грамотный взлом, ибо трейнми пишется с той целью, чтобы прокачать скилл взлома реальных игр. Впрочем, мой подход навряд ли встретится в какой-либо игре, но, как говорится, чем черт не шутит )

ЗЫ. Sned91 почти докопался до того, как на самом деле хранится истинное значение. Но еще на очереди пункт, чтобы снять ограничение на 15 очков, и дать возможность набирать больше.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ограничение я же снял, сначала сделал 20, чтобы показать, а потом 100 :) вечером выложу более грамотный взлом тогда.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А, я видео еще не смотрел, вечером посмотрю )

Урвал пару минут, посмотрел видео. Подход сделан чисто к визуальной части, это не совсем то, чего я ждал, но работает, да. Меня удивляет другое - по идее, при снятии этого ограничения в силу архитектуры защиты должен быть вылет из трейнми, а его не происходит, надо будет покопать скрипт Sned91.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот способ снятия ограничения в 15 очков: видео

Таблица: tennistrainme_adv.CT

Превосходная работа!

Получаешь плюс)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, оно работает, но, на самом деле, тут есть толика везения - взлом опять делался в визуальной части, и, по прихоти компилятора, вокруг массивов, хранящих значения очков, оказалось достаточно свободного места для манипуляций. На самом же деле, если бы упаковка данных была сделана компилятором так, как задумывалось, то пришлось бы еще искать выделение памяти под массив очков, и его менять. Впрочем, работает, следовательно, SnedS91 получает очередную медальку )

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Превосходная работа!

Получаешь плюс)

А ты сомневался, трейнми взломали (почти так как автор хотел.)

Круто SnedS91

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сначала я делал по такому принципу: выделял свою память и туда перенаправлял массив, пока не нашел участок кода, похоже отвечающий за выделение памяти под массив :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Свою идею не смог воплотить из за не достаточного знание ассемблера и ассемблерных команд((( Согласитесь 3,5 месяца учение, только в свободные время, все таки мало. Но с помощью экранного значение все таки взломал).

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В следующей версии трейнми постараюсь еще больше запутать защиту )

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ждём с нетерпением :)

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прошло два года и наконец-то у меня появилось немного времени. Написал новую версию своего трейнми. Хотя, новой версией это назвать нельзя, весь код переписан с нуля и графическая часть реализована на OpenGL, хотя, конечно, необходимости в этом не было ) Так, баловался. Да, игра не заканчивается, просто продолжается постоянно, и комп в качестве второго игрока я еще не добавил. Это все будет в следующей версиии

Сами значения пока особо спрятать не пытался, так что взлом, скорее всего, будет быстрым. Задания:

1. Найти очки игрока 1 и написать иньекцию кода с заморозкой значения

2. То же самое, но для второго игрока

3. Найти статичный указатель для очков игрока 1

4. То же самое для второго игрока

5. Найти и заморозить координаты ракеток (обеих)

6. Изменить размер ракеток на двойной

7. Увеличить вдвое размера шарика

8. Сделать так, чтобы скорость шарика не увеличивалась с течением времени

9. (Сложно) Перекрасить шарик в красный цвет

И пока на этом все.

ЗЫ. Управление - Escape - выход из трейнми. W/S - ракетка вверх/вниз для первого игрока, P/L - ракетка вверх/вниз для второго игрока. Первые трое, кто успеет выполнить хотя бы пять заданий из всего набора, получат медальки и +10 к репутации. Первый выполнивший 7 и более заданий получит две медали и +30 к репутации. Второй выполнивший 7 и более заданий получит одну медаль и +25 к репутации. Третий выполнивший 7 заданий и более - получит медаль и +20 к репутации. Удачного взлома!

TennisTrainme_v2.rar

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас