Перейти к содержанию
Авторизация  
Desmos

[Autoassembler] Не понятно, почему вылетает игра.

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

Почему этот код работает без вылетов

Спойлер

[ENABLE]

aobscan(INJECT,F3 0F 7E 4E 20 8B 77)
alloc(newmem,$1000)
alloc(coords,$1000)
label(code)
label(return)
registersymbol(coords)

coords:
  db 00 00 00 00


newmem:
  mov [coords],100
  jmp code
code:
  movq xmm1,[esi+20]
  jmp return

INJECT:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db F3 0F 7E 4E 20

unregistersymbol(INJECT)
unregistersymbol(coords)
dealloc(newmem)

 

А если в коде вместо alloc(coords, $1000) в 6-й строке поставить label(coords), то по какой причине игра вылетает? Как тогда в других скриптах достаточно для инициализации метки указать label(...) и объявить её через db?

Вот собственно код, который не работает (игра вылетает). Как раз здесь заменена строка alloc(coords, $1000) на label(coords)

Спойлер

[ENABLE]

aobscan(INJECT,F3 0F 7E 4E 20 8B 77)
alloc(newmem,$1000)
label(coords)
label(code)
label(return)
registersymbol(coords)

coords:
  db 00 00 00 00


newmem:
  mov [coords],100
  jmp code
code:
  movq xmm1,[esi+20]
  jmp return

INJECT:
  jmp newmem
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db F3 0F 7E 4E 20

unregistersymbol(INJECT)
unregistersymbol(coords)
dealloc(newmem)

 

 

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

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


Ссылка на сообщение
Поделиться на другие сайты
newmem:
  mov [coords],100
  jmp code

code:
  movq xmm1,[esi+20]
  jmp return

coords:
  db 00 00 00 00

INJECT:
  jmp newmem

 

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


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

newmem:
  mov [coords],100
  jmp code

code:
  movq xmm1,[esi+20]
  jmp return

coords:
  db 00 00 00 00

INJECT:
  jmp newmem

 

Спасибо, заработало, чтобы тема не пропадала зря, выложу свой код. Думаю, это неплохой пример слияния (совмещения, объединения) двух скриптов в один. Первый скрипт (inject1) ищет сигнатуру, которая обращается к координатам персонажа. Секция newmem1 записывает координаты нашего персонажа в глобальную метку coords (координаты тип double). Второй скрипт (inject2) ищет сигнатуру, обращающуюся к координатам выпадающего дропа на карте. В итоге, второй скрипт в newmem2 записывает значения координат персонажа, которые добыл нам первый скрипт, в координаты дропа. В итоге, все выпадающие припасы телепортируются к персонажу, и он подбирает их.

Вот код

Спойлер

[ENABLE]

aobscan(INJECT1,F3 0F 7E 4E 20 8B 77)
aobscan(INJECT2,74 XX F3 0F 7E 42 20 XX XX 74 XX 66 0F D6 41 78 8B 4D F0)
alloc(newmem1,$1000)
label(newmem2)
label(code1)
label(code2)
label(return1)
label(return2)
label(coords)
registersymbol(coords)

newmem1:
  fld qword ptr [esi+10]
  fstp qword ptr [coords]
  fld qword ptr [esi+18]
  fstp qword ptr [coords+08]
  fld qword ptr [esi+20]
  fstp qword ptr [coords+10]
  jmp code1

code1:
  movq xmm1,[esi+20]
  jmp return1

newmem2:
  fld qword ptr [coords]
  fstp qword ptr [edx+10]
  fld qword ptr [coords+08]
  fstp qword ptr [edx+18]
  fld qword ptr [coords+10]
  fstp qword ptr [edx+20]
  jmp code2

code2:
  movq xmm0,[edx+20]
  jmp return2

coords:
  db 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

INJECT1:
  jmp newmem1
return1:
registersymbol(INJECT1)

INJECT2+02:
  jmp newmem2
return2:
registersymbol(INJECT2)


[DISABLE]

INJECT1:
  db F3 0F 7E 4E 20
INJECT2+02:
  db F3 0F 7E 42 20

unregistersymbol(INJECT1)
unregistersymbol(INJECT2)
unregistersymbol(coords)
dealloc(newmem1)

 

 

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

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


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

В итоге, все выпадающие припасы телепортируются к персонажу, и он подбирает их.

Ты бы хоть название и версию игры указал, что ли...

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


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

Ты бы хоть название и версию игры указал, что ли...

Да, извини, я что-то пожадничал) Это браузерная игра Gtanks или старые танки онлайн.

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


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

Да, извини, я что-то пожадничал

Бывает ) В целом, я думаю, можно оформить отдельной темой в разделе "Наши релизы - Скрипты", если хочешь поделиться со всеми желающими.

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


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

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 эмодзи.

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

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

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

  • Предпросмотр
Авторизация  

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

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

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