• Объявления

    • Garik66

      Пользователям форума   05.11.2017

      Прошу обратить внимание на эту тему (чтобы увидеть ссылку, войдите в объявление - нажмите на заголовок):   
holy

TrainMe - Chameleon [Level 2]

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

Здравствуйте :)


Написал относительно простенький TrainMe. Не смотря на его простоту, в нем есть то, с чем новичек сразу не справится :)

 

Задание:

- Найти указатель на значение (не забудьте проверить его, после перезапуска программы) и скинуть CT файл (мне будет интересно взглянуть на найденные вами адреса). Как вы это сделаете, откуда возьмете - не важно, главное чтобы из адресного пространства программы.

 

Скачать

Изменено пользователем holy
0

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


Ссылка на сообщение
Поделиться на других сайтах
1 hour ago, SpiritWithim said:

Не работает:

1. Адрес 77C521F8 находится вне адресного пространства кода.

2. У меня адреса 77C521F8 вообще нет.

0

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


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, holy сказал:

Найти указатель на значение (не забудьте проверить его, после перезапуска программы)

holy, почему именно тебе нужны указатели? 

Я например очень давно их не ищу, изредка, если труднонаходимый фильтр ищу поинтеры 1 (максимум 2 уровня).

 

В табличке куча адресов с указателями (найдены автопоиском СЕ, я не много из них выбрал, их там очень и очень много)

и скрипт  "pointer" с прикреплённым адресом "Value" , активируй скрипт, измени значение в трейнми и в адресе будет

значение (это способ, который я обычно использую). 

 

TrainMe by holy - Chameleon LEVEL 2.CT

Изменено пользователем Garik66
0

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


Ссылка на сообщение
Поделиться на других сайтах
3 minutes ago, Garik66 said:

почему именно тебе нужны указатели? 

Потому-что скрипт написать в разы проще ) В чем тут тогда соревнование? Кто быстрее скачает файл и запустит CE?

Иногда, когда реальное расположение значения невозможно поймать, как например в TrainMe Maze, я не прошу находить адреса, так как в том TrainMe реальное значение бегало по массиву и не имело статичного адреса.

Именно для этого и присутствует пункт "Задание". В данном TrainMe всё просто, главное подумать в нужном направлении, и решив задание, ты не скажешь что оно было странным или глупым )

Поверь, правильный ответ у данного TrainMe действительно очень прост, главное понять код и всё станет ясно :)

 

16 minutes ago, Garik66 said:

В табличке куча адресов с указателями (найдены автопоиском СЕ, я не много из них выбрал, их там очень и очень много)

и скрипт  "pointer" с прикреплённым адресом "Value" , активируй скрипт, измени значение в трейнми и в адресе будет

значение (это способ, который я обычно использую). 

  • К сожалению, ни в одном из указателей не оказалось того значения :(
  • Скрипт работает, но после выключения скрипта и изменения значения в программе - программа крэшится, скорее всего конфликтуют твои имена pointer и Pointer во время DISABLE (отключения) скрипта, изменил имя с Pointer на PointerS и скрипт стал корректно выключаться.
  • Однако если захочешь, то подумай над тем, как узнать реальный адрес :)
0

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


Ссылка на сообщение
Поделиться на других сайтах
24 минуты назад, holy сказал:

Не работает:

1. Адрес 77C521F8 находится вне адресного пространства кода.

2. У меня адреса 77C521F8 вообще нет.

Эт на Win XP указатель

0

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


Ссылка на сообщение
Поделиться на других сайтах
Just now, SpiritWithim said:

Эт на Win XP указатель

Адрес не находится в адресном пространстве программы. Ты нашел не тот адрес.

Да даже если бы ты нашел якобы тот адрес, то адрес работающий только на одной системе это не правильно. Адрес обычно находят в программе, а не в системных библиотеках.

0

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


Ссылка на сообщение
Поделиться на других сайтах
14 минуты назад, holy сказал:
  • К сожалению, ни в одном из указателей не оказалось того значения :(
  • Скрипт работает, но после выключения скрипта и изменения значения в программе - программа крэшится, скорее всего конфликтуют твои имена pointer и Pointer во время DISABLE (отключения) скрипта, изменил имя с Pointer на PointerS и скрипт стал корректно выключаться.
  • Однако если захочешь, то подумай над тем, как узнать реальный адрес :)

Странно у меня всё работает, не вылетает, перекачал ещё раз твою прогу (а то удалил) и записал видео:

 

0

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


Ссылка на сообщение
Поделиться на других сайтах
31 minutes ago, Garik66 said:

Странно у меня всё работает

Выключи скрипт и нажми кнопку Inc value или Dec value. Программа вылетит. У меня так.

Но не в этом суть, это не важно ) У меня Cheat Engine 6.5.1 может по этому.

 

P.S. У тебя наверно какой-то плагин имеется в CE, ибо у тебя Lua Engine ругается. Либо скрипт либо ещё что-то, я не знаю )

0

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


Ссылка на сообщение
Поделиться на других сайтах
28 минуты назад, holy сказал:

Выключи скрипт и нажми кнопку Inc value или Dec value. Программа вылетит. У меня так.

:wacko:Ну да, конечно нужно было переименовать либо pointer, либо Pointer (различия заглавная/не заглавная буква нет).:rolleyes:

Скрипт подправил, перезалил табличку.

0

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


Ссылка на сообщение
Поделиться на других сайтах
31 минуты назад, holy сказал:

ибо у тебя Lua Engine ругается.

Да ругается (об этом писал раньше), но не знаю с чем это связано, у меня СЕ 6.5 (не люблю промежуточные версии).

0

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


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

Не знай как будет работать или нет у других, но Base - 00401344 + 0 + 0  У меня всё работает.

1

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


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, LIRW сказал:

Не знай как будет работать или нет у других, но Base - 00401344 + 0 + 0  У меня всё работает.

Жень, там два таких адреса:

1. Твой

2. [[["TrainMe by holy - Chameleon LEVEL 2.exe"+13A8]+0]+0] или [[[004013a8]+0]+0].

0

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


Ссылка на сообщение
Поделиться на других сайтах
59 минут назад, Garik66 сказал:

Жень, там два таких адреса:

1. Твой

2. [[["TrainMe by holy - Chameleon LEVEL 2.exe"+13A8]+0]+0] или [[[004013a8]+0]+0].

Ну в принципе да Игорь. Я просто не стал второй давать, так как смысл то какой :mellow: и этот рабочий - даже комп перегружал, ну проверить и работало всё.  Адрес ищется за один заход за 5 секунд - прям брык и всё. Было 17 адресов в начале, закрыл программу, перезагрузил и осталось 4.  Два из них оказались какие то странные, очень сомнительные и потом они перестали работать. А вот 2 адреса рабочих.

0

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


Ссылка на сообщение
Поделиться на других сайтах
4 hours ago, LIRW said:

Не знай как будет работать или нет у других, но Base - 00401344 + 0 + 0  У меня всё работает.

Верно! Правильный подход.

 

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

На самом деле существует 3 таких адреса в коде (3 инструкции в которых присутствует адрес):

  1. При инициализации (присвоению значению 100)
  2. При увеличении / уменьшении значения на 10
  3. При освобождении динамически выделенной памяти

Но суть в том, чтобы добавить в таблицу CE адрес на одну из этих инструкций (например):

CPU Disasm
Address   Hex dump             Command                                  Comments
004013A6  |.  8B15 83604000    MOV EDX,DWORD PTR DS:[406083]

И добавить к ним оффсет, например в данном случае 004013A6 + 2 (опкод команды MOV в данном случае занимает 2 байта 0x8B15) и получаем указатель на указатель который указывает на значение.
 

Изменено пользователем holy
1

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


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

Так держать! Будем учиться!

0

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


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

Что это такое

 

 

 

А так pointer

[[["TrainMe by holy - Chameleon LEVEL 2.exe"+00006000]+1ac]+0]       -Win7x64

What.jpg

0

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


Ссылка на сообщение
Поделиться на других сайтах
On 30.08.2016 at 11:39 AM, JIeXA said:

Что это такое

Не знаю :)

Вроде ничем не паковал. А если и пакую, то UPX'ом

0

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


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

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

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

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

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


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

Войти

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


Войти сейчас