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

Создание клонов инструкций по сохранённым адресам


Pitronic

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

Начал ломать игру Saints Row 2 на коды разработчиков. Выяснялось что все чит коды находятся в одном адресе, их 32, при включении разных чит кодов, разное значение в адресе, включение нескольких суммирует значение в адресе, в одном скрипте муторное дело скрипт писать на 32 чита, решил сделать эксперемент, черех инструмент code saves сохранил в блокноте 32 адреса в которых потом для каждого чита сделать отдельный скрипт, вопрос возможно ли сделать клоны инструкций по сохранённым адресам, чтоб они работали так же как в оригиннальной инструкции, и второй вопрос как записать этот скрип в луа чтоб он автоматически применился при запуске трейнера. Скрипт под спойлером. достаточно для примера с одним адресом. остальное сам доклепаю.

Спойлер

{ Game   : SR2_pc.exe
  Version: 
  Date   : 2021-04-25
  Author : Pitronic

  This script does blah blah blah
}

[ENABLE]

aobscan(_save_,8B * * * * * 8B * * * * * 75 * 85 * 74 * 32)
alloc(newmem_save_,$1000)

label(code_save_)
label(return_save_)

registersymbol(_save_)
registersymbol(code_save_)

newmem_save_:
push eax
// [00010278] адрес в который надо скопировать  инструкцию

code_save_:
// mov ebx,[SR2_pc.exe+2126E14]
readmem(_save_,6)
pop eax
jmp return_save_

_save_:
jmp newmem_save_
db 90
return_save_:


[DISABLE]
_save_:
//  db 8B 1D 14 6E 52 02
readmem(code_save_,6)

unregistersymbol(_save_)
unregistersymbol(code_save_)

dealloc(newmem_save_)

{
// ORIGINAL CODE - INJECTION POINT: SR2_pc.exe.text+DCD68

SR2_pc.exe.text+DCD4F: CC                    - int 3 
SR2_pc.exe.text+DCD50: 83 EC 0C              - sub esp,0C
SR2_pc.exe.text+DCD53: 53                    - push ebx
SR2_pc.exe.text+DCD54: 8B 1D 10 6E 52 02     - mov ebx,[SR2_pc.exe+2126E10]
SR2_pc.exe.text+DCD5A: 85 DB                 - test ebx,ebx
SR2_pc.exe.text+DCD5C: 55                    - push ebp
SR2_pc.exe.text+DCD5D: 56                    - push esi
SR2_pc.exe.text+DCD5E: 57                    - push edi
SR2_pc.exe.text+DCD5F: 75 39                 - jne SR2_pc.exe.text+DCD9A
SR2_pc.exe.text+DCD61: 80 3D 6F 43 F8 00 00  - cmp byte ptr [SR2_pc.exe+B8436F],00
// ---------- INJECTING HERE ----------
SR2_pc.exe.text+DCD68: 8B 1D 14 6E 52 02     - mov ebx,[SR2_pc.exe+2126E14]
// ---------- DONE INJECTING  ----------
SR2_pc.exe.text+DCD6E: 8B 3D E4 6D 52 02     - mov edi,[SR2_pc.exe+2126DE4]
SR2_pc.exe.text+DCD74: 75 08                 - jne SR2_pc.exe.text+DCD7E
SR2_pc.exe.text+DCD76: 85 FF                 - test edi,edi
SR2_pc.exe.text+DCD78: 74 04                 - je SR2_pc.exe.text+DCD7E
SR2_pc.exe.text+DCD7A: 32 C0                 - xor al,al
SR2_pc.exe.text+DCD7C: EB 02                 - jmp SR2_pc.exe.text+DCD80
SR2_pc.exe.text+DCD7E: B0 01                 - mov al,01
SR2_pc.exe.text+DCD80: 85 DB                 - test ebx,ebx
SR2_pc.exe.text+DCD82: 75 0E                 - jne SR2_pc.exe.text+DCD92
SR2_pc.exe.text+DCD84: 8B 1D 18 6E 52 02     - mov ebx,[SR2_pc.exe+2126E18]
}

 

 

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

  • Xipho закрыл тема
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...

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

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