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

Garik66

Помогаторы
  • Постов

    5 750
  • Зарегистрирован

  • Победитель дней

    292

Весь контент Garik66

  1. Я уже один раз пробегал по всем своим сообщениям и правил ссылки и спойлеры. Сейчас я этого не в состоянии буду сделать такое (слишком много сообщений), да и не хочется. Неужели нельзя как-то автоматизировать такой процесс?
  2. А спойлеры свои с кодом посмотри, а все ссылки (которые внутри форума) не работают.
  3. Первое впечатление, которое я испытал, когда загрузился форум - Я подхватил где-то вирус.
  4. выгружает значение в адресе [eax+edi*4+0C] в стек. в регистр eax записывается значение в адресе [eax+ecx*4].
  5. Это безымянная метка, на которую делаем прыжок (@f - ввперёд на первую ближайшую метку. @b - назад), можно объявлять без объявления (типа label(flag)), делает только короткий прыжок (переход). Ещё один плюс таких меток - их может быть сколько угодно. да Игры у меня нет поэтому точно ответить не могу, там может быть что угодно, но там обязательно проскакивает адрес 00A444E8. За проверку, там ли этот адрес, у меня в скрипте отвечает вот этот участок: push edx lea edx,[eax+ecx] cmp edx,00A444E8 pop edx jne code
  6. Razi, ты опять торопишься, не на то дал ссылку, ты дал на АА -скрипт, для авто-нажатия, а не для заморозки.
  7. AntonVitalievich, возьмите из этого сообщения, все три скрипта на основе АА скрипта Razi. А в этом сообщении окончательный скрипт.
  8. Я тебе сразу говорил, что на первый вопрос из твоего задания, будет проще сделать на LUA, а второй вопрос - проще на АА, так как заморозка это просто операнд MOV. Razi, если ты это написал в ответ на мой пост # 67, то ты опять торопишься и прочитал невнимательно. Причём здесь количество клавиш, в мой скрипт ты тоже можешь добавить сколько угодно клавиш. Попробуй авто-нажать два раза подряд любую из этих клавиш, флаг-переключатель это не позволит.
  9. почему не компилирует СЕ и как мне удалось сделать этот скрипт - ответ
  10. С помощью SER[G]ANT, связались с Дарк Байтом по поводу как вставить тот мой скрипт в новую табличку он ответил: Добавлено: Ср 3 февраля 2016 8:29 утра Заголовок сообщения: Цитата: Как добавить этот скрипт к столу без ручного редактирования файла .CT? Просто откройте любой процесс (ну, любой процесс с пользовательским интерфейсом или тот, который загружает user32.dll), вставьте его в автомобильной ассемблере и нажмите File-> Назначить обмануть таблицу Dark Byte Site Admin Reputation: 286 Joined: 09 May 2003 Posts: 17990 Location: The netherlands Posted: Wed Feb 03, 2016 8:29 am Post subject: Quote: How to add this script to the table without manual editing of the .CT file? Just open ANY process(well, any process with a userinterface or one that loads user32.dll ) , paste it in the auto assembler and click file->assign to cheat table _________________ ЗЫ: Проверил: Открыл СЕ, запустил Туториал, подключился к процессу Туториала, скопировал скрипт и вставил. Вот таким образом мне удалось написать этот рабочий скрипт. Прикол - век живи - век учись.
  11. LUA-скрипт от MasterGH: function onMemRecPreExecute(memoryrecord, newstate) print(memoryrecord.Description) print(memoryrecord.ID) print(memoryrecord.Index) end Видео от Garik66:
  12. Если нашёл правильно и LIRW тоже выше всё правильно сказал, то fstp dword ptr [ecx+14]mov dword ptr [ecx+14],(float)0
  13. Скрин чего? Поиска Попробуй может так, сделай структуру от инструкции на патроны и вот там смотри, какие смещения меняются при выстрелах. Думаю при выстреле длиной очередью будет лучше заметно. А так я сам ни разу ещё не ломал отдачу и тому подобное за ненадобностью.
  14. Для каждого оружия будет свой адрес, так как эти адреса лежат в структуре конкретного оружия.
  15. просто выбрана не та инструкция, поэтому и не сработало. А в твоём примере нужно было просто указать размерность. [ENABLE]aobscanmodule(Fuer,amtrucks.exe,F3xxxxxxxxxxxxxxxx0F57xxxxxxxxxxxxxxxxxxxxxxxxxx40xx48xxxxxx48xxxxE8xxxxxxxxF3xxxxxxxxxx48)alloc(newmem,$1000)label(code)label(return)newmem: code: movss [rax+00000168],xmm0 mov dword ptr [rax+00000168],(float)100 // dword нужно указывать обязательно, думаю знаешь почему jmp returnFuer: jmp newmem nop nop nopreturn:registersymbol(Fuer)[DISABLE]Fuer: db F3 0F 10 80 68 01 00 00unregistersymbol(Fuer)dealloc(newmem)
  16. Так как часто смотрят этот топик и тема ещё не закрыта, то для новичков выложу более простое решение: movss [NNN+NNNNNNNNN],xmm1 // Записываем нужное нам значение, после отработки этой инструкцииmov [NNN+NNNNNNNNN],(float)100 // прямо в память [NNN+NNNNNNNNN].
  17. По скрипту "Эмуляция нажатия клавиши": Ты написал в ЛС: Нет. Не ко всем играм подойдёт.То что написал я и AntonVitalievich (по сути мы написали одно и тоже на разных ЯП), это частный случай (хорошо, что он подошёл к твоей игре).Объясню. Мы ввели виртуальный (не игровой) флаг-переключатель. У меня это flagUp, у AntonVitalievich это forkeys.Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот).В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут.Для того, чтобы написать скрипты для всех игр (и конечно это возможно), нужна ещё дополнительная информация от тебя:т.е. какое событие в игре происходит при нажатии клавиши Home и какое при нажатии клавиши End, при чём не обязательно знать точные значения, а нужны просто инструкции на запись на это событие при нажатии соответствующей клавиши и вот по изменению адреса в этой инструкции мы можем написать именно универсальный скрипт, который будет подходить ко всем играм. PS: написанное не означает, что нужно прямо сейчас писать такие скрипты (можно сделать потом для других игр). Конечно покажи. Интересно. G: Отправлено Сегодня, 21:18 целый R: Отправлено Сегодня, 21:26 Просто больше всего выделяется в твоем сообщении: В других играх допустим нужно будет нажать 3 раза подряд Home, потом 7 раз End. В этом случае наши скрипты не помогут. А вот тут так сказал что понять не просто, что-то догадываюсь: Что он делает: если авто-нажимается Home, то запрещает Home авто-нажиматься и тоже самое с клавишей End, т.е. пока не будет авто-нажатия на клавишу End, мы не сможем авто-нажать клавишу Home (и наоборот). autoAssemble([[globalalloc(forkeys, 4)]])autoAssemble([[globalalloc(savedvalue, 4)]])al = getAddressList()Adr00A3F3E5 = al.getMemoryRecordByDescription("Adr00A3F3E5")Adr00A444E8 = al.getMemoryRecordByDescription("Adr00A444E8")Adr00A47010 = al.getMemoryRecordByDescription("Adr00A47010")forkeys = al.getMemoryRecordByDescription("forkeys")savedvalue = al.getMemoryRecordByDescription("savedvalue")function freezeriftwo(timer)if Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value=="2" thenAdr00A444E8.Value=savedvalue.Valueelsetimer_setEnabled(t3, true)endendendendt=createTimer(nil)timer_setInterval(t, 100)timer_onTimer(t, freezeriftwo)timer_setEnabled(t, false)function freezeriftwoCOPYVALUE(timer)if savedvalue.Value~="??" thenif Adr00A3F3E5.Value~="??" thenif Adr00A444E8.Value~="??" thenif Adr00A3F3E5.Value~="2" thensavedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, false)elsesleep(2000)savedvalue.Value=Adr00A444E8.Valuetimer_setEnabled(t, true)timer_setEnabled(t3, false)endendendendendt3=createTimer(nil)timer_setInterval(t3, 100)timer_onTimer(t3, freezeriftwoCOPYVALUE)timer_setEnabled(t3, true)function forsimu(timer)if Adr00A47010.Value~="??" thenif Adr00A47010.Value=="1" thenif forkeys.Value=="0" thenforkeys.Value="1"keyDown(VK_DELETE)sleep(100)keyUp(VK_DELETE)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)endelseif Adr00A47010.Value~="??" thenif Adr00A47010.Value=="0" thenif forkeys.Value=="1" thenforkeys.Value="0"keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_DELETE)sleep(100)keyUp(VK_DELETE)endendendendendendt2=createTimer(nil)timer_setInterval(t2, 400)timer_onTimer(t2, forsimu)timer_setEnabled(t2, true) R: Отправлено Сегодня, 21:32 Вручную меняеш в таблице или в игре нажимаеш на кнопку и значение меняется? G: Отправлено Сегодня, 21:32 Я понял твою идею. в скрипте который ты выложил выше, но я говорю не про это G: Отправлено Сегодня, 21:33 Короче давай так забили на этот вопрос. Я уже писал выше, что мне нужно много сделать, чтобы объяснить что я имею ввиду R: Отправлено Сегодня, 21:35 В общем скрипт меня устраивает. G: Отправлено Сегодня, 21:40 Что скрипт устраивает я понял, мой тоже работает абсолютно также. Я писал в теме не для этого. Короче сформулирую чуть,чуть по другому. Введение флага-переключателя (не игрового), который сделали мы с Антоном, это полумера, как я писал частный случай. Чтобы написать скрипт, который подойдёт абсолютно для всех игр, нужно реализовать игровой флаг-переключатель, т.е. из инструкция самого события, которое происходит при нажатии клавиш Home и End. R; Отправлено Сегодня, 21:43 Кстати с самого начала забыл тебе сказать. Кнопки Home и Del абсолютно не влияют на процесс самой игры и никакие инструкции не выполняются внутри игры при нажатии Home и Del. G: Отправлено Сегодня, 21:49 Ты всё продолжаешь . Если хочешь могу попробовать по другому пояснить, что я имею ввиду? Но поверь мне наши скрипты имеют ограничения и не ко всему подойдут. Хорошо, что они тебе подходят. R; Отправлено Сегодня, 21:51 Ладно мы и так много времени потратили, давай лучше если тратить, то на более продуктивные вещи. G: Отправлено Сегодня, 21:59 Допустим я пишу бота, который должен драться с врагом. о - враг открыт 1 - враг бьёт Home - мы должны ударить End - мы должны заблочить. Так вот, то что ты написал здесь: keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)sleep(100)keyDown(VK_HOME)sleep(100)keyUp(VK_HOME)это просто два раза взмах мечом, а здесь keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)keyDown(VK_END)sleep(100)keyUp(VK_END)sleep(100)просто два раза поднятие щита. За это время твоего бота убьют, потому что скрипт не отслеживает событие после удара. т.е. это не реакция на игру. Вот, если отследить событие после удара (нажатия кнопки Home) и после блока (нажатие кнопки End), вот тогда можно написать правильный скрипт. Надеюсь такой пример, тебе объяснит, что я хотел сказать про ограничение в наших скриптах. R: Отправлено Сегодня, 22:10 То ты говоришь про автомат(чуть ли не ИИ), а меня как раз устраивает полу автомат. Меня устраивает например я махнул мечом и после или во время взмаха какая-то магия сама выстрелила во врага, ты и так это знаешь. R: Отправлено Сегодня, 22:12 Про то что ты говоришь выходит далеко за рамки, того что я хотел, я про такое даже и близко не думал. G: Отправлено Сегодня, 22:16 Так я и говорю, что хорошо что наши скрипты тебе подошли, но они имеют ограничения. Т.е. Допустим враг лупит 1,1,1,1,1,1,1,1 (ну берсеркер какой-нибудь ) а у тебя уже скрипт написан, допустим в том виде, в которым ты мне дал. Так у тебя произойдёт что: твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать, так как флаг-переключатель не даст ему ничего сделать, только умирать. Или ты быстро ставишь игру на паузу и переписываешь скрипт? но учти, что и время между ударами может быть разное, а у тебя в скрипте оно строго прописано. R; Отправлено Сегодня, 22:18 Вот об этом я и написал в том посте. А ты не поняв, написал следующий пост, что якобы нет ограничений. R: Отправлено Сегодня, 22:26 Так у тебя произойдёт что: твой герой два раза заблочит, если время удара совпадёт, а потом будет стоять и ничего не делать А игрой то управляю я, скрипт лишь усиливает мои действия. ИИ часто теряется и не идет в сравнение с живым человеком. Например: Я жму физически кнопку взмаха мечом, а магия дополняя мои действия сама стреляет ( т.е. скрипт). Это всего лишь пример. На самом деле у меня другие действия происходят. G: Отправлено Сегодня, 22:30 Если ИИ написан хорошим программистом специально, то не один игрок его не победит. А так это уже отход от темы. Тема была про ограничения наших скриптов.
  18. Ты про этот? Если про него, то я его пока не тестил, думаю как его приспособить под нужды игры. я писал уже, что в игре kOptionA это статичный адрес. Я понял что нужно сделать флаг, отдельный. Вот сейчас сижу и думаю как это сделать. Вот я тормоз, второй флаг и всё работает. Попозже выложу результат. gmz, может в курсе, с чем может быть связан глюк: Когда писал скрипт строчка call keybd_event компилировалась СЕ. А теперь, если копирнуть скрипт и в новой таблице его попробовать добавить, строчка не компилируется. Как и обещал выкладываю скрипт, он работает у пользователя в игре: { Game : ePSXe ENG.exe Version: Date : 2016-02-02 Author : User This script does blah blah blah}[ENABLE]aobscan(INJECT,88 1C 08 81 E2 FC FF 1F 00) // should be uniquealloc(newmem,$1000)label(code)label(code1)label(return)label(flagUp)registersymbol(INJECT)newmem: cmp [00A47010],1 jne code1 cmp [flagUp],0 jne code1 pushad push 0 push 0 push 0 push #36 // Home call keybd_event push 0 push 2 push 0 push #36 call keybd_event mov [flagUp],1 popad jmp codecode1: cmp [00A47010],0 jne code cmp [flagUp],1 jne code pushad push 0 push 0 push 0 push #35 // End call keybd_event push 0 push 2 push 0 push #35 call keybd_event mov [flagUp],0 popadcode: mov [eax+ecx],bl and edx,001FFFFC jmp returnflagUp:dd 0INJECT: jmp newmem nop nop nop nopreturn:[DISABLE]INJECT: db 88 1C 08 81 E2 FC FF 1F 00unregistersymbol(INJECT)dealloc(newmem){// ORIGINAL CODE - INJECTION POINT: 02C802B402C8028B: 81 FA 00 00 80 1F - cmp edx,1F80000002C80291: 74 62 - je 02C802F502C80293: 8B 0D 84 0A 51 00 - mov ecx,["ePSXe ENG.exe"+110A84]02C80299: F7 C1 00 00 01 00 - test ecx,1000002C8029F: 75 53 - jne 02C802F402C802A1: 8B C8 - mov ecx,eax02C802A3: 89 C2 - mov edx,eax02C802A5: C1 E9 10 - shr ecx,1002C802A8: 25 FF FF 00 00 - and eax,0000FFFF02C802AD: 8B 0C 8D 40 AF 82 00 - mov ecx,[ecx*4+"ePSXe ENG.exe"+42AF40]// ---------- INJECTING HERE ----------02C802B4: 88 1C 08 - mov [eax+ecx],bl02C802B7: 81 E2 FC FF 1F 00 - and edx,001FFFFC// ---------- DONE INJECTING ----------02C802BD: BB 20 00 E9 02 - mov ebx,02E9002002C802C2: 03 DA - add ebx,edx02C802C4: 8B 03 - mov eax,[ebx]02C802C6: 3D 40 00 C8 02 - cmp eax,02C8004002C802CB: 75 01 - jne 02C802CE02C802CD: C3 - ret02C802CE: B8 40 00 C8 02 - mov eax,02C8004002C802D3: 8B 0C 10 - mov ecx,[eax+edx]02C802D6: B8 20 00 12 03 - mov eax,0312002002C802DB: 8B 04 10 - mov eax,[eax+edx]}
  19. Чудеса короче да и только. У меня нет слов. У меня только одно предположение. Так как я писал скрипт в табличке созданной ещё на СЕ 6.4 и в ней компилируется, то проблема в СЕ 6.5. По-видимому Дарк Байт решил, что функция keybd_event устаревшая и выкинул её из компилятора СЕ 6.5. Если кто хорошо знает английский, задайте вопрос на форуме СЕ пожалуйста. Выкинул он keybd_event и как можно восстановить, если выкинул.
  20. Работает как надо? Тогда странно почему его нельзя вставить в новую таблицу. Видимо нужно отдохнуть.
  21. Качнул, посмотрел - СИМПАТИЧНО!!! ПЛЮС!!! 5 балов конечно.
  22. И всё-таки странно почему когда я писал скрипт эта строчка (call keybd_event) компилировалась СЕ, а теперь нет. Я этого не понимаю.Видимо или наше ГБ или ЦРУ блочит, подумали, что хотим взломать белый дом.
  23. Ошибку с code1 поправил. А вот почему не проходят call keybd_event.не понимаю, у меня теперь тоже СЕ если сделать новую таблицу, тоже не разрешает скрипт вставлять, так что залью пока табличку где этот скрипт, проверьте. Если кто успел качнуть заметил ещё одну ошибку - перекачайте. ForRazi3.CT
  24. Поправил в том же скрипте. Тяжело без отладки с игрой писать правильно сразу. были пропущены кое-где popad и pushad
  25. у меня тоже ошибка, только что качнул.
×
×
  • Создать...

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

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