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

Hero Siege v5.3.1.2(пиратка)

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

Скрипт на жизни и ману

Спойлер

[ENABLE]
aobscanmodule(hp_mp,Hero_Siege.exe,ff 76 ? 8d 46 ? 50 e8 ? ? ? ? 83 c4 ? f7 46 2c ? ? ? ? 74 ? 8d 46 ? c7 86 78 0c 00 00)
alloc(newmem,$1000)
label(return)
label(val)
registersymbol(val)
registersymbol(hp_mp)

newmem:
  push ebx
  mov ebx,[esi+08]
  fld qword ptr [val]
 fstp qword ptr [ebx]
  fld qword ptr [val]
 fstp qword ptr [ebx+10]
  fld qword ptr [val]
 fstp qword ptr [ebx+20]
  fld qword ptr [val]
 fstp qword ptr [ebx+30]
  pop ebx
  push [esi+08]
  lea eax,[esi+20]
  jmp return

val:
dq (double)1000000

hp_mp:
  jmp newmem
  nop
return:

[DISABLE]
hp_mp:
db FF 76 08 8D 46 20
unregistersymbol(val)
unregistersymbol(hp_mp)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Hero_Siege.exe+701355
Hero_Siege.exe+70132D: 68 00 00 3F 40                 - push 403F0000
Hero_Siege.exe+701332: 6A 00                          - push 00
Hero_Siege.exe+701334: 50                             - push eax
Hero_Siege.exe+701335: 8D 86 B0 00 00 00              - lea eax,[esi+000000B0]
Hero_Siege.exe+70133B: 50                             - push eax
Hero_Siege.exe+70133C: E8 DF 56 B1 FF                 - call Hero_Siege.exe+216A20
Hero_Siege.exe+701341: 83 C4 10                       - add esp,10
Hero_Siege.exe+701344: 8D 86 B0 00 00 00              - lea eax,[esi+000000B0]
Hero_Siege.exe+70134A: C7 86 78 0C 00 00 52 02 00 00  - mov [esi+00000C78],00000252
Hero_Siege.exe+701354: 50                             - push eax
// ---------- INJECTING HERE ----------
Hero_Siege.exe+701355: FF 76 08                       - push [esi+08]
// ---------- DONE INJECTING  ----------
Hero_Siege.exe+701358: 8D 46 20                       - lea eax,[esi+20]
Hero_Siege.exe+70135B: 50                             - push eax
Hero_Siege.exe+70135C: E8 9F 75 99 FF                 - call Hero_Siege.exe+98900
Hero_Siege.exe+701361: 83 C4 0C                       - add esp,0C
Hero_Siege.exe+701364: F7 46 2C FF FF FF 00           - test [esi+2C],00FFFFFF
Hero_Siege.exe+70136B: 74 7B                          - je Hero_Siege.exe+7013E8
Hero_Siege.exe+70136D: 8D 46 20                       - lea eax,[esi+20]
Hero_Siege.exe+701370: C7 86 78 0C 00 00 53 02 00 00  - mov [esi+00000C78],00000253
Hero_Siege.exe+70137A: 50                             - push eax
Hero_Siege.exe+70137B: E8 90 C5 FD 06                 - call Hero_Siege.exe+76DD910
}

 

 

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


Ссылка на сообщение
Поделиться на другие сайты
fld qword ptr [val]
fstp qword ptr [ebx]
fld qword ptr [val]
fstp qword ptr [ebx+10]
fld qword ptr [val]
fstp qword ptr [ebx+20]
fld qword ptr [val]
fstp qword ptr [ebx+30]

Зачем так нагородил? Идиотизм...
 

Один раз загрузил на  FPU стек, и один раз в конце вытолкнул.

fld qword ptr [val]
fst qword ptr [ebx]
fst qword ptr [ebx+10]
fst qword ptr [ebx+20]
fstp qword ptr [ebx+30]

 

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


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

Мдаааа чтот я тупонул

FLD src TOPSWR-=1; ST(0)=src; Загрузка операнда в вершину стека
FST dst dst=ST(0); Сохранение вершины стека в память
FSTP dst dst=ST(0); TOPSWR+=1; Сохранение вершины стека в память с выталкиванием
Спойлер

[ENABLE]
aobscanmodule(hp_mp,Hero_Siege.exe,ff 76 ? 8d 46 ? 50 e8 ? ? ? ? 83 c4 ? f7 46 2c ? ? ? ? 74 ? 8d 46 ? c7 86 78 0c 00 00)
alloc(newmem,$1000)
label(return)
label(val)
registersymbol(val)
registersymbol(hp_mp)

newmem:
  push ebx
  mov ebx,[esi+08]
  fld qword ptr [val]
  fst qword ptr [ebx]
  fst qword ptr [ebx+10]
  fst qword ptr [ebx+20]
 fstp qword ptr [ebx+30]
  pop ebx
  push [esi+08]
  lea eax,[esi+20]
  jmp return

val:
dq (double)1000000

hp_mp:
  jmp newmem
  nop
return:

[DISABLE]
hp_mp:
db FF 76 08 8D 46 20
unregistersymbol(val)
unregistersymbol(hp_mp)
dealloc(newmem)

 

 

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

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


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

я тупонул

Да там если разобраться и не раз... и так работать будет не плохо..

Спойлер

  newmem:
  mov eax,[esi+08]
  fld qword  [val]
  fst qword  [eax]
  fst qword  [eax+10]
  fst qword  [eax+20]
  fstp qword [eax+30]
  push [esi+08]
  lea eax,[esi+20]
  jmp return

 

 

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


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

Да там если разобраться и не раз... и так работать будет не плохо..

  Показать контент


  newmem:
  mov eax,[esi+08]
  fld qword  [val]
  fst qword  [eax]
  fst qword  [eax+10]
  fst qword  [eax+20]
  fstp qword [eax+30]
  push [esi+08]
  lea eax,[esi+20]
  jmp return

 

 

А разница? Просто я не стал трогать регистр который в оригинальном коде используется

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

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


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

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

Открою не большой секрет (только не кому не рассказывай об этом)  но умеет перезаписываться :)  

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


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

Открою не большой секрет (только не кому не рассказывай об этом)  но умеет перезаписываться :)  

Ну раз Вы такой умный и придирчивый. То с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx

Хотяб на примере той же medieval dynasty. Уж очень интересна данная тема.

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


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

с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx

А чего там умничать? Берешь и ломаешь. Как и другие движки.

 

29 минут назад, Partizan сказал:

на примере той же medieval dynasty

Самому слабо? Ты же вроде как в разрабы метишь.

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


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

Странная игра после нескольких перезапусков (3-4) меняет смещения и после создания нового перса. Рабочее остается только нулевое смещение а остальные переезжают.

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


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

Ну раз Вы такой умный и придирчивый. То с умничалибы урок по читингу в играх на Unreal Engine v.4.xxx

Хотяб на примере той же medieval dynasty. Уж очень интересна данная тема.

У него проблем с движком нет. К слову, это @LIRW 

Значит не от движка зависит. Говорят же, плохому танцору ***** мешают.

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


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

Ох зря Вы начали про танцоров и то чего им мешает.(меня бомбануло)

1. Начнём с версии движков Hatred и Medieval Dynasty

Engine.png

Как можно заметить по скрину. Разные версии.

2. С Hatred нет ни каких проблем. 

На адрессе патронов сработала инструкция которая работает ТОЛЬКО с адрессом патронов

Hatred.png

Поэтому отсеивать как  во многих современных играх ни чего не надо

Спойлер

[ENABLE]
aobscanmodule(No_Reload,Hatred-Win64-Shipping.exe,8bxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx48xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0fb6xxxxxxxxxxxxxxxxxxxxxxxxxxxx48xxxxxxxxxx48xxxxxx49)
alloc(newmem,$1000,No_Reload)
label(return)
registersymbol(No_Reload)

newmem:
  push [rcx+00000384]
   pop [rcx+00000354]
  mov eax,[rcx+00000354]
  jmp return

No_Reload:
  jmp newmem
  nop
return:

[DISABLE]
No_Reload:
db 8B 81 54 03 00 00
unregistersymbol(No_Reload)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Hatred-Win64-Shipping.exe+1A4860
Hatred-Win64-Shipping.exe+1A4844: F3 0F 11 0F        - movss [rdi],xmm1
Hatred-Win64-Shipping.exe+1A4848: F3 0F 10 4C 24 44  - movss xmm1,[rsp+44]
Hatred-Win64-Shipping.exe+1A484E: F3 0F 5E C8        - divss xmm1,xmm0
Hatred-Win64-Shipping.exe+1A4852: F3 0F 11 4F 04     - movss [rdi+04],xmm1
Hatred-Win64-Shipping.exe+1A4857: 48 83 C4 30        - add rsp,30
Hatred-Win64-Shipping.exe+1A485B: 5F                 - pop rdi
Hatred-Win64-Shipping.exe+1A485C: C3                 - ret 
Hatred-Win64-Shipping.exe+1A485D: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A485E: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A485F: CC                 - int 3 
// ---------- INJECTING HERE ----------
Hatred-Win64-Shipping.exe+1A4860: 8B 81 54 03 00 00  - mov eax,[rcx+00000354]
// ---------- DONE INJECTING  ----------
Hatred-Win64-Shipping.exe+1A4866: C3                 - ret 
Hatred-Win64-Shipping.exe+1A4867: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A4868: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A4869: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486A: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486B: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486C: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486D: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486E: CC                 - int 3 
Hatred-Win64-Shipping.exe+1A486F: CC                 - int 3 
}

 

3. Medieval Dynasty

Возьмём к примеру туже выносливость.

Это полоска Float шкала пустая это 0 шкала целая это 1

Поставив бряк на адрессе можно увидеть следущие

Medieval.png

Как видно со скрина с инструкцией работает куча адрессов и надо отсеивать.(схожа ситуация на движок GameMaker)

Но как можно заметить в регистрах R12 и R13 хранится начало структуры.(но так не везде и не во всех случаях)

Посмотрим структуру.

Str-01.png

Смещение 490 и есть выносливость ГГ

 

4. Как отсеить?

С отсеивание у меня ни чего не вышло.

Ни по структуре (это вообще бред её смотреть) ни по стеку.

Но если посмотреть на начало структуры то будет указатель.

Ставлю на него бряк.

BP.png

И да. Нашласть инструкция которая работает только с нашей структурой.

Instr.png

Дальше всё просто. Пишем такой скрипт чтоб можно было добовлять указатели.

Спойлер

[ENABLE]
aobscanmodule(Struct,Medieval_Dynasty-Win64-Shipping.exe,48 8B ? F3 0F ? ? ? ? E8 ? ? ? ? 48 8B ? 4C 8D ? ? ? 48 8B ? FF 93 ? ? ? ? 48 8B ? ? ? 48 83 C4 ? 5F C3 CC CC 48 8B)
alloc(newmem,$1000,Struct)
label(return)
label(_StrPl)
registersymbol(_StrPl)
registersymbol(Struct)

newmem:
  mov [_StrPl],rcx
  mov rbx,[rcx]
  movss [rsp+38],xmm1
  jmp return

_StrPl:
dd 00

Struct:
  jmp newmem
  nop 4
return:


[DISABLE]
Struct:
db 48 8B 19 F3 0F 11 4C 24 38
unregistersymbol(_StrPl)
unregistersymbol(Struct)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: Medieval_Dynasty-Win64-Shipping.exe+2917074
Medieval_Dynasty-Win64-Shipping.exe+291705B: C3                    - ret 
Medieval_Dynasty-Win64-Shipping.exe+291705C: CC                    - int 3 
Medieval_Dynasty-Win64-Shipping.exe+291705D: CC                    - int 3 
Medieval_Dynasty-Win64-Shipping.exe+291705E: CC                    - int 3 
Medieval_Dynasty-Win64-Shipping.exe+291705F: CC                    - int 3 
Medieval_Dynasty-Win64-Shipping.exe+2917060: 48 89 5C 24 08        - mov [rsp+08],rbx
Medieval_Dynasty-Win64-Shipping.exe+2917065: 57                    - push rdi
Medieval_Dynasty-Win64-Shipping.exe+2917066: 48 83 EC 20           - sub rsp,20
Medieval_Dynasty-Win64-Shipping.exe+291706A: 48 8B 15 67 EA C0 01  - mov rdx,[Medieval_Dynasty-Win64-Shipping.exe+4525AD8]
Medieval_Dynasty-Win64-Shipping.exe+2917071: 48 8B F9              - mov rdi,rcx
// ---------- INJECTING HERE ----------
Medieval_Dynasty-Win64-Shipping.exe+2917074: 48 8B 19              - mov rbx,[rcx]
// ---------- DONE INJECTING  ----------
Medieval_Dynasty-Win64-Shipping.exe+2917077: F3 0F 11 4C 24 38     - movss [rsp+38],xmm1
Medieval_Dynasty-Win64-Shipping.exe+291707D: E8 9E F7 73 FE        - call Medieval_Dynasty-Win64-Shipping.exe+1056820
Medieval_Dynasty-Win64-Shipping.exe+2917082: 48 8B D0              - mov rdx,rax
Medieval_Dynasty-Win64-Shipping.exe+2917085: 4C 8D 44 24 38        - lea r8,[rsp+38]
Medieval_Dynasty-Win64-Shipping.exe+291708A: 48 8B CF              - mov rcx,rdi
Medieval_Dynasty-Win64-Shipping.exe+291708D: FF 93 18 02 00 00     - call qword ptr [rbx+00000218]
Medieval_Dynasty-Win64-Shipping.exe+2917093: 48 8B 5C 24 30        - mov rbx,[rsp+30]
Medieval_Dynasty-Win64-Shipping.exe+2917098: 48 83 C4 20           - add rsp,20
Medieval_Dynasty-Win64-Shipping.exe+291709C: 5F                    - pop rdi
Medieval_Dynasty-Win64-Shipping.exe+291709D: C3                    - ret 
}

 

И добавляем указатели.

_StrPl+474=Еда

_StrPl+488=Вода

_StrPl+490=Выносливость

 

P.S.

Не надо не разобравшись в ситуации начинать говорить про танцоров и то чего им мешает

Меня это задело (практически оскарбило)

 

P.S.2 Этот способ работает не на всех играх с современным UE

Поэтому я писал ранее. Запилите урок по этому движку.

 

P.S.3 Kvazimado Вам ни чего не мешает???

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

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


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

Ух, прям как будто в Херасиме при бомбардировке побывал. Благо свинцовые трусы я не забыл надеть.

Столько написал, но ничего не сделал. Не надо так!

Сам же сказал, у тебя проблема с игрой на движке UE 4.****. Никаких уточнений. 

PS Не надо не разобравшись в ситуации начинать бомбить.

Меня это не задело (практически пофиг).

PS 2

Всем макарошек с котлетками!

PS 3

@Partizan Очень мешает. Поэтому девушки меня и любят)

 

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


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

Ну чо как? Поддалась игра али бросил, так и не начав?

@Partizan

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


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

Ее очень часто обновляют. Запаришся каждый раз переделывать

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


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

Ее очень часто обновляют. Запаришся каждый раз переделывать

Сделай универсально, чтобы не приходилось переделывать при каждом обновлении.

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


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

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

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

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

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

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

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

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

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