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

[Serious Sam 4] телепорт в точку прицеливания

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

GetPBase:
 

Спойлер

{ Game   : Sam4.exe
  Version: 
  Date   : 2020-10-09
  Author : vlad

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(NEWGetPBase,Sam4.exe,25 49 8B 00 49 8B C8) // should be unique
alloc(newmem,$1000,"Sam4.exe"+D4F3E)
alloc(store_pbase,4)

label(code)
label(return)
label(pbase)

registersymbol(pbase)

store_pbase:
pbase:
dd 0

newmem:
  push rbx
  mov rbx,[r8+1D0]
  mov [pbase],rbx
  pop rbx
code:
  mov rax,[r8]
  mov rcx,r8
  jmp return

NEWGetPBase+01:
  jmp newmem
  nop
return:
registersymbol(NEWGetPBase)

[DISABLE]

NEWGetPBase+01:
  db 49 8B 00 49 8B C8

unregistersymbol(NEWGetPBase)
unregistersymbol(pbase)
dealloc(newmem)
dealloc(store_pbase)

{
// ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+D4F3E

"Sam4.exe"+D4F15: 48 81 EC B0 02 00 00        -  sub rsp,000002B0
"Sam4.exe"+D4F1C: 45 33 FF                    -  xor r15d,r15d
"Sam4.exe"+D4F1F: 0F 29 B4 24 A0 02 00 00     -  movaps [rsp+000002A0],xmm6
"Sam4.exe"+D4F27: 44 89 7C 24 44              -  mov [rsp+44],r15d
"Sam4.exe"+D4F2C: 0F 28 F3                    -  movaps xmm6,xmm3
"Sam4.exe"+D4F2F: 4C 8B F2                    -  mov r14,rdx
"Sam4.exe"+D4F32: 48 8B F9                    -  mov rdi,rcx
"Sam4.exe"+D4F35: 45 8D 67 01                 -  lea r12d,[r15+01]
"Sam4.exe"+D4F39: 4D 85 C0                    -  test r8,r8
"Sam4.exe"+D4F3C: 74 25                       -  je Sam4.exe+D4F63
// ---------- INJECTING HERE ----------
"Sam4.exe"+D4F3E: 49 8B 00                    -  mov rax,[r8]
"Sam4.exe"+D4F41: 49 8B C8                    -  mov rcx,r8
// ---------- DONE INJECTING  ----------
"Sam4.exe"+D4F44: FF 10                       -  call qword ptr [rax]
"Sam4.exe"+D4F46: 48 8B 15 1B D3 17 02        -  mov rdx,[Sam4.exe+2252268]
"Sam4.exe"+D4F4D: 48 8B C8                    -  mov rcx,rax
"Sam4.exe"+D4F50: E8 2B 4F FF 00              -  call Sam4.exe+10C9E80
"Sam4.exe"+D4F55: 8B 4C 24 44                 -  mov ecx,[rsp+44]
"Sam4.exe"+D4F59: 85 C0                       -  test eax,eax
"Sam4.exe"+D4F5B: 41 0F 44 CC                 -  cmove ecx,r12d
"Sam4.exe"+D4F5F: 89 4C 24 44                 -  mov [rsp+44],ecx
"Sam4.exe"+D4F63: 48 8B 0D 7E 6A 1A 02        -  mov rcx,[Sam4.exe+227B9E8]
"Sam4.exe"+D4F6A: 48 8B 81 78 1C 00 00        -  mov rax,[rcx+00001C78]
}

 

GetAimCoords:

Спойлер

[ENABLE]

aobscanmodule(AimCoords,Sam4.exe,F2 0F 10 87 60 21 00 00) // should be unique
alloc(newmem,$1000,"Sam4.exe"+11EA1F)
alloc(store_aimcoords,16)

label(code)
label(return)
label(x_aim)
label(y_aim)
label(z_aim)
registersymbol(x_aim)
registersymbol(y_aim)
registersymbol(z_aim)

store_aimcoords:
x_aim:
dd 0
y_aim:
dd 0
z_aim:
dd 0

newmem:
push rbx
mov rbx,[rdi+00002160]
mov [x_aim],rbx
mov rbx,[rdi+00002164]
mov [y_aim],rbx
mov rbx,[rdi+00002168]
mov [z_aim],rbx
pop rbx
jmp code

code:
  movsd xmm0,[rdi+00002160]
  jmp return

AimCoords:
  jmp newmem
  nop 3
return:
registersymbol(AimCoords)

[DISABLE]

AimCoords:
  db F2 0F 10 87 60 21 00 00

unregistersymbol(AimCoords)
unregistersymbol(x_aim)
unregistersymbol(y_aim)
unregistersymbol(z_aim)
dealloc(newmem)
dealloc(store_aimcoords)

 

Teleport:

Спойлер

{ Game   : Sam4.exe
  Version: 
  Date   : 2020-10-09
  Author : vlad

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(Tp_4,Sam4.exe,8B 40 54 89 42 18 48 8B C2) // should be unique
alloc(newmem,$1000,"Sam4.exe"+470046)
alloc(store_coord,256)

label(code)
label(return)
label(xpos)
label(ypos)
label(zpos)
label(en_save)
label(en_load)
label(en_load_aim)
label(save)
label(load)
label(load_aim)

registersymbol(en_load)
registersymbol(en_save)
registersymbol(en_load_aim)
registersymbol(xpos)
registersymbol(ypos)
registersymbol(zpos)

store_coord:
xpos:
dd 0
ypos:
dd 0
zpos:
dd 0

en_save:
dd 0
en_load:
dd 0
en_load_aim:
dd 0


newmem:
cmp rax,[pbase]
jne code
cmp [en_save],1
je save
cmp [en_load],1
je load
cmp [en_load_aim],1
je load_aim
jmp code
//сохранить корды
save:
mov [en_save],0
push rdx
mov rdx,[rax+4c]
mov [xpos],rdx
mov rdx,[rax+50]
mov [ypos],rdx
mov rdx,[rax+54]
mov [zpos],rdx
pop rdx
//загрузить корды
load:
mov [en_load],0
push rdx
mov rdx,[xpos]
mov [rax+4c],rdx
mov rdx,[ypos]
mov [rax+50],rdx
mov rdx,[zpos]
mov [rax+54],rdx
pop rdx
//сохранить корды прицела и загрузить
load_aim:
mov [en_load_aim],0
push rdx
//save
mov rdx,[x_aim]
mov [xpos],rdx
mov rdx,[y_aim]
mov [ypos],rdx
mov rdx,[z_aim]
mov [zpos],rdx
//load
mov rdx,[xpos]
mov [rax+4c],rdx
mov rdx,[ypos]
mov [rax+50],rdx
mov rdx,[zpos]
mov [rax+54],rdx
pop rdx

code:
  mov eax,[rax+54]
  mov [rdx+18],eax
  jmp return

Tp_4:
  jmp newmem
  nop
return:
registersymbol(Tp_4)

[DISABLE]

Tp_4:
  db 8B 40 54 89 42 18

unregistersymbol(Tp_4)
unregistersymbol(en_save)
unregistersymbol(en_load)
unregistersymbol(en_load_aim)
unregistersymbol(xpos)
unregistersymbol(ypos)
unregistersymbol(zpos)
dealloc(newmem)
dealloc(store_coord)
{
// ORIGINAL CODE - INJECTION POINT: "Sam4.exe"+470046

"Sam4.exe"+470020: 40 53                    -  push rbx
"Sam4.exe"+470022: 48 83 EC 20              -  sub rsp,20
"Sam4.exe"+470026: 48 8B 81 D0 01 00 00     -  mov rax,[rcx+000001D0]
"Sam4.exe"+47002D: 48 8B DA                 -  mov rbx,rdx
"Sam4.exe"+470030: 48 85 C0                 -  test rax,rax
"Sam4.exe"+470033: 74 20                    -  je Sam4.exe+470055
"Sam4.exe"+470035: 0F 10 40 3C              -  movups xmm0,[rax+3C]
"Sam4.exe"+470039: 0F 11 02                 -  movups [rdx],xmm0
"Sam4.exe"+47003C: F2 0F 10 48 4C           -  movsd xmm1,[rax+4C]
"Sam4.exe"+470041: F2 0F 11 4A 10           -  movsd [rdx+10],xmm1
// ---------- INJECTING HERE ----------
"Sam4.exe"+470046: 8B 40 54                 -  mov eax,[rax+54]
"Sam4.exe"+470049: 89 42 18                 -  mov [rdx+18],eax
// ---------- DONE INJECTING  ----------
"Sam4.exe"+47004C: 48 8B C2                 -  mov rax,rdx
"Sam4.exe"+47004F: 48 83 C4 20              -  add rsp,20
"Sam4.exe"+470053: 5B                       -  pop rbx
"Sam4.exe"+470054: C3                       -  ret 
"Sam4.exe"+470055: 48 8B 01                 -  mov rax,[rcx]
"Sam4.exe"+470058: FF 90 A8 00 00 00        -  call qword ptr [rax+000000A8]
"Sam4.exe"+47005E: 48 8B C3                 -  mov rax,rbx
"Sam4.exe"+470061: 48 83 C4 20              -  add rsp,20
"Sam4.exe"+470065: 5B                       -  pop rbx
"Sam4.exe"+470066: C3                       -  ret 
}

 

(Указатель на коорд Х: "Sam4.exe"+02265FD0 + 8 + 8 + 1D0 + 4C)

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


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

Так по моему... я особо не тестировал.. не когда игрой заниматься. 

Ps: Да... чуть не забыл! Игра у тебя старой версии, не так давно, её обновили на 1.5 gb пришлось восстанавливать. 

Teleport crosshair.CT

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


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

Так по моему... я особо не тестировал.. не когда игрой заниматься. 

Ps: Да... чуть не забыл! Игра у тебя старой версии, не так давно, её обновили на 1.5 gb пришлось восстанавливать. 

Teleport crosshair.CT 8 \u043a\u0411 · 1 download

Да, работает, сейчас буду разбираться в чем напортачил. Спасибо большое за подсказку

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


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

Так по моему... я особо не тестировал.. не когда игрой заниматься. 

Ps: Да... чуть не забыл! Игра у тебя старой версии, не так давно, её обновили на 1.5 gb пришлось восстанавливать. 

Teleport crosshair.CT 8 \u043a\u0411 · 2 downloads

xorps xmm14,xmm14//привести к 0
  comiss xmm14,[rcx+4c]//???
  je code

Не могу понять для чего ты это делаешь comiss xmm14,[rcx+4c]

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


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

Не могу понять для чего ты это делаешь

а если там 0 и ты нажмешь телепорт, что тогда будет ?

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


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

а если там 0 и ты нажмешь телепорт, что тогда будет ?

Я вижу, что 0 сравнивается со значением координаты Х, так?  Она же может быть нулевая

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


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

Она же может быть нулевая

Я не следил, может она быть или нет (времени нет на игру) . Просто в 0 уже телепотировался , а там зависон и вылет. Хочешь убери :rolleyes: И там еще вот что над сделать... Там по любому есть размеры области карты.  А  то если  наводишь прицел не на обьекты, это телепорт куда ?  Это выглядит как если прицел направить в небо.. 

Ps: 

Ты же по сути делаешь еще один телепорт.. Будет же много в одном ? Вот эта функция и будет как раз проверкой, сохранил ли ты координаты или же сразу с 0 пытаешься загрузится. Игра ведь такая, у страха глаза велики :lol: мож забудешь сохраниться и попытаешься загрузится с 0 

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


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

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

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

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

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

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

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

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

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