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

Dark Souls Prepare to Die Edition Script Teleport

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

Скрипт:

Скрытый текст

{ Game   : DARKSOULS.exe
  Version: 
  Date   : 2017-06-03
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,DARKSOULS.exe,F3 0F 7E 40 10 8B 16) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
label(X)                  // Для других координат повторить
label(Y)
label(Z)
label(Load)
label(flag)
registersymbol(flag)
registersymbol(INJECT)

newmem:
  cmp [flag],1            // При 1 считываем координаты
  jne Load
  mov edx,[eax+10]
  mov [X],edx
  mov edx,[eax+14]
  mov [Z],edx
  mov edx,[eax+18]
  mov [Y],edx
  jmp code

Load:
  cmp [X],0               // Защита от телепорта на нулевые координаты
  je code
  cmp [flag],2            // При 2 записываем координаты
  jne code
  mov edx,[X]
  mov [eax+10],edx
  mov edx,[Z]
  mov [eax+14],edx
  mov edx,[Y]
  mov [eax+18],edx

code:
  mov [flag],0            // Чтобы записать/чтение происходило один раз.
  movq xmm0,[eax+10]
  jmp return

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

INJECT:
  jmp newmem
return:

[DISABLE]
INJECT:
  db F3 0F 7E 40 10

unregistersymbol(flag)
unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DARKSOULS.exe"+96CC1A

"DARKSOULS.exe"+96CBFF: 74 45                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC01: 8B 70 10              -  mov esi,[eax+10]
"DARKSOULS.exe"+96CC04: 85 F6                 -  test esi,esi
"DARKSOULS.exe"+96CC06: 74 3E                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC08: 8B 45 08              -  mov eax,[ebp+08]
"DARKSOULS.exe"+96CC0B: E8 10 E4 FF FF        -  call DARKSOULS.exe+96B020
"DARKSOULS.exe"+96CC10: 85 C0                 -  test eax,eax
"DARKSOULS.exe"+96CC12: 74 32                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC14: 8B 40 28              -  mov eax,[eax+28]
"DARKSOULS.exe"+96CC17: 8B 40 1C              -  mov eax,[eax+1C]
// ---------- INJECTING HERE ----------
"DARKSOULS.exe"+96CC1A: F3 0F 7E 40 10        -  movq xmm0,[eax+10]
// ---------- DONE INJECTING  ----------
"DARKSOULS.exe"+96CC1F: 8B 16                 -  mov edx,[esi]
"DARKSOULS.exe"+96CC21: 8B 52 08              -  mov edx,[edx+08]
"DARKSOULS.exe"+96CC24: 66 0F D6 44 24 10     -  movq [esp+10],xmm0
"DARKSOULS.exe"+96CC2A: F3 0F 7E 40 18        -  movq xmm0,[eax+18]
"DARKSOULS.exe"+96CC2F: 8D 44 24 10           -  lea eax,[esp+10]
"DARKSOULS.exe"+96CC33: 50                    -  push eax
"DARKSOULS.exe"+96CC34: 8B CE                 -  mov ecx,esi
"DARKSOULS.exe"+96CC36: 66 0F D6 44 24 1C     -  movq [esp+1C],xmm0
"DARKSOULS.exe"+96CC3C: FF D2                 -  call edx
"DARKSOULS.exe"+96CC3E: 5E                    -  pop esi
}

 

Видео:

Таблица:

 

DARKSOULS_03062017.CT

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


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

ЗЫ: Забыл добавить защиту от случайного нажатия пользователем на 2 (телепорт), без предварительной записи координат (1) -> поправил в скрипте, табличку перезалил. 

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


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

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


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

Телепорт на много точек

Скрипт "Teleport Many Points":

Скрытый текст

{ Game   : DARKSOULS.exe
  Version:
  Date   : 2017-06-03
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,DARKSOULS.exe,F3 0F 7E 40 10 8B 16) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
alloc(X,$400)
alloc(Y,$400)
alloc(Z,$400)
label(Load)
label(FlagSave)
registersymbol(FlagSave)
label(FlagLoad)
registersymbol(FlagLoad)
registersymbol(INJECT)

newmem:
  push ebx
  cmp [FlagSave],0
  je Load
  mov ebx,[FlagSave]
  dec ebx
  mov edx,[eax+10]
  mov [X+ebx*4],edx
  mov edx,[eax+14]
  mov [Z+ebx*4],edx
  mov edx,[eax+18]
  mov [Y+ebx*4],edx
  mov [FlagSave],0        // Для того, чтобы было один раз.
  jmp code

Load:
  cmp [FlagLoad],0
  je code
  mov ebx,[FlagLoad]
  dec ebx
  cmp [X+ebx*4],0         // Защита от телепорта на нулевые координаты
  je code
  mov edx,[X+ebx*4]
  mov [eax+10],edx
  mov edx,[Z+ebx*4]
  mov [eax+14],edx
  mov edx,[Y+ebx*4]
  mov [eax+18],edx
  mov [FlagLoad],0        // Для того, чтобы было один раз.

code:
  pop ebx
  movq xmm0,[eax+10]
  jmp return

FlagSave:
  dd 0
FlagLoad:
  dd 0

INJECT:
  jmp newmem
return:

[DISABLE]
INJECT:
  db F3 0F 7E 40 10

unregistersymbol(FlagSave)
unregistersymbol(FlagLoad)
unregistersymbol(INJECT)
dealloc(X)
dealloc(Y)
dealloc(Z)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DARKSOULS.exe"+96CC1A

"DARKSOULS.exe"+96CBFF: 74 45                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC01: 8B 70 10              -  mov esi,[eax+10]
"DARKSOULS.exe"+96CC04: 85 F6                 -  test esi,esi
"DARKSOULS.exe"+96CC06: 74 3E                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC08: 8B 45 08              -  mov eax,[ebp+08]
"DARKSOULS.exe"+96CC0B: E8 10 E4 FF FF        -  call DARKSOULS.exe+96B020
"DARKSOULS.exe"+96CC10: 85 C0                 -  test eax,eax
"DARKSOULS.exe"+96CC12: 74 32                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC14: 8B 40 28              -  mov eax,[eax+28]
"DARKSOULS.exe"+96CC17: 8B 40 1C              -  mov eax,[eax+1C]
// ---------- INJECTING HERE ----------
"DARKSOULS.exe"+96CC1A: F3 0F 7E 40 10        -  movq xmm0,[eax+10]
// ---------- DONE INJECTING  ----------
"DARKSOULS.exe"+96CC1F: 8B 16                 -  mov edx,[esi]
"DARKSOULS.exe"+96CC21: 8B 52 08              -  mov edx,[edx+08]
"DARKSOULS.exe"+96CC24: 66 0F D6 44 24 10     -  movq [esp+10],xmm0
"DARKSOULS.exe"+96CC2A: F3 0F 7E 40 18        -  movq xmm0,[eax+18]
"DARKSOULS.exe"+96CC2F: 8D 44 24 10           -  lea eax,[esp+10]
"DARKSOULS.exe"+96CC33: 50                    -  push eax
"DARKSOULS.exe"+96CC34: 8B CE                 -  mov ecx,esi
"DARKSOULS.exe"+96CC36: 66 0F D6 44 24 1C     -  movq [esp+1C],xmm0
"DARKSOULS.exe"+96CC3C: FF D2                 -  call edx
"DARKSOULS.exe"+96CC3E: 5E                    -  pop esi
}

 

Видео: 

Табличка - здесь.

 

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


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

А как сделать телепорт через выпадающий список ? Точнее как будет правильно его сделать ?
Хочу вбить координаты, что бы по ним потом быстро телепортироватся через выпадающий список.

Что то такого плана

 

Скрытый текст

22860ca5f642.png

 

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

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


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

Хочу вбить координаты, что бы по ним потом быстро телепортироватся

А как ты угадаешь, что координаты правильные и ты сквозь текстуру после телепорта не провалишься?

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


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

А как ты угадаешь, что координаты правильные и ты сквозь текстуру после телепорта не провалишься?

 

Добавить проверку на результат вызова функции расчета коллизии. Она же постоянно вычисляется, если добавить свои координаты и вызывать функцию, то получим что-то типа 1 за пределами карты, 0 в пределах карты.

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


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

А как ты угадаешь, что координаты правильные и ты сквозь текстуру после телепорта не провалишься?

Так есть же координаты X Y Z, я их сохраню на точке которой надо.

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


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

А как сделать телепорт через выпадающий список ? 

Скрипт:

Скрытый текст

{ Game   : DARKSOULS.exe
  Version:
  Date   : 2017-06-03
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(INJECT,DARKSOULS.exe,F3 0F 7E 40 10 8B 16) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
alloc(X,$400)
alloc(Y,$400)
alloc(Z,$400)
label(Load)
label(FlagSave)
registersymbol(FlagSave)
label(FlagSave1)
registersymbol(FlagSave1)
label(FlagLoad)
registersymbol(FlagLoad)
registersymbol(INJECT)

newmem:
  push ebx
  cmp [FlagSave],0
  je @f
  mov ebx,[FlagSave]
  dec ebx
  mov edx,[eax+10]
  mov [X+ebx*4],edx
  mov edx,[eax+14]
  mov [Z+ebx*4],edx
  mov edx,[eax+18]
  mov [Y+ebx*4],edx
  mov [FlagSave],0        // Для того, чтобы было один раз.
  jmp code

@@:                       // 1 точка - FireLink
   cmp [FlagSave1],1
  jne @f
  mov ebx,[FlagSave1]
  dec ebx
  mov [X+ebx*4],(float)-51.62
  mov [Z+ebx*4],(float)-60.58
  mov [Y+ebx*4],(float)54.44
  mov [FlagSave1],0       // Для того, чтобы было один раз.
  jmp code

@@:                       // 2 точка - Screw
  cmp [FlagSave1],2
  jne @f
  mov ebx,[FlagSave1]
  dec ebx
  mov [X+ebx*4],(float)-24.38
  mov [Z+ebx*4],(float)-51.54
  mov [Y+ebx*4],(float)107.53
  mov [FlagSave1],0       // Для того, чтобы было один раз.
  jmp code

@@:                       // 3 точка - Soul
  cmp [FlagSave1],3
  jne Load
  mov ebx,[FlagSave1]
  dec ebx
  mov [X+ebx*4],(float)18.11
  mov [Z+ebx*4],(float)-157.35
  mov [Y+ebx*4],(float)75.00
  mov [FlagSave1],0       // Для того, чтобы было один раз.
  jmp code

Load:
  cmp [FlagLoad],0
  je code
  mov ebx,[FlagLoad]
  dec ebx
  cmp [X+ebx*4],0         // Защита от телепорта на нулевые координаты
  je code
  mov edx,[X+ebx*4]
  mov [eax+10],edx
  mov edx,[Z+ebx*4]
  mov [eax+14],edx
  mov edx,[Y+ebx*4]
  mov [eax+18],edx
  mov [FlagLoad],0        // Для того, чтобы было один раз.

code:
  pop ebx
  movq xmm0,[eax+10]
  jmp return

FlagSave:
  dd 0
FlagSave1:
  dd 0
FlagLoad:
  dd 0

INJECT:
  jmp newmem
return:

[DISABLE]
INJECT:
  db F3 0F 7E 40 10

unregistersymbol(FlagSave)
unregistersymbol(FlagSave1)
unregistersymbol(FlagLoad)
unregistersymbol(INJECT)
dealloc(X)
dealloc(Y)
dealloc(Z)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "DARKSOULS.exe"+96CC1A

"DARKSOULS.exe"+96CBFF: 74 45                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC01: 8B 70 10              -  mov esi,[eax+10]
"DARKSOULS.exe"+96CC04: 85 F6                 -  test esi,esi
"DARKSOULS.exe"+96CC06: 74 3E                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC08: 8B 45 08              -  mov eax,[ebp+08]
"DARKSOULS.exe"+96CC0B: E8 10 E4 FF FF        -  call DARKSOULS.exe+96B020
"DARKSOULS.exe"+96CC10: 85 C0                 -  test eax,eax
"DARKSOULS.exe"+96CC12: 74 32                 -  je DARKSOULS.exe+96CC46
"DARKSOULS.exe"+96CC14: 8B 40 28              -  mov eax,[eax+28]
"DARKSOULS.exe"+96CC17: 8B 40 1C              -  mov eax,[eax+1C]
// ---------- INJECTING HERE ----------
"DARKSOULS.exe"+96CC1A: F3 0F 7E 40 10        -  movq xmm0,[eax+10]
// ---------- DONE INJECTING  ----------
"DARKSOULS.exe"+96CC1F: 8B 16                 -  mov edx,[esi]
"DARKSOULS.exe"+96CC21: 8B 52 08              -  mov edx,[edx+08]
"DARKSOULS.exe"+96CC24: 66 0F D6 44 24 10     -  movq [esp+10],xmm0
"DARKSOULS.exe"+96CC2A: F3 0F 7E 40 18        -  movq xmm0,[eax+18]
"DARKSOULS.exe"+96CC2F: 8D 44 24 10           -  lea eax,[esp+10]
"DARKSOULS.exe"+96CC33: 50                    -  push eax
"DARKSOULS.exe"+96CC34: 8B CE                 -  mov ecx,esi
"DARKSOULS.exe"+96CC36: 66 0F D6 44 24 1C     -  movq [esp+1C],xmm0
"DARKSOULS.exe"+96CC3C: FF D2                 -  call edx
"DARKSOULS.exe"+96CC3E: 5E                    -  pop esi
}

 

Видео: 

Табличка:

DARKSOULS_220817.CT

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


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

Так есть же координаты X Y Z, я их сохраню на точке которой надо.

Подожди видео.

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


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

В очередной раз спасибо ! То что надо. Концовка видео эпичная :lol:

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


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

Я не могу понять как он понял что это *Соответственно +10 а это +14
Время на видео 22:23
https://www.youtube.com/watch?time_continue=319&v=8RmtjjuDnAY&feature=emb_logo

Подскажите пожалуйста.

Мои данны вот.
https://i.imgur.com/TwBhRZB.png

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


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

Я не могу понять как он понял что это *Соответственно +10 а это +14
Время на видео 22:23

По 4 байта - размер координат. 

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


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

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

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

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

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

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

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

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

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