Перейти к содержанию
Авторизация  
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

  • Плюс 6

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


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

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

  • Плюс 2

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


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

 

  • Плюс 2

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


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

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

Скрипт "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
}

 

Видео: 

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

 

  • Плюс 3

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


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

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

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

 

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

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

  • Плюс 3

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


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

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

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

  • Плюс 1

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


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

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

  • Плюс 1

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×

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

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