• Объявления

    • Garik66

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

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

Cheat Engine. Общие вопросы по работе с программой

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

Ночки доброй. Подскажите пожалуйста какие-либо интересные адреса на эту тему . Немогу найти ничего стоящего.

0

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


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

При загрузке русской версии выводит ucc12.dll was not found.Где взять эту библиотеку.

0

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


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

Ничего не нужно, просто нажми ОК и все.

0

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


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

Но после инъекции чит не срабатывает

0

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


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

При загрузке русской версии выводит ucc12.dll was not found.Где взять эту библиотеку.

ucc12.rar

0

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


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

Спасибо.

0

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


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

Доброго времени суток!

Решил немного побаловаться с Cheat Engine и Crysis 2. Поскольку я новичок в этом деле, то решил начать с простого, найти и заморозить энергию костюма. Нашел четыре адреса и поставил заморозить, однако в игре это не произвело никакого эффекта. Через ArtMoney замораживается нормально. Возник вопрос, что я не так делаю? Или это из-за того что у меня Win7 64? :blink:

P.S. Если ошибся топиком, прошу простить.

0

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


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

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

0

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


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

Уважаемые программисты, вы не могли бы подсказать для чего в СЕ кнопочка unrandomizer?

0

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


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

Уважаемые программисты, вы не могли бы подсказать для чего в СЕ кнопочка unrandomizer?

The unrandomizer is a feature designed to replace certain routines commonly used in games to produce random values. At a very simple level then, for an example, there may be a game that uses a randomizer routine to decide on a player's turn. Enabling the unrandomizer would then cause CE to try and stop this random occurrence, and try to fix the outcome (for example to force a particular players turn).

The unrandomizer won't work in all cases. It will only handle routines that it knows about. In most cases and for most users, this will not be used, as it's more of an advanced/experimental feature.

0

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


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

А, я понял для чего эта функция. Она ищет в коде процесса игры функции которые что-то генерируют "случайное". Ну например, из колоды в пять карт берётся рандом от 1 до 5. Так вот выключив рандом будет например всегда браться первая карта, ну или что-то в этом роде.

0

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


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

Уважаемые программисты, вы не могли бы подсказать для чего в СЕ кнопочка unrandomizer?

Проверил опцию на игре Neverwinter Nights 2. Как известно при взломе замков, обезвреживании ловушек к соответсвующему навыку добавляется случайное число от 1 до 20 (к сожалению этот интервал жёстко задан в движке игры и увеличить анрандомайзером его не выйдет, а жаль). Ставим в опциях анрандомайзера (в настройках CE) число 19, к примеру, ставим галку и вуаля - к нашему навыку будет постоянно добавляться "случайное" число-константа 20! Очень-очень жаль, что больше 20 в этой игре не выставить... а то можно было бы и не качаться и не тратить время на поиск умений)

0

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


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

Можно ли как то представить Auto Assamblerовский код ввиде набора hex вставок ? В TSearch была такая удобная подпрограмма EASYWRITE INTERPRETER называлась, по нажатию "Tmk" асм код представал в виде hex значений вроде Poke _Адрес_ FF FF FF FF FF FF...

Но так как прога старая, на некоторые типы опкодов она реагирует неадекватно и пишет unknown identifer например на movsd xmm0,[esi+000000D0]

Так вот можно ли подобное реализовать в CE для дальнейшего использования в трейнере

Вот например один скрипт из моей таблицы ("One Hit Kill" для Mafia 2 патч 3), который TSearch не "проглотил" ,


[ENABLE]
alloc(allpedsp,2048)
label(returnhere)
label(originalcode)
label(exit)
label(ggpoint)
label(returnhere2)
label(originalcode2)
label(exit2)
label(Health)
registersymbol(Health)
allpedsp:
push eax
mov eax, [Health]
cmp eax,ebp
pop eax
je originalcode
mov [ebp+000000D0],0
originalcode:
comiss xmm0,[ebp+000000D0]
exit:
jmp returnhere
ggpoint:
mov [Health],esi
originalcode2:
movsd xmm0,[esi+000000D0]
exit2:
jmp returnhere2

Health:
dd 0

"mafia2.exe"+591133:
jmp allpedsp
nop
nop
returnhere:

"mafia2.exe"+7307E4:
jmp ggpoint
nop
nop
nop
returnhere2:


[DISABLE]
dealloc(ggpoint)
"mafia2.exe"+7307E4:
movsd xmm0,[esi+000000D0]
dealloc(allpedsp)
"mafia2.exe"+591133:
comiss xmm0,[ebp+000000D0]
unregistersymbol(Health)

Без синтаксиса CE этот код выглядел бы примерно так


mov [00400019],esi
movsd xmm0,[esi+000000D0]
nop
nop
nop
nop
nop
nop

offset 00991133 ; Функция работает со здоровьем всех педов
jmp 00400019

offset 00400019 ; code cave
dd 0
push eax
mov eax, [00400019]
cmp eax,ebp
pop eax
je originalcode
mov [ebp+000000D0],0
originalcode:
comiss xmm0,[ebp+000000D0]
jmp 00991133
offset 00B307E4 ; Функция работает только со здоровьем ГГ

В ручную искать в дизасемблеровом просмоторщике не очень хочется.

Да и вообще как сейчас трейнероделы поступают? :)

0

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


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

Этот вопрос поднимал SER[G]ANT на форуме CE. Ответ - "только вручную"! Придётся перейти в дизассемблер (и не раз переходить по разным адресам) выделить инструкции и нажать на CTRL+C. Вылезет окно с выбором что копировать (отдельно или вместе): адреса, байты, инструкции.

Если интересно моё мнение, то можно пояснить почему лучше так не делать (т.е. копировать вручную байты и использовать их далее). Даже если бы и выводились байты как у TMK чтобы написать свой трейнер например на C++, то всё это в итоге занимает лишнее время, т.к. удобнее использовать скрипты CE и сам CE. К этому выводу судя по всему пришёл SER[G]ANT и я считаю что он пришёл к удобному решению несмотря на такие недостатки как размер генерируемого трейнера в ~800кб (и более) на версиях до CE 6.0. Для человека, который уже писал кучу трейнеров на Дельфи/С++/MASM/FASM... в первую очередь важно удобство и приемлемая скорость работы его программы. CE позволяет работать только с кодом инъекции описанной на скриптах. Это очень удобно. Наверно, я уже навязываю это "удобство", так что я более этого делать не буду.

0

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


Ссылка на сообщение
Поделиться на других сайтах
на версиях до CE 6.0
я как раз с 6 работаю и до этого CE в глаза не видел, не знал что в нем компилятор есть О_о. В 6 же вроде нет. По чему то ведь от него решили отказаться, значит какие то подводные камни все таки есть с ним.

На счет дизасемблера, вроде как можно автоматизировать т.к. в CE работает LUA , в мануале есть функции но не ясно что делает та или иная ф-ция

например пишу

t=readBytes(0x00B307E4,10)

showMessage(t)

выводит 242 что эквиваленто тому если бы я в таблицы указал тип данных для поля просто byte , хотя вроде как вторая переменная 10 означает кол-во байт т.е. Array of Bytes , но от изменения этого числа ничего не изменяется

, хотя если напрямую через таблицу в type указать соответственно Array of Bytes выведет как надо E9 3C F8 79 04 90 90 90 EB 08 . Вообщем надо читать, но на первый взгляд того что надо нет

0

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


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

я как раз с 6 работаю и до этого CE в глаза не видел, не знал что в нем компилятор есть О_о. В 6 же вроде нет. По чему то ведь от него решили отказаться, значит какие то подводные камни все таки есть с ним.

От него Дарк Байт отказался лишь в силу того что CE портировался на новый компилятора free Pascal. Я не знаю какие там проблемы были - скорее нужен был срочный реализ на Январь, а трейнерогенератор подключить не успели. Сейчас у нас на форуме "Реализи CE" доступны ссылки на альфа версии CE 6.1( там есть даже IDE для трейнера). Трейнер может быть как привязкой к CE 6.1 так и работать автономно, т.е. "exe файл". Но его размер будет около 3 мегабайт. Почему такой размер большой можно догадаться... Поэтому я агетирую пользоваться файлами скриптами, а не автономными трейнерами. Это наиболее простой вариант. Есть ещё один вариант - мой C# в связке с C++ (лаучнер.exe, dll-модуль внедряемый в игру из БД модулей, модуль функций). Каждый модуль из БД модулей написан на C++ специально для каждой игры содержит файлы ресурсов и собственный код. Да, но в этом случае придётся писать свой ассемблер/дизассемблер для ~70 распространённых инструкций ассемблера. Короче вариант с CE самый лучший для меня в плане затрат труда и времени.

На счет дизасемблера, вроде как можно автоматизировать т.к. в CE работает LUA , в мануале есть функции но не ясно что делает та или иная ф-ция

например пишу

t=readBytes(0x00B307E4,10)

showMessage(t)

выводит 242 что эквиваленто тому если бы я в таблицы указал тип данных для поля просто byte , хотя вроде как вторая переменная 10 означает кол-во байт т.е. Array of Bytes , но от изменения этого числа ничего не изменяется

, хотя если напрямую через таблицу в type указать соответственно Array of Bytes выведет как надо E9 3C F8 79 04 90 90 90 EB 08 . Вообщем надо читать, но на первый взгляд того что надо нет

t=readBytes(0x00B307E4,10) в этом примере выведет только один байт. Если надо больше, то можно добавлять переменные до равенства

b1 b2 b3 b4 b5 b6 =readBytes(0x00B307E4,10)

Теперь можно работать с отдельными байтами. Если тебе нужно работать с массивом байт просто используй цикл и чтение в промежутке адресов памяти.

CE 6.1 Альфа 8 содержит новые LUA функции и исправления, так что лучше пользоваться ей и сравнивать с предыдущими версиям. На какой версии лучше генерировать трейнеры пока не знаю. Но раньше мы это делали без LUA поддержки на версии CE 5.6. Это делать весьма просто. Если требуется у нас на главном сайте есть русская версия CE 5.6 которую нужно поставить поверх английской. На форуме куча примеров от наших пользователей по скриптам автоассемблера.

А вот когда реализ CE 6.1 появится тогда можно будет насладится новыми возможностями LUA поддержки и публиковать скрипты запечатнные в файле .ct.

0

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


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

подскажите пожалуйста как и где в Cheat Engine написать скрипт и сделать трейнер. ПОМОГИТЕ

0

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


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

Я уже давал эти ссылки

Про создание трейнера с вставкой скрипта автоассемблера (видео)

Про автоассемблер (читать для дальнейших экспериментов)

Там написано и про то как сделать трейнер, куда вставлять скрипты и как писать скрипты в автоассемблере.

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

Напомню, что если читы делаются для себя, то можно обойтись только скриптами.

Если нужно делать трейнер, то лучше скачать версию CE 5.6 сайта Cheat Engine. Если нужна русская модернизированная версия, то скачать её с нашего главного сайта и установить поверх английской.

0

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


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

я нашёл через Cheat Engine 1 адрес, а где находится брекпоинт.

0

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


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

Брейкпоинт "не может где-то находится". Брейкпоинт ставят на адрес. Затем открывается окно прервавшихся инструкций. Т.е. в этом окне будут отображаться инструкции которые работают с адресом.

0

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


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

Извините MasterGH. на адресе я вызвал меню правым кликом мыши и что дальше выбирать не знаю, я решил делать трейнер автоассемблерными скриптами.

0

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


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

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


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

Большое вам спасибо SER[G]ANT теперь понял.

0

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


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

MasterGH я прочитал про вашу статью про про автоассемблер. Я всё сделал как написано, но в окне memory viewer в нижней части зелёными цифрами везде нули и в auto assemble code injection

[ENABLE]

//code from here to '[DISABLE]' will be used to enable the cheat

alloc(newmem,2048) //2kb should be enough

label(returnhere)

label(originalcode)

label(exit)

0075C129:

jmp newmem

returnhere:

newmem: //this is allocated memory, you have read,write,execute access

//place your code here

originalcode:

sub [esi+edi*2+3c],bx

exit:

jmp returnhere

[DISABLE]

//code from here till the end of the code will be used to disable the cheat

dealloc(newmem)

0075C129:

sub [esi+edi*2+3c],bx

//Alt: db 66 29 5C 7E 3C

Не пойму почему не получилось

0

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


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

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

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

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

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


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

Войти

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


Войти сейчас