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

[Far Cry 3] Вылеты при написании скрипта на телепортацию


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

Доброго времени суток. Во время создания чита для такой старой игры как far cry 3 я столкнулся с проблемой.

Суть в том что я выяснял координаты персонажа оказалось что они находятся в Double после я посмотрел где находятся остальные координаты, затем начал писать скрипт:

Спойлер

f8512f3422b0f085471a3e50b6ad40c9-full.pn

Но получал вылеты, кстати искал я в double а нашёл в float после просмотра структуры, также значения были наподобие таких 123456789E-49 только там были другие цифры,

Заранее спасибо!!!

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

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

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

13 часов назад, Xipho сказал:

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

Спасибо я посмотрел видео по взлому Far Cry 4 конечно делу это не помогло, но я думаю это просто из за моей криворукости ну или из-за того что я туплю!!!?

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

13 часов назад, Garik66 сказал:

Выложи стандартный СЕ-ный скрипт с Логами - поправлю твой скрипт.

Ну я много всего заскринил, а также сделал пустой скрипт с перемещённым кодом, инъекцией кода и aob сканом.

Спойлер

https://cdn1.savepice.ru/uploads/2018/10/30/685d73f4612978aeabca5c001cb7f27c-full.png

https://cdn1.savepice.ru/uploads/2018/10/30/38cdd07a9f04b8578b89405f972dd8cf-full.png

https://cdn1.savepice.ru/uploads/2018/10/30/9c6b563afb30994f520c01266d5f3b77-full.png

https://cdn1.savepice.ru/uploads/2018/10/30/f5823e77449c53d61bc90ea870528750-full.png

Это перемещённый код

Спойлер

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
alloc(newmem,256)

label(orig_71BEEA55)

newmem:
mov ecx,[eax+34]
movaps xmm3,[ebp-30]
mov [ebp-5C],ecx
mov edx,[eax+38]
mov [ebp-58],edx
mov eax,[eax+3C]
mov [ebp-54],eax
movaps xmm4,[ebp-60]
add esp,08
mov [ebp-48],esi
mov eax,00000001
lea edx,[ebp-00000140]
lea ecx,[esi+30]

orig_71BEEA55:
movaps xmm0,[ecx]
movaps xmm5,xmm0
shufps xmm5,xmm055
movaps xmm6,xmm0
shufps xmm6,xmm000
shufps xmm0,xmm0-56
mulps xmm5,xmm2
mulps xmm6,xmm1
mulps xmm0,xmm3
addps xmm5,xmm6
addps xmm0,xmm4
addps xmm5,xmm0
movaps [edx],xmm5
sub ecx,10
sub edx,10
dec eax
mov eax,[edi+08]
mov ecx,[eax]
mov [ebp-60],ecx
mov edx,[eax+04]
mov [ebp-5C],edx
mov ecx,[eax+08]
mov [ebp-58],ecx
mov edx,[eax+0C]
mov [ebp-54],edx
mov ecx,[eax+10]
mov edx,[eax+14]

Это просто инъекция

Спойлер

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

originalcode:
mov ecx,[eax+34]
movaps xmm3,[ebp-30]

exit:
jmp returnhere

"FC3.dll"+109EA27:
jmp newmem
nop
nop
returnhere:


 
 
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"FC3.dll"+109EA27:
mov ecx,[eax+34]
movaps xmm3,[ebp-30]
//Alt: db 8B 48 34 0F 28 5D D0

А это aob скан

Спойлер

{ Game   : farcry3.exe
  Version: 
  Date   : 2018-10-30
  Author : dimaa_000

  This script does blah blah blah
}

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat

 
 
aobscanmodule(Teleport,FC3.dll,8B 48 34 0F 28 5D D0 89 4D A4) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:

code:
  mov ecx,[eax+34]
  movaps xmm3,[ebp-30]
  jmp return

Teleport:
  jmp newmem
  nop
  nop
return:
registersymbol(Teleport)

[DISABLE]
//code from here till the end of the code will be used to disable the cheat
Teleport:
  db 8B 48 34 0F 28 5D D0

unregistersymbol(Teleport)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "FC3.dll"+109EA27

"FC3.dll"+109EA08: 8B 48 24              -  mov ecx,[eax+24]
"FC3.dll"+109EA0B: 0F 28 55 C0           -  movaps xmm2,[ebp-40]
"FC3.dll"+109EA0F: 89 55 D0              -  mov [ebp-30],edx
"FC3.dll"+109EA12: 8B 50 28              -  mov edx,[eax+28]
"FC3.dll"+109EA15: 89 4D D4              -  mov [ebp-2C],ecx
"FC3.dll"+109EA18: 8B 48 2C              -  mov ecx,[eax+2C]
"FC3.dll"+109EA1B: 89 55 D8              -  mov [ebp-28],edx
"FC3.dll"+109EA1E: 8B 50 30              -  mov edx,[eax+30]
"FC3.dll"+109EA21: 89 55 A0              -  mov [ebp-60],edx
"FC3.dll"+109EA24: 89 4D DC              -  mov [ebp-24],ecx
// ---------- INJECTING HERE ----------
"FC3.dll"+109EA27: 8B 48 34              -  mov ecx,[eax+34]
"FC3.dll"+109EA2A: 0F 28 5D D0           -  movaps xmm3,[ebp-30]
// ---------- DONE INJECTING  ----------
"FC3.dll"+109EA2E: 89 4D A4              -  mov [ebp-5C],ecx
"FC3.dll"+109EA31: 8B 50 38              -  mov edx,[eax+38]
"FC3.dll"+109EA34: 89 55 A8              -  mov [ebp-58],edx
"FC3.dll"+109EA37: 8B 40 3C              -  mov eax,[eax+3C]
"FC3.dll"+109EA3A: 89 45 AC              -  mov [ebp-54],eax
"FC3.dll"+109EA3D: 0F 28 65 A0           -  movaps xmm4,[ebp-60]
"FC3.dll"+109EA41: 83 C4 08              -  add esp,08
"FC3.dll"+109EA44: 89 75 B8              -  mov [ebp-48],esi
"FC3.dll"+109EA47: B8 01 00 00 00        -  mov eax,00000001
"FC3.dll"+109EA4C: 8D 95 C0 FE FF FF     -  lea edx,[ebp-00000140]
}

 

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

13 часов назад, Garik66 сказал:

 

твоя инструкция работает только с координатами твоего ГГ или ещё с чем-нибудь? 

Моя инструкция работает только с ГГ.

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

5 часов назад, MrNeumiller сказал:

А это aob скан

Попробуй скрипт:

Спойлер

{ Game   : farcry3.exe
  Version:
  Date   : 2018-10-30
  Author : dimaa_000

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(Teleport,FC3.dll,8B 48 34 0F 28 5D D0 89 4D A4) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(X)
label(Y)
label(Z)
label(flag)
registersymbol(flag)
registersymbol(Teleport)

newmem:
  cmp [flag],1            // При 1 считываем координаты
  jne @f
  mov ecx,[eax+30]
  mov [X],ecx
  mov ecx,[eax+34]
  mov [Z],ecx
  mov ecx,[eax+38]
  mov [Y],ecx
  jmp code

@@:
  cmp [X],0               // Защита от телепорта на нулевые координаты
  je code
  cmp [flag],2            // При 2 записываем координаты
  jne code
  mov ecx,[X]
  mov [eax+30],ecx
  mov ecx,[Z]
  mov [eax+34],ecx
  mov ecx,[Y]
  mov [eax+38],ecx

code:
  mov [flag],0            // Чтобы записать/чтение происходило один раз.
  mov ecx,[eax+34]
  movaps xmm3,[ebp-30]
  jmp return

X:
  dd 0
Y:
  dd 0
Z:
  dd 0
flag:
  dd 0


Teleport:
  jmp newmem
  db 90 90
return:

[DISABLE]
Teleport:
  db 8B 48 34 0F 28 5D D0

unregistersymbol(flag)
unregistersymbol(Teleport)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "FC3.dll"+109EA27

"FC3.dll"+109EA08: 8B 48 24              -  mov ecx,[eax+24]
"FC3.dll"+109EA0B: 0F 28 55 C0           -  movaps xmm2,[ebp-40]
"FC3.dll"+109EA0F: 89 55 D0              -  mov [ebp-30],edx
"FC3.dll"+109EA12: 8B 50 28              -  mov edx,[eax+28]
"FC3.dll"+109EA15: 89 4D D4              -  mov [ebp-2C],ecx
"FC3.dll"+109EA18: 8B 48 2C              -  mov ecx,[eax+2C]
"FC3.dll"+109EA1B: 89 55 D8              -  mov [ebp-28],edx
"FC3.dll"+109EA1E: 8B 50 30              -  mov edx,[eax+30]
"FC3.dll"+109EA21: 89 55 A0              -  mov [ebp-60],edx
"FC3.dll"+109EA24: 89 4D DC              -  mov [ebp-24],ecx
// ---------- INJECTING HERE ----------
"FC3.dll"+109EA27: 8B 48 34              -  mov ecx,[eax+34]
"FC3.dll"+109EA2A: 0F 28 5D D0           -  movaps xmm3,[ebp-30]
// ---------- DONE INJECTING  ----------
"FC3.dll"+109EA2E: 89 4D A4              -  mov [ebp-5C],ecx
"FC3.dll"+109EA31: 8B 50 38              -  mov edx,[eax+38]
"FC3.dll"+109EA34: 89 55 A8              -  mov [ebp-58],edx
"FC3.dll"+109EA37: 8B 40 3C              -  mov eax,[eax+3C]
"FC3.dll"+109EA3A: 89 45 AC              -  mov [ebp-54],eax
"FC3.dll"+109EA3D: 0F 28 65 A0           -  movaps xmm4,[ebp-60]
"FC3.dll"+109EA41: 83 C4 08              -  add esp,08
"FC3.dll"+109EA44: 89 75 B8              -  mov [ebp-48],esi
"FC3.dll"+109EA47: B8 01 00 00 00        -  mov eax,00000001
"FC3.dll"+109EA4C: 8D 95 C0 FE FF FF     -  lea edx,[ebp-00000140]
}

 

Нужно добавить в табличку скрипт и адрес с адресом "flag" наименование сам придумай и назначь на него ГК при значении в адресе "flag" 1 координаты будут считываться,  а при 2 - записываться.


и еще научитесь пользоваться поиском по форуму:

Вот например неплохая тема по телепортам, (там несколько вариантов скриптов):

А здесь ссылка на статью и ещё одно видео:

 

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

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

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

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