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

Авто отключения скрипта 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

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

  • 1 год спустя...

У меня не включается, что там не правильно? Или единицу не надо было переименовывать на 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
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, imaginary сказал:

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

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

Спойлер

 

 

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

9 часов назад, imaginary сказал:

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

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

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

2 часа назад, Pitronic сказал:

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

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

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

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

Спойлер

[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]

 

 

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

  • 7 месяцев спустя...

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

Спойлер

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

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

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

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

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

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

 

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

23 минуты назад, Garik66 сказал:

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

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

Изменено пользователем Pitronic
исправление грам ошибок
Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Спойлер

{$asm}
_slot_01_coord_x_:
dd 1
[DISABLE]

_slot_01_coord_x_:
dd 0

 

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

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

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

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

 

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

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

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

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