Перейти к содержанию

Рекомендуемые сообщения

Вот скрипт 1hit+god. И тут же вопросы.Правильно ли составлен скрипт(Синтаксис)? Может быть написано много лишнего помогите облагородить. Возможно ли в пределах одного скрипта опционально включать-выключать отдельно god и 1hit. Возможно ли потом добавить в этот же скрипт другие функции как(No reload,No recoil и т.д.)

[ENABLE]

aobscan(address0, D9 46 78 8B 86)

alloc(newMem, 2048)

label(returnHere)

registersymbol(address0)

label(1hit)

label(god)

newMem:

cmp [esi+84],0

je god

jne 1hit

jmp returnHere

god:

mov [esi+78],(float)100

fld dword ptr [esi+78]

mov eax,[esi+000000AC]

jmp returnHere

1hit:

mov [esi+78],(float)1

fld dword ptr [esi+78]

mov eax,[esi+000000AC]

jmp returnHere

address0:

jmp newMem

db 90 90 90 90

returnHere:

[DISABLE]

address0:

fld dword ptr [esi+78]

mov eax,[esi+000000AC]

dealloc(newMem)

unregistersymbol(address0)

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


[ENABLE]
aobscan(address0, D9 46 78 8B 86)
alloc(newMem, 2048)
label(returnHere)
registersymbol(address0)
label(1hit)
label(god)
label(godflag)
label(1hitflag)
label(exit)
registersymbol(godflag)
registersymbol(1hitflag)

newMem:
cmp [esi+84],0
je god
jmp 1hit

god:
cmp byte ptr [godflag],1
jne exit
mov [esi+78],(float)100
jmp exit

1hit:
cmp byte ptr [1hitflag],1
jne exit
mov [esi+78],(float)1

exit:
fld dword ptr [esi+78]
mov eax,[esi+000000AC]
jmp returnHere

godflag:
db 00

1hitflag:
db 00

address0:
jmp newMem
db 90 90 90 90
returnHere:
[DISABLE]
address0:
fld dword ptr [esi+78]
mov eax,[esi+000000AC]
dealloc(newMem)
unregistersymbol(godflag)
unregistersymbol(1hitflag)
unregistersymbol(address0)

Затем в самой таблице добавляешь два адреса, в которых прямо пишешь названия меток (для этого и делается регистрация символов godflag и 1hitflag).

Затем по внесению 1 в любой из этих адресов будет сигнализировать скрипту о том, что нужно выполнить свою часть. Скрипт должен быть активирован заранее, разумеется.

И да, байтовая сигнатура слишком мала для поиска. Может найтись много вхождений. Надо взять кусок побольше, хотя бы байт 20

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

Основная сложность в том чтобы сделать 4 возможных варианта в трейнере генерируемом CE

1. Только чит на год мод

2. Только чит на убийство с одного раза

3. Два чита включены

4. Два чита выключены

Обычно на АА скриптах делают 1 активирующий скрипт и два отдельных для каждого чита.

Первый цепляется на хоткей для активации пользователем один раз после подключения трейнера к процессу игры. И автор трейнера просит пользователя один раз нажать какие-то кнопки для активации трейнера.

Второй и третий могут включать и выключаться пользователем во время игры.

Первый скрипт учитывает 4 варанта сравнивания с переменной.

Второй и третий скрипт изменяют состояние переменной.


Есть и вариант через Lua Engine во время аттача к процессу автоматически делать инъекцию. Тогда пользователю не придется это делать самому через хоткей. И не будет риска, что он сделает это повторно.

function onOpenProcess(processid)

// процесс подключен и можно сделать разовую инъекцию кода

end

Есть и более мудреный способ полностью сделать весь трейнер через CE Lua Engine. Начиная от создания формы трейнера и заканчивая назначением горячих клавиш. Поищи примеры на главном сайте по созданию заготовки трейнера. Может быть сложным. Но я настолько привык, что никаких сложностей кроме отладки и проверки не вижу. Но мне лень.

И может быть пригодится самая главная функция инъекции асма кода на CE Lua Engine

autoAssemble(text, targetself OPTIONAL) : runs the auto assembler with the given text. Returns true on success (if targetself is set it will assemble into Cheat Engine itself)

Для неё множество примеров на официальном форуме Cheat Engine

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

  • 1 год спустя...
[ENABLE]aobscan(address0, D9 46 78 8B 86)alloc(newMem, 2048)label(returnHere)registersymbol(address0)label(1hit)label(god)label(godflag)label(1hitflag)label(exit)registersymbol(godflag)registersymbol(1hitflag)newMem:cmp [esi+84],0je godjmp 1hitgod:cmp byte ptr [godflag],1jne exitmov [esi+78],(float)100jmp exit1hit:cmp byte ptr [1hitflag],1jne exitmov [esi+78],(float)1exit:fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHeregodflag:db 001hitflag:db 00address0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(godflag)unregistersymbol(1hitflag)unregistersymbol(address0)
Затем в самой таблице добавляешь два адреса, в которых прямо пишешь названия меток (для этого и делается регистрация символов godflag и 1hitflag).

Затем по внесению 1 в любой из этих адресов будет сигнализировать скрипту о том, что нужно выполнить свою часть. Скрипт должен быть активирован заранее, разумеется.

И да, байтовая сигнатура слишком мала для поиска. Может найтись много вхождений. Надо взять кусок побольше, хотя бы байт 20

 

Скажите пожалуйста, как этот скрипт можно открыть при помощи Cheat Engine? Спасибо!

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

Скажите пожалуйста, как этот скрипт можно открыть при помощи Cheat Engine? Спасибо!

 

Запускаем СЕ,  открываем окно Отладчик  далее Инструменты и Автоассемблер  далее  копи паст и сохранить, вот и всё. 

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

Запускаем СЕ,  открываем окно Отладчик  далее Инструменты и Автоассемблер  далее  копи паст и сохранить, вот и всё. 

Спасибо! Попробую сделать, как сказали) Надеюсь получится)

Всё сделал,  как было сказано выше... Но теперь у меня пишет "Error while scanning AOB"s: address0" 

Простите, что туплю, но я ещё тот взломщик))

Спасибо!

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

Спасибо! Попробую сделать, как сказали) Надеюсь получится)

Всё сделал,  как было сказано выше... Но теперь у меня пишет "Error while scanning AOB"s: address0" 

Простите, что туплю, но я ещё тот взломщик))

Спасибо!

Скорее всего Вы не запустили игру.

Нужно запустить CE, запустить игру, в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ.

После этого должно быть всё нормально. 

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

Скорее всего Вы не запустили игру.

Нужно запустить CE, запустить игру, в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ.

После этого должно быть всё нормально. 

 

"в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ" всё так и сделал ЗАПУСТИЛ "CE" выбрал FEAR.exe. после "открываем окно Отладчик  далее Инструменты и Автоассемблер  далее  копи паст и выролнить" и выскакивает окошко с надписью  "Error while scanning AOB"s: address0" и больше ничего!

Может в скрипте что то надо вписать?

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

"в СЕ выбрать процесс Вашей игры, скопировать скрипт в свою таблицу в СЕ" всё так и сделал ЗАПУСТИЛ "CE" выбрал FEAR.exe. после "открываем окно Отладчик  далее Инструменты и Автоассемблер  далее  копи паст и выролнить" и выскакивает окошко с надписью  "Error while scanning AOB"s: address0" и больше ничего!

Может в скрипте что то надо вписать?

 

Тогда да. В скрипте, видно что сигнатура (aobscan(address0, D9 46 78 8B 86)) набрана вручную. У Вас скорее всего не сходятся версии игры.

 

Нужно либо скачать туже версию игры, либо попросить 

lamalamaz

 В личных сообщениях прислать адрес инструкции.(будет выглядеть, типа так (FEAR.exe+36E4E0)

В скрипте удалить строчку Аобскана "(aobscan(address0, D9 46 78 8B 86)" и заменить все строки "address0:" на полученный адрес "FEAR.exe+36E4E0:"

 

Либо, что ещё сложнее, поискать сами инструкции в игре, эти

(fld dword ptr [esi+78]

mov eax,[esi+000000AC]).

Ещё вариант (если в версиях отличаются только регистры в инструкциях), попробуйте 

 

Вариант 1:

Замените 

(aobscan(address0, D9 46 78 8B 86)

на

(aobscan(address0, D9 xx xx 8B xx AC 00 00 00)

 

 Вариант 2:

на

(aobscan(address0, D9 xx xx 8B xx xx xx xx xx)

Может что-то сработает

 

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

Тогда да. В скрипте, видно что сигнатура (aobscan(address0, D9 46 78 8B 86)) набрана вручную. У Вас скорее всего не сходятся версии игры.

 

Нужно либо скачать туже версию игры, либо попросить 

lamalamaz

 В личных сообщениях прислать адрес инструкции.(будет выглядеть, типа так (FEAR.exe+36E4E0)

В скрипте удалить строчку Аобскана "(aobscan(address0, D9 46 78 8B 86)" и заменить все строки "address0:" на полученный адрес "FEAR.exe+36E4E0:"

 

Либо, что ещё сложнее, поискать сами инструкции в игре, эти

(fld dword ptr [esi+78]

mov eax,[esi+000000AC]).

Ещё вариант (если в версиях отличаются только регистры в инструкциях), попробуйте 

 

Вариант 1:

Замените 

(aobscan(address0, D9 46 78 8B 86)

на

(aobscan(address0, D9 xx xx 8B xx AC 00 00 00)

 

 Вариант 2:

на

(aobscan(address0, D9 xx xx 8B xx xx xx xx xx)

Может что-то сработает

 

Спасибо за совет, обязательно попробую сделать! Конечно тёмный лес, но буду стараться)

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

  Yuriko33 игры у меня нет. Если инструкции и ID героя в скрипте найдены правильно, то по идее  всё должно работать. Попробуй так:

[ENABLE]aobscan(address0, D9 xx xx 8B xx xx xx xx xx)alloc(newMem, 512)label(returnHere)registersymbol(address0)label(hit)label(god)newMem:cmp [esi+84],0je godjne hitgod:mov [esi+78],(float)100fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHerehit:mov [esi+78],(float)0fld dword ptr [esi+78]mov eax,[esi+000000AC]jmp returnHereaddress0:jmp newMemdb 90 90 90 90returnHere:[DISABLE]address0:fld dword ptr [esi+78]mov eax,[esi+000000AC]dealloc(newMem)unregistersymbol(address0)  
Изменено пользователем garik66
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.