Garik66

Пример реализации трейнера с вариациями одной и той же опции

2 сообщения в этой теме

Скрипты:

"God Mod":

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

{ Game   : DARKSOULS.exe
  Version: 
  Date   : 2016-11-29
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(GodMod1,DARKSOULS.exe,89 85 D4 02 00 00 83) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(GodMod1)

newmem:
  cmp [ebp+54],0
  jne code
  mov eax,[ebp+000002D8]

code:
  mov [ebp+000002D4],eax
  jmp return

GodMod1:
  jmp newmem
  db 90
return:

[DISABLE]
GodMod1:
  db 89 85 D4 02 00 00

unregistersymbol(GodMod1)
dealloc(newmem)

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

"DARKSOULS.exe"+A688FB: C7 44 24 08 00 00 00 00  -  mov [esp+08],00000000
"DARKSOULS.exe"+A68903: 8D 85 D8 02 00 00        -  lea eax,[ebp+000002D8]
"DARKSOULS.exe"+A68909: 85 C9                    -  test ecx,ecx
"DARKSOULS.exe"+A6890B: 7D 06                    -  jnl DARKSOULS.exe+A68913
"DARKSOULS.exe"+A6890D: 8D 44 24 08              -  lea eax,[esp+08]
"DARKSOULS.exe"+A68911: EB 08                    -  jmp DARKSOULS.exe+A6891B
"DARKSOULS.exe"+A68913: 3B 08                    -  cmp ecx,[eax]
"DARKSOULS.exe"+A68915: 7F 04                    -  jg DARKSOULS.exe+A6891B
"DARKSOULS.exe"+A68917: 8D 44 24 0C              -  lea eax,[esp+0C]
"DARKSOULS.exe"+A6891B: 8B 00                    -  mov eax,[eax]
// ---------- INJECTING HERE ----------
"DARKSOULS.exe"+A6891D: 89 85 D4 02 00 00        -  mov [ebp+000002D4],eax
// ---------- DONE INJECTING  ----------
"DARKSOULS.exe"+A68923: 83 BD D4 02 00 00 00     -  cmp dword ptr [ebp+000002D4],00
"DARKSOULS.exe"+A6892A: 7F 6C                    -  jg DARKSOULS.exe+A68998
"DARKSOULS.exe"+A6892C: 8B 4D 28                 -  mov ecx,[ebp+28]
"DARKSOULS.exe"+A6892F: 8B 41 2C                 -  mov eax,[ecx+2C]
"DARKSOULS.exe"+A68932: 53                       -  push ebx
"DARKSOULS.exe"+A68933: 8A 9D FF 01 00 00        -  mov bl,[ebp+000001FF]
"DARKSOULS.exe"+A68939: D0 EB                    -  shr bl,1
"DARKSOULS.exe"+A6893B: 80 E3 01                 -  and bl,01
"DARKSOULS.exe"+A6893E: 85 C0                    -  test eax,eax
"DARKSOULS.exe"+A68940: 74 0E                    -  je DARKSOULS.exe+A68950
}

 

"God Mod1":

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

{ Game   : DARKSOULS.exe
  Version: 
  Date   : 2016-11-29
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]
aobscanmodule(GodMod1,DARKSOULS.exe,89 85 D4 02 00 00 83) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(GodMod1)

newmem:
  cmp [ebp+54],0
  jne code
  cmp eax,#10
  ja code
  mov eax,#10

code:
  mov [ebp+000002D4],eax
  jmp return

GodMod1:
  jmp newmem
  db 90
return:

[DISABLE]
GodMod1:
  db 89 85 D4 02 00 00

unregistersymbol(GodMod1)
dealloc(newmem)

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

"DARKSOULS.exe"+A688FB: C7 44 24 08 00 00 00 00  -  mov [esp+08],00000000
"DARKSOULS.exe"+A68903: 8D 85 D8 02 00 00        -  lea eax,[ebp+000002D8]
"DARKSOULS.exe"+A68909: 85 C9                    -  test ecx,ecx
"DARKSOULS.exe"+A6890B: 7D 06                    -  jnl DARKSOULS.exe+A68913
"DARKSOULS.exe"+A6890D: 8D 44 24 08              -  lea eax,[esp+08]
"DARKSOULS.exe"+A68911: EB 08                    -  jmp DARKSOULS.exe+A6891B
"DARKSOULS.exe"+A68913: 3B 08                    -  cmp ecx,[eax]
"DARKSOULS.exe"+A68915: 7F 04                    -  jg DARKSOULS.exe+A6891B
"DARKSOULS.exe"+A68917: 8D 44 24 0C              -  lea eax,[esp+0C]
"DARKSOULS.exe"+A6891B: 8B 00                    -  mov eax,[eax]
// ---------- INJECTING HERE ----------
"DARKSOULS.exe"+A6891D: 89 85 D4 02 00 00        -  mov [ebp+000002D4],eax
// ---------- DONE INJECTING  ----------
"DARKSOULS.exe"+A68923: 83 BD D4 02 00 00 00     -  cmp dword ptr [ebp+000002D4],00
"DARKSOULS.exe"+A6892A: 7F 6C                    -  jg DARKSOULS.exe+A68998
"DARKSOULS.exe"+A6892C: 8B 4D 28                 -  mov ecx,[ebp+28]
"DARKSOULS.exe"+A6892F: 8B 41 2C                 -  mov eax,[ecx+2C]
"DARKSOULS.exe"+A68932: 53                       -  push ebx
"DARKSOULS.exe"+A68933: 8A 9D FF 01 00 00        -  mov bl,[ebp+000001FF]
"DARKSOULS.exe"+A68939: D0 EB                    -  shr bl,1
"DARKSOULS.exe"+A6893B: 80 E3 01                 -  and bl,01
"DARKSOULS.exe"+A6893E: 85 C0                    -  test eax,eax
"DARKSOULS.exe"+A68940: 74 0E                    -  je DARKSOULS.exe+A68950
}

 

LUA-скрипт:

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

memrec=getAddressList().getMemoryRecordByDescription("God Mod")
memrec1=getAddressList().getMemoryRecordByDescription("God Mod1")

function GodMod2()
  if memoryrecord_isActive(memrec) then
    memoryrecord_unfreeze(memrec)
    CETrainer.CELabel3.Caption = "OFF"
    CETrainer.CELabel3.Font.setColor(0x00000ff)
    PlaySound(findTableFile([[Deactivate]]))
  else
    memoryrecord_unfreeze(memrec1)
    sleep(100)
    memoryrecord_freeze(memrec)
    CETrainer.CELabel3.Caption = "ON"
    CETrainer.CELabel3.Font.setColor(0x0008000)
    CETrainer.CELabel4.Caption = "OFF"
    CETrainer.CELabel4.Font.setColor(0x00000ff)
    PlaySound(findTableFile([[Activate]]))
  end
end
createHotkey(GodMod2,VK_NUMPAD1)

function GodMod3()
  if memoryrecord_isActive(memrec1) then
    memoryrecord_unfreeze(memrec1)
    CETrainer.CELabel4.Caption = "OFF"
    CETrainer.CELabel4.Font.setColor(0x00000ff)
    PlaySound(findTableFile([[Deactivate]]))
  else
    memoryrecord_unfreeze(memrec)
    sleep(100)
    memoryrecord_freeze(memrec1)
    CETrainer.CELabel4.Caption = "ON"
    CETrainer.CELabel4.Font.setColor(0x0008000)
    CETrainer.CELabel3.Caption = "OFF"
    CETrainer.CELabel3.Font.setColor(0x00000ff)
    PlaySound(findTableFile([[Activate]]))
  end
end
createHotkey(GodMod3,VK_NUMPAD2)

 

 

Видео:

 

 

Таблица:

DARKSOULS777777.ct

 

Трейнер:

DS_GodMod_v1.01.EXE

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

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


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

Привет Игорь, Очень полезный видео урок, спасибо Игорь.

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

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


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

Создайте аккаунт или войдите для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас