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

Авто отключения скрипта AA Cheat Engine

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

Скрипт:

Спойлер

{ Game   : Tutorial-i386.exe
  Version: 
  Date   : 2018-03-27
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
{$LUA}
memrec=getAddressList().getMemoryRecordByID("1")
memrec.color = 0x0008000
PlaySound(findTableFile([[Activate]]))
timer = createTimer(true)
timer:setInterval(100)
timer.OnTimer = function()
  sleep "10000"
  if memoryrecord_isActive(memrec) then
    memoryrecord_unfreeze(memrec)
    memrec.color = 0x00000ff
    PlaySound(findTableFile([[Deactivate]]))
  end
end

{$ASM}
aobscanmodule(INJECT,Tutorial-i386.exe,81 BB 80 04 00 00 E8 03 00 00) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(INJECT)

newmem:

code:
  cmp [ebx+00000480],000003E8
  jmp return

INJECT:
  jmp newmem
  db 90 90 90 90 90
return:

[DISABLE]
{$LUA}
timer:setEnabled(false)

{$ASM}
INJECT:
  db 81 BB 80 04 00 00 E8 03 00 00

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "Tutorial-i386.exe"+23AC3

"Tutorial-i386.exe"+23AB1: E8 0A 9D FE FF                 -  call Tutorial-i386.exe+D7C0
"Tutorial-i386.exe"+23AB6: 5E                             -  pop esi
"Tutorial-i386.exe"+23AB7: 5B                             -  pop ebx
"Tutorial-i386.exe"+23AB8: C9                             -  leave 
"Tutorial-i386.exe"+23AB9: C3                             -  ret 
"Tutorial-i386.exe"+23ABA: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23ABC: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23ABE: 00 00                          -  add [eax],al
"Tutorial-i386.exe"+23AC0: 53                             -  push ebx
"Tutorial-i386.exe"+23AC1: 89 C3                          -  mov ebx,eax
// ---------- INJECTING HERE ----------
"Tutorial-i386.exe"+23AC3: 81 BB 80 04 00 00 E8 03 00 00  -  cmp [ebx+00000480],000003E8
// ---------- DONE INJECTING  ----------
"Tutorial-i386.exe"+23ACD: 75 2C                          -  jne Tutorial-i386.exe+23AFB
"Tutorial-i386.exe"+23ACF: 8B 83 68 04 00 00              -  mov eax,[ebx+00000468]
"Tutorial-i386.exe"+23AD5: B2 01                          -  mov dl,01
"Tutorial-i386.exe"+23AD7: 8B 8B 68 04 00 00              -  mov ecx,[ebx+00000468]
"Tutorial-i386.exe"+23ADD: 8B 09                          -  mov ecx,[ecx]
"Tutorial-i386.exe"+23ADF: FF 91 20 02 00 00              -  call dword ptr [ecx+00000220]
"Tutorial-i386.exe"+23AE5: 8B 83 78 04 00 00              -  mov eax,[ebx+00000478]
"Tutorial-i386.exe"+23AEB: B2 00                          -  mov dl,00
"Tutorial-i386.exe"+23AED: 8B 8B 78 04 00 00              -  mov ecx,[ebx+00000478]
"Tutorial-i386.exe"+23AF3: 8B 09                          -  mov ecx,[ecx]
}

 

Видео:

Табличка:

For_Badger.CT

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


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

 sleep "10000" а это как я понимаю задаёться время отключения?

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

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


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

У меня не включается, что там не правильно? Или единицу не надо было переименовывать на 22. У меня чит 22 по счёту с верху. Вот мой, а точнее ваш скрипт, с моей редакцией.

Спойлер

[ENABLE]
{$LUA}
memrec=getAddressList().getMemoryRecordByID("22")
memrec.color = 0x0008000
PlaySound(findTableFile([[Activate]]))
timer = createTimer(true)
timer:setInterval(10)
timer.OnTimer = function()
  sleep "1000"
  if memoryrecord_isActive(memrec) then
    memoryrecord_unfreeze(memrec)
    memrec.color = 0x00000ff
    PlaySound(findTableFile([[Deactivate]]))
  end
end

aobscanmodule(GolkaOtkr,larry.exe,89 51 0C C2 04 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
newmem:
mov edx,1
code:
mov [ecx+0C],edx
ret 0004
jmp return
GolkaOtkr:
jmp newmem
nop
return:
registersymbol(GolkaOtkr)

[DISABLE]
{$LUA}
timer:setEnabled(false)
GolkaOtkr:
db 89 51 0C C2 04 00

unregistersymbol(GolkaOtkr)
dealloc(newmem)

 

 

Изменено пользователем Pitronic
Исправление грамматических ошибок

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


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

Какую тему интересную снекропостили 😁
@Garik66 , ты написал рабочий скрипт, но он очень сложный как мне кажется, и вот тут например

В 27.03.2018 в 09:43, Garik66 сказал:

timer:setEnabled(false)

таймер не уничтожается, а просто выключается, то есть как элемент он остаётся и занимает место, потому лучше писать timer.destroy(), и для других элементов в CE тоже, если нужно выключить не включая 😊
 

47 минут назад, Pitronic сказал:

У меня не включается


Попробуй вот такую вставку, вставлять можно в любое место в asm скрипте в разделе [ENABLE], всё прокомментировано

Спойлер

{$lua}
memrec = getAddressList().getMemoryRecordByDescription("AA") --поиск по имени скрипта
timer = createTimer(nil, false) --создание выключенного таймера
timer.Interval = 2000 --Время, в милисекундах до отключения
timer.OnTimer = unf --функция исполняемая таймером
timer.Enabled = true --включение таймера

function unf(timer)
 memoryrecord_unfreeze(memrec) --отключение скрипта
 timer.destroy() --уничтожение таймера
end
{$asm}

 

 

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

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


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

Попробуй вот такую вставку

Ошибка там какая та, заснял на видео,

Спойлер

 

 

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

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


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

поиск по имени скрипта

Кажется понял мою ошибку в этом месте надо было вписать имя из таблицы? Или как? В самом начале видео видно, выскакивает ошибка которая указывает именно на эту строчку. А если нет то какое имя там писать.

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

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


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

Кажется понял мою ошибку в этом месте надо было вписать имя из таблицы?

Да, все верно, нужно было вписать имя из таблицы.

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


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

странно теперь опять выдаёт ошибку но теперь я скопировал там имя из таблици, вот скрипт

Спойлер

[ENABLE]
{$lua}
memrec = getAddressList().getMemoryRecordByDescription("Cash") --поиск по имени скрипта
timer = createTimer(nil, false) --создание выключенного таймера
timer.Interval = 2000 --Время, в милисекундах до отключения
timer.OnTimer = unf --функция исполняемая таймером
timer.Enabled = true --включение таймера

function unf(timer)
 memoryrecord_unfreeze(memrec) --отключение скрипта
 timer.destroy() --уничтожение таймера
end
{$asm}
aobscanmodule(Cash,larry.exe,89 51 0C C2 04 00) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
newmem:
mov edx,1
code:
mov [ecx+0C],edx
ret 0004
jmp return
GolkaOtkr:
jmp newmem
nop
return:
registersymbol(Cash)

[DISABLE]

GolkaOtkr:
db 89 51 0C C2 04 00

unregistersymbol(Cash)
dealloc(newmem)

 

Cash у меня и переменная в скрипте и описание в таблице но во второй строке какую указывается в ошибке надпись, {$lua} первый раз добавился без проблем а имя поменял добавляться отказывается, вот скриншот,

Спойлер

OSIBKA-V-STROKE-2.jpg

 

Изменено пользователем Pitronic
Исправление грамматических ошибок

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


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

Спасибо всем, проблема решилась, Проблема заключалось в том что таблицу я делал на 7 версии, а после переустьановки винды установил 6.7 установил седьмую версию перестало выдавать ошибки, наверное еслиб я делал таблицу на более ранних версиях ошибки не было бы сейчас. скрипт работает идеально.

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


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

memrec=getAddressList().getMemoryRecordByID("22")

 

В CE 6.7 Можно не искать "memrec" по "ID". memrec  — это ключевое слово в AA скриптах, которое может возвращать nil.

Просто memrec с проверкой на nil:

Спойлер

[ENABLE]
{$lua}
if memrec ~= nil then
   print(memrec.Description)
   memrec.color = 0x0008000
end

{$asm}
[DISABLE]

 

 

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


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

Извените что опять в эту тему возращяюсь, Подскажите как убрать это окно? Чтоб не открывалось. У меня изза этого окна игра сворачивается.

Спойлер

nkerp0P.png

 

Изменено пользователем Pitronic
исправление грам ошибок

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


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

Извените что опять в эту тему возращяюсь, Подскажите как убрать это окно? Чтоб не открывалось. У меня изза этого окна игра сворачивается.

Выложи скрипт из-за которого окно открывается.

 

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


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

Выложи скрипт

Вот

Спойлер

[ENABLE]
{$lua}
memrec = getAddressList().getMemoryRecordByDescription("Переместится по координатам из слота 1") --поиск по имени скрипта
timer = createTimer(nil, false) --создание выключенного таймера
timer.Interval = 2000 --Время, в милисекундах до отключения
timer.OnTimer = unf --функция исполняемая таймером
timer.Enabled = true --включение таймера

function unf(timer)
 memoryrecord_unfreeze(memrec) --отключение скрипта
 timer.destroy() --уничтожение таймера
end
{$asm}
_slot_01_coord_x_:
dd 1
[DISABLE]

_slot_01_coord_x_:
dd 0

 

 

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


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

Переместится по координатам из слота 1

попробуй:

переименовать скрипт латиницей
либо юзай .getMemoryRecordByID

В 23.03.2020 в 00:57, Pitronic сказал:

У меня не включается, что там не правильно? Или единицу не надо было переименовывать на 22. У меня чит 22 по счёту с верху.

ID строки (скрипта) в таблице определяется не расположением сверху :)))
У меня было видео. посвященное этому (искать его не буду - не помню)
Воспользуйся этим скриптом 

Спойлер

function onMemRecPreExecute(memoryrecord, newstate)
print(memoryrecord.Description)
print(memoryrecord.ID)
print(memoryrecord.Index)
end

 

вставь его в lua окно 

Спойлер

image.thumb.png.5c0903fc4acb34cccb082e6f4e9cacd7.png

нажми "выполнить"
активируй скрипт, id которого хочешь узнать и вуаля:

Спойлер

image.thumb.png.2c6e570a8cea23b6b18968b39f5bd838.png


 

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


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

, Подскажите как убрать это окно?

ЗЫ:
но скорее всего, ты бездумно воспользовался скриптом MasterGH из этого сообщения:

И он у тебя и вызывает окно Lua.
В этом случае отключи его (этот скрипт)

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


Ссылка на сообщение
Поделиться на другие сайты
В 23.03.2020 в 00:57, Pitronic сказал:

У меня не включается, что там не правильно?

Так подожди, а само видео ты посмотрел, в теме которого ты пишешь?
я же там все рассказываю

 

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


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

И он у тебя и вызывает окно Lua.

понял попробую твои варианты

 

1 час назад, Garik66 сказал:

переименовать скрипт латиницей

понял но попробую сначало твоё используя советы.

 

1 час назад, Garik66 сказал:

вставь его в lua окно 

А если твой выриант пробовать как вызвать это окно?

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


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

А если твой выриант пробовать как вызвать это окно?

Спойлер

image.thumb.png.c1ea430aadab6e4c33eb7af43036b47f.png

Но вообще то все уже есть в видосах

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


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

есть в видосах

Извените, и спасибо. Ппробую именно ваш скрипт. Учту все советы.

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


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

Извените, и спасибо. Ппробую именно ваш скрипт. Учту все советы.

А вообще для чего Вам авто-отключение скриптов?
Я понимаю например. некоторые делают активирующий скрипт и в нем в секции дизэйбл прописывают отключение всех скриптов - вот это мне понятно -чтобы не снимать галочки со всех включенных скриптов.
А вот Вам зачем?

 

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


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

А вообще для чего Вам авто-отключение скриптов?

Наверное вы меня сочтёте чокнутым, но мне в данный момент, и конкретно в этой таблице что я делаю даже не нужны. Я экперементирую всё что мне показалось интересным на форуме. Вдруг когда понадобятся. А если освою сейчас то когда это будет надо у меня уже будет навык. Если вы заметили скрипт я вставил во флаги, Ежу понятно что во флагах этот скрипт не нужен. так как в основном скрипте их обнуляют.  а ещё у меня уже был скрипт где это было нужно. только я тогда не использовал совет MasterGH, а использовал вариант imaginary. был у меня чит там для включения нужно единица а для выключения двойка. проблема была в том что инструкция к адресу только одна была. И особеность того адреса если скрипт отключить то единица так и оставалась,  а чтоб отключить надо было включать другой скрипт со значением 2. Вторая особенность была в том что если просто даже без кода активировать этот скрипт и оставить игру выбивало. То есть надо было для активации сперва включить, а потом отключить. 

Изменено пользователем Pitronic
исправление грам ошибок

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


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

Если вы заметили скрипт я вставил во флаги

Ты это называешь вставил во флаги:

Спойлер

{$asm}
_slot_01_coord_x_:
dd 1
[DISABLE]

_slot_01_coord_x_:
dd 0

 

Ну. ну.
Короче  - читай, смотри, экспериментируй - учись
Совет - учись на самом простом - на том же Туториале СЕ например. как я делал. 

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


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

Упс опять вопрос

Спойлер

7MaPKdr.png

Какое там айди 67 или 21?

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


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

Отключить АА скрипт можно по луа таймеру. В тело таймера просто добавить секцию Disable из АА скрипта, обрамленную специальными скобками

autoAssemble([[[DISABLE]
dealloc(newmem)
"TOTALCMD64.EXE"+1A528:
add [rax],al
add [rax],al
add [rax],al]])

 

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


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

Упс опять вопрос

Какое там айди 67 или 21?

67

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Предпросмотр

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

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

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