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

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


Partizan

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

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

Спойлер

[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]

 

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

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

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
Ссылка на комментарий
Поделиться на другие сайты

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

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 Очень мешает. Поэтому девушки меня и любят)

 

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

  • 2 недели спустя...
9 часов назад, Partizan сказал:

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

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

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

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

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

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