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

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

Здравствуйте.

Нужна помощь по взлому. Значения магии и кристалов в данной игре - double.

Поиск указателей результатов не дает.

 

Так выглядит область связанная со значением магии в игре.

 

ptpptp.jpg

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

Проблема в том, что в асме я нуб. И как я понял по результатам поиска с double значениями  не  все так просто. Если не трудно, можешь описать действия как меняются значения double? Если что, извините за глупые вопросы.

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

Долго не писал, времени не было.

В общем поломав голову несколько вечеров, я так и не сделал.

Спойлер

[ENABLE]

aobscanmodule(INJECT,_DK_Entrypoint_.exe,FF FF F2 0F 10 44 24 08) // should be unique
alloc(newmem,$1000)

label(code)
label(return)
label(magic)

magic:
dq (double)100000

newmem:

movsd xmm0,[magic]

code:
  movsd xmm0,[esp+08]
  jmp return

INJECT+02:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT+02:
  db F2 0F 10 44 24 08

unregistersymbol(INJECT)
dealloc(newmem)
dealloc(magic)

 

Вот такая фигня приводит к вылету. Позже напишу что еще делал (это был самый первый вариант).

Сильно не пинайте, asm пока еще мой "враг" (а может и на совсем).

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

1 час назад, grafdracula1 сказал:

Вот такая фигня приводит к вылету.

1. Не забываем про тег кода, (если не знаешь как, смотри ФАК)

2. Посмотри мое видео

newmem:

movsd xmm0,[magic]     // это никогда работать не будет

code:
  movsd xmm0,[esp+08]  // так как ты этой инструкцией перезаписываешь значение в регистре.

3. Откуда ты взял, что у тебя тип double? 

Судя по оригинальной инструкции игры:

movsd xmm0,[esp+08]

должен быть float.

4. А это откуда:

dealloc(magic)

5. Попробуй такой скрипт

Спойлер

[ENABLE]
aobscanmodule(INJECT,_DK_Entrypoint_.exe,FF FF F2 0F 10 44 24 08) // should be unique
alloc(newmem,$1000)
label(code)
label(return)
registersymbol(INJECT)

newmem:
  mov [esp+08],(float)100000

code:
  movsd xmm0,[esp+08]
  jmp return

INJECT+02:
  jmp newmem
  db 90
return:

[DISABLE]
INJECT+02:
  db F2 0F 10 44 24 08

unregistersymbol(INJECT)
dealloc(newmem)

 

 

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

Вылетает. Как и после моих манипуляций. Про дабл я решил потому-что CE так обозначил.

А нет у тебя возможности сделать это на своей машине? Игрушка стандартная предустановленная в вин10. Видео и ФАК сейчас посмотрю.

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

17 минут назад, grafdracula1 сказал:

Про дабл я решил потому-что CE так обозначил.

 

Не вижу дабл, по верхнему скрину тоже не вижу. 

А зачем ты работаешь с xmm0?

У тебя же вроде рабочая инструкция

mov [esi+04],eax

делай на этой инструкции.

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

54 минуты назад, grafdracula1 сказал:

Игрушка стандартная предустановленная в вин10. Видео и ФАК сейчас посмотрю.

Игра на английском (не понятно что там нужно делать).

На твоих инструкциях вылет понятен, они работают с 1000 адресами. так что нужен фильтр.

Да и вроде ты прав значения в доубл. Новое значение пишется двумя инструкциями.

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

В 10.03.2018 в 21:25, grafdracula1 сказал:

Так выглядит область связанная со значением магии в игре.

Вот сейчас записал себе 5000 магии, (в качестве фильтра взял значение esi). но это разовый скрипт.

Спойлер

{ Game   : _DK_Entrypoint_.exe
  Version: 
  Date   : 2018-03-15
  Author : Garik66

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJECT,_DK_Entrypoint_.exe,89 46 08 5E 33 CC E8 39) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp esi,1B8E4C2C
  jne code
  mov [esi+04],0
  mov eax,40B38800

code:

  mov [esi+08],eax
  pop esi
  xor ecx,esp
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 89 46 08 5E 33 CC

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "_DK_Entrypoint_.exe"+23C120

"_DK_Entrypoint_.exe"+23C0F5: F2 0F 11 4C 24 08     -  movsd [esp+08],xmm1
"_DK_Entrypoint_.exe"+23C0FB: 8B F1                 -  mov esi,ecx
"_DK_Entrypoint_.exe"+23C0FD: E8 2E FA FF FF        -  call _DK_Entrypoint_.exe+23BB30
"_DK_Entrypoint_.exe"+23C102: F2 0F 10 44 24 08     -  movsd xmm0,[esp+08]
"_DK_Entrypoint_.exe"+23C108: 8B 4C 24 14           -  mov ecx,[esp+14]
"_DK_Entrypoint_.exe"+23C10C: F2 0F 11 44 24 08     -  movsd [esp+08],xmm0
"_DK_Entrypoint_.exe"+23C112: 8B 44 24 08           -  mov eax,[esp+08]
"_DK_Entrypoint_.exe"+23C116: 89 46 04              -  mov [esi+04],eax
"_DK_Entrypoint_.exe"+23C119: 8B 44 24 0C           -  mov eax,[esp+0C]
"_DK_Entrypoint_.exe"+23C11D: C6 06 02              -  mov byte ptr [esi],02
// ---------- INJECTING HERE ----------
"_DK_Entrypoint_.exe"+23C120: 89 46 08              -  mov [esi+08],eax
"_DK_Entrypoint_.exe"+23C123: 5E                    -  pop esi
"_DK_Entrypoint_.exe"+23C124: 33 CC                 -  xor ecx,esp
// ---------- DONE INJECTING  ----------
"_DK_Entrypoint_.exe"+23C126: E8 39 B1 DB 00        -  call _DK_Entrypoint_.exe+FF7264
"_DK_Entrypoint_.exe"+23C12B: 8B E5                 -  mov esp,ebp
"_DK_Entrypoint_.exe"+23C12D: 5D                    -  pop ebp
"_DK_Entrypoint_.exe"+23C12E: C3                    -  ret 
"_DK_Entrypoint_.exe"+23C12F: CC                    -  int 3 
"_DK_Entrypoint_.exe"+23C130: 56                    -  push esi
"_DK_Entrypoint_.exe"+23C131: 8B F1                 -  mov esi,ecx
"_DK_Entrypoint_.exe"+23C133: E8 F8 F9 FF FF        -  call _DK_Entrypoint_.exe+23BB30
"_DK_Entrypoint_.exe"+23C138: 8A 44 24 08           -  mov al,[esp+08]
"_DK_Entrypoint_.exe"+23C13C: C6 06 01              -  mov byte ptr [esi],01
}

 

 

Спойлер

image.thumb.png.0a12535863d7a9334ae85774fdb13a31.png

 

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

А у меня ничего не происходит. Esi сравнивается с адресом инструкции, правильно?

Спойлер

{ Game   : _DK_Entrypoint_.exe
  Version: 
  Date   : 2018-03-15
  Author : Graf

  This script does blah blah blah
}

[ENABLE]

aobscanmodule(INJECT,_DK_Entrypoint_.exe,89 46 08 5E 33 CC E8 39) // should be unique
alloc(newmem,$1000)

label(code)
label(return)

newmem:
  cmp esi,113c120
  jne code
  mov [esi+04],0
  mov eax,40B38800
code:
  mov [esi+08],eax
  pop esi
  xor ecx,esp
  jmp return

INJECT:
  jmp newmem
  nop
return:
registersymbol(INJECT)

[DISABLE]

INJECT:
  db 89 46 08 5E 33 CC

unregistersymbol(INJECT)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: "_DK_Entrypoint_.exe"+23C120

"_DK_Entrypoint_.exe"+23C0F5: F2 0F 11 4C 24 08     -  movsd [esp+08],xmm1
"_DK_Entrypoint_.exe"+23C0FB: 8B F1                 -  mov esi,ecx
"_DK_Entrypoint_.exe"+23C0FD: E8 2E FA FF FF        -  call _DK_Entrypoint_.exe+23BB30
"_DK_Entrypoint_.exe"+23C102: F2 0F 10 44 24 08     -  movsd xmm0,[esp+08]
"_DK_Entrypoint_.exe"+23C108: 8B 4C 24 14           -  mov ecx,[esp+14]
"_DK_Entrypoint_.exe"+23C10C: F2 0F 11 44 24 08     -  movsd [esp+08],xmm0
"_DK_Entrypoint_.exe"+23C112: 8B 44 24 08           -  mov eax,[esp+08]
"_DK_Entrypoint_.exe"+23C116: 89 46 04              -  mov [esi+04],eax
"_DK_Entrypoint_.exe"+23C119: 8B 44 24 0C           -  mov eax,[esp+0C]
"_DK_Entrypoint_.exe"+23C11D: C6 06 02              -  mov byte ptr [esi],02
// ---------- INJECTING HERE ----------
"_DK_Entrypoint_.exe"+23C120: 89 46 08              -  mov [esi+08],eax
"_DK_Entrypoint_.exe"+23C123: 5E                    -  pop esi
"_DK_Entrypoint_.exe"+23C124: 33 CC                 -  xor ecx,esp
// ---------- DONE INJECTING  ----------
"_DK_Entrypoint_.exe"+23C126: E8 39 B1 DB 00        -  call _DK_Entrypoint_.exe+FF7264
"_DK_Entrypoint_.exe"+23C12B: 8B E5                 -  mov esp,ebp
"_DK_Entrypoint_.exe"+23C12D: 5D                    -  pop ebp
"_DK_Entrypoint_.exe"+23C12E: C3                    -  ret 
"_DK_Entrypoint_.exe"+23C12F: CC                    -  int 3 
"_DK_Entrypoint_.exe"+23C130: 56                    -  push esi
"_DK_Entrypoint_.exe"+23C131: 8B F1                 -  mov esi,ecx
"_DK_Entrypoint_.exe"+23C133: E8 F8 F9 FF FF        -  call _DK_Entrypoint_.exe+23BB30
"_DK_Entrypoint_.exe"+23C138: 8A 44 24 08           -  mov al,[esp+08]
"_DK_Entrypoint_.exe"+23C13C: C6 06 01              -  mov byte ptr [esi],01
}

 

 

 

 

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

Только что, grafdracula1 сказал:

Esi сравнивается с адресом инструкции, правильно?

нет. не инструкции. А именно адреса магии. Ну ладно попрощаюсь мне в 5.00 вставать.

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

Игра не очень интересна но вдруг кто захочет покопаться:

Видео:

Спойлер

 

 

Скрипты:
Быстрое окончание на аттракционе

Спойлер

[ENABLE]
aobscanmodule(Timer,_DK_Entrypoint_.VSDesignerDllMain+7C4E84,89xxxx89xxxx0f85xxxxxxxx8bxxxx85xx0f84xxxxxxxx8bxxxx85xx0f84xxxxxxxx83xxxx0f84xxxxxxxx85xx0f84xxxxxxxx8bxxxx85xx0f84xxxxxxxx8dxxxx85xx0f84xxxxxxxx80xxxxxxxxxxxx74xxb9xxxxxxxxe8xxxxxxxx85)
alloc(newmem,$1000,_DK_Entrypoint_.VSDesignerDllMain+7C4E84)
label(code)
label(return)

newmem:
  mov ecx,#-1
code:
  mov [edi+20],ecx
  mov [edi+24],eax
  jmp return

Timer:
  jmp newmem
  nop
return:
registersymbol(Timer)

[DISABLE]
Timer:
  db 89 4F 20 89 47 24
unregistersymbol(Timer)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: _DK_Entrypoint_.VSDesignerDllMain+7C4E84

_DK_Entrypoint_.VSDesignerDllMain+7C4E5C: 64 A3 00000000                   - mov fs:[00000000],eax
_DK_Entrypoint_.VSDesignerDllMain+7C4E62: 8B F9                            - mov edi,ecx
_DK_Entrypoint_.VSDesignerDllMain+7C4E64: 8B 4C 24 38                      - mov ecx,[esp+38]
_DK_Entrypoint_.VSDesignerDllMain+7C4E68: 8B 44 24 3C                      - mov eax,[esp+3C]
_DK_Entrypoint_.VSDesignerDllMain+7C4E6C: 39 4F 20                         - cmp [edi+20],ecx
_DK_Entrypoint_.VSDesignerDllMain+7C4E6F: 75 09                            - jne 011B4A9A
_DK_Entrypoint_.VSDesignerDllMain+7C4E71: 39 47 24                         - cmp [edi+24],eax
_DK_Entrypoint_.VSDesignerDllMain+7C4E74: 0F84 F3020000                    - je 011B4D8D
_DK_Entrypoint_.VSDesignerDllMain+7C4E7A: 80 7F 44 00                      - cmp byte ptr [edi+44],00
_DK_Entrypoint_.VSDesignerDllMain+7C4E7E: 8B 2D F829AE01                   - mov ebp,[01AE29F8]
// ---------- INJECTING HERE -----------
_DK_Entrypoint_.VSDesignerDllMain+7C4E84: 89 4F 20                         - mov [edi+20],ecx
// ---------- DONE INJECTING  ----------
_DK_Entrypoint_.VSDesignerDllMain+7C4E87: 89 47 24                         - mov [edi+24],eax
_DK_Entrypoint_.VSDesignerDllMain+7C4E8A: 0F85 DD000000                    - jne 011B4B8D
_DK_Entrypoint_.VSDesignerDllMain+7C4E90: 8B 4F 08                         - mov ecx,[edi+08]
_DK_Entrypoint_.VSDesignerDllMain+7C4E93: 85 C9                            - test ecx,ecx
_DK_Entrypoint_.VSDesignerDllMain+7C4E95: 0F84 D2000000                    - je 011B4B8D
_DK_Entrypoint_.VSDesignerDllMain+7C4E9B: 8B 41 08                         - mov eax,[ecx+08]
_DK_Entrypoint_.VSDesignerDllMain+7C4E9E: 85 C0                            - test eax,eax
_DK_Entrypoint_.VSDesignerDllMain+7C4EA0: 0F84 C7000000                    - je 011B4B8D
_DK_Entrypoint_.VSDesignerDllMain+7C4EA6: 83 C0 FC                         - add eax,-04
_DK_Entrypoint_.VSDesignerDllMain+7C4EA9: 0F84 BE000000                    - je 011B4B8D
}

 


Инструкция где значения xorятся и идет проверка значений ( 2х одинаковых ) ну и если подменить то игра скушает значение но работает с кучей значений по этому стоит быть очень аккуратным или самому доделать или кто-то доделает.

Спойлер

[ENABLE]
aobscanmodule(setMoney,_DK_Entrypoint_.VSDesignerDllMain+F31EEA,33xxxx3bxx74xxe8xxxxxxxxxx8b)
alloc(newmem,$1000,_DK_Entrypoint_.VSDesignerDllMain+F31EEA)
label(code)
label(return)

newmem:
  xor eax,[ebp-08]
  mov ecx,#99999
  mov eax,#99999
code:
  cmp ecx,eax   // Здесь проверка двух чисел если не одинаковые то вроде вышибает ошибку "Память подверглась изменению"( не доссловно )
  jmp return

setMoney:
  jmp newmem
return:
registersymbol(setMoney)

[DISABLE]
setMoney:
  db 33 45 F8 3B C8
unregistersymbol(setMoney)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: _DK_Entrypoint_.VSDesignerDllMain+F31EEA

_DK_Entrypoint_.VSDesignerDllMain+F31ED1: 8B F1                            - mov esi,ecx
_DK_Entrypoint_.VSDesignerDllMain+F31ED3: E8 28DBB5FF                      - call 0147F620
_DK_Entrypoint_.VSDesignerDllMain+F31ED8: 8D 4D F4                         - lea ecx,[ebp-0C]
_DK_Entrypoint_.VSDesignerDllMain+F31EDB: 51                               - push ecx
_DK_Entrypoint_.VSDesignerDllMain+F31EDC: 8B C8                            - mov ecx,eax
_DK_Entrypoint_.VSDesignerDllMain+F31EDE: 8B 10                            - mov edx,[eax]
_DK_Entrypoint_.VSDesignerDllMain+F31EE0: FF 12                            - call dword ptr [edx]
_DK_Entrypoint_.VSDesignerDllMain+F31EE2: 8B 0E                            - mov ecx,[esi]
_DK_Entrypoint_.VSDesignerDllMain+F31EE4: 8B 46 04                         - mov eax,[esi+04]
_DK_Entrypoint_.VSDesignerDllMain+F31EE7: 33 4D F4                         - xor ecx,[ebp-0C]
// ---------- INJECTING HERE -----------
_DK_Entrypoint_.VSDesignerDllMain+F31EEA: 33 45 F8                         - xor eax,[ebp-08]
// ---------- DONE INJECTING  ----------
_DK_Entrypoint_.VSDesignerDllMain+F31EED: 3B C8                            - cmp ecx,eax
_DK_Entrypoint_.VSDesignerDllMain+F31EEF: 74 1E                            - je 01921B2F
_DK_Entrypoint_.VSDesignerDllMain+F31EF1: E8 0ADBB5FF                      - call 0147F620
_DK_Entrypoint_.VSDesignerDllMain+F31EF6: 56                               - push esi
_DK_Entrypoint_.VSDesignerDllMain+F31EF7: 8B C8                            - mov ecx,eax
_DK_Entrypoint_.VSDesignerDllMain+F31EF9: 8B 10                            - mov edx,[eax]
_DK_Entrypoint_.VSDesignerDllMain+F31EFB: FF 52 08                         - call dword ptr [edx+08]
_DK_Entrypoint_.VSDesignerDllMain+F31EFE: 33 C0                            - xor eax,eax
_DK_Entrypoint_.VSDesignerDllMain+F31F00: 5E                               - pop esi
_DK_Entrypoint_.VSDesignerDllMain+F31F01: 8B 4D FC                         - mov ecx,[ebp-04]
}

 

 

Табличка:
http://rgho.st/private/777mBBLmZ/658b8c5544476266a83f50d0e2314c83


P.S. тема вроде как "вопросы" но имхо игра тяжела для новичка но тут дело упертости и заинтересованности новичка.

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

3 часа назад, ReWanet сказал:

Игра не очень интересна но вдруг кто захочет покопаться:

:D на русском хорошо. А то я пока нашел где перейти на русский задолбался, 

Так и подумал, что где-то проверка.

А что фильтры то не подобрал?

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

ReWanet. С утра проверил, все работает. Только не уследил и получил крах игры (два раза подряд взял награду с аттракциона (насчет алмазов ты был прав, тоже прибавились)). Теперь при заходе в игру каждый раз заново начинает. Вечером опробую переставить. Сейчас не возможности.

 

Спасибо большое всем за участие. За видос отдельное спасибо.

 

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

7 часов назад, Garik66 сказал:

:D на русском хорошо. А то я пока нашел где перейти на русский задолбался, 

Я не выбирал язык. Сам автоматом поставился.
 

7 часов назад, Garik66 сказал:

А что фильтры то не подобрал?

Время позднее да и игра не интересна.

 

3 часа назад, grafdracula1 сказал:

ReWanet. С утра проверил, все работает. Только не уследил и получил крах игры (два раза подряд взял награду с аттракциона (насчет алмазов ты был прав, тоже прибавились)).

Там вроде как без разницы с чего получать награду ( к примеру за уровень или за выполнение задание ) но самое главное это включить, получить и отключить а иначе всю игру запорешь и придется заново игру устанавливать ( где сейвы я не нашел но удалить\установить помогло ). Ну и если кому-то будет интересно то сделают более нормальный метод.

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

Вот только на магию( нужно заработать магию)

 

Спойлер

[ENABLE]
aobscanmodule(testa2,_DK_Entrypoint_.VSDesignerDllMain+99F7AE,8dxxxxxxxxxxxx8bxxe8xxxxxxxx03xx8b)
alloc(newmem,$1000,_DK_Entrypoint_.VSDesignerDllMain+99F7AE)
label(code)
label(return)

newmem:
  cmp [ebp+08],74666F73
  jne code
  mov eax,#999999999
code:
  lea ecx,[esp+000000B0]
  jmp return

testa2:
  jmp newmem
  nop
  nop
return:
registersymbol(testa2)

[DISABLE]
testa2:
  db 8D 8C 24 B0 00 00 00
unregistersymbol(testa2)
dealloc(newmem)

{
// ORIGINAL CODE - INJECTION POINT: _DK_Entrypoint_.VSDesignerDllMain+99F7AE

_DK_Entrypoint_.VSDesignerDllMain+99F77F: 50                               - push eax
_DK_Entrypoint_.VSDesignerDllMain+99F780: 8D 84 24 94000000                - lea eax,[esp+00000094]
_DK_Entrypoint_.VSDesignerDllMain+99F787: 64 A3 00000000                   - mov fs:[00000000],eax
_DK_Entrypoint_.VSDesignerDllMain+99F78D: 8B E9                            - mov ebp,ecx
_DK_Entrypoint_.VSDesignerDllMain+99F78F: 8B 84 24 AC000000                - mov eax,[esp+000000AC]
_DK_Entrypoint_.VSDesignerDllMain+99F796: 8D 9D 9C000000                   - lea ebx,[ebp+0000009C]
_DK_Entrypoint_.VSDesignerDllMain+99F79C: 8B BC 24 A4000000                - mov edi,[esp+000000A4]
_DK_Entrypoint_.VSDesignerDllMain+99F7A3: 8B CB                            - mov ecx,ebx
_DK_Entrypoint_.VSDesignerDllMain+99F7A5: 89 44 24 14                      - mov [esp+14],eax
_DK_Entrypoint_.VSDesignerDllMain+99F7A9: E8 12275900                      - call 01E71AE0
// ---------- INJECTING HERE -----------
_DK_Entrypoint_.VSDesignerDllMain+99F7AE: 8D 8C 24 B0000000                - lea ecx,[esp+000000B0]
// ---------- DONE INJECTING  ----------
_DK_Entrypoint_.VSDesignerDllMain+99F7B5: 8B F0                            - mov esi,eax
_DK_Entrypoint_.VSDesignerDllMain+99F7B7: E8 04275900                      - call 01E71AE0
_DK_Entrypoint_.VSDesignerDllMain+99F7BC: 03 C6                            - add eax,esi
_DK_Entrypoint_.VSDesignerDllMain+99F7BE: 8B CB                            - mov ecx,ebx
_DK_Entrypoint_.VSDesignerDllMain+99F7C0: 50                               - push eax
_DK_Entrypoint_.VSDesignerDllMain+99F7C1: E8 FA275900                      - call 01E71BE0
_DK_Entrypoint_.VSDesignerDllMain+99F7C6: 8A 9C 24 A8000000                - mov bl,[esp+000000A8]
_DK_Entrypoint_.VSDesignerDllMain+99F7CD: 84 DB                            - test bl,bl
_DK_Entrypoint_.VSDesignerDllMain+99F7CF: 75 14                            - jne 018DF405
_DK_Entrypoint_.VSDesignerDllMain+99F7D1: 8D 8C 24 B0000000                - lea ecx,[esp+000000B0]
}

 

 

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

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

 

А не мог бы ты (если не трудно)  вкратце пояснить как нашел адрес магии, функцию сравнения значений, ну то есть логику своих действий.

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

5 часов назад, grafdracula1 сказал:

А не мог бы ты (если не трудно)  вкратце пояснить как нашел адрес магии, функцию сравнения значений, ну то есть логику своих действий.

Искал неизвестное после отсеивал изменилось ( когда число магии поменялось ) и не изменилось ( когда число магии не поменялось ). После нашел 50-100 адресов ( по разному ) смотрел их и изучал. Поскольку до это я проделал обычную процедуру заморозки ( брал разные числа и замораживал, когда заморозил нужные числа игра выбила "Память подверглась изменению" ) и с помощью нее я выявил нужные мне значения а это 2 значения которые рядом ( +/- 4 байта ) и имею тип 4 байта и так же несильно отличаются числом ( +/- 1к ( пример: первое - 21039, второе - 23954 )) я поставил на них бряк выявил инструкцию которая работает со всеми значения и после протрейсил инструкцию по двум правилам: сначала только магию и любое другое значение. Посмотрел трейслог и нашел различия по дальнейшему ходу по инструкциям у адресов и проверил инструкцию и вроде да оно ( из последнего скрипта ) и начал работать с нейувидел что в EAX ( если брать последний скрипт ) лежит число магии но работает инструкция так же и с другими значения ( все что получаем то и обрабатывает ) и по этому добавил фильтр чтоб изменяло лишь магию.

 

Цитата

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

Ну тут ничем не помогу, скорее удаление не удаляет все что оставила игра пройдись по папкам ( C:\Users\User\Documents\ , C:\Users\User\AppData, C:\Program Files\WindowsApps\A278AB0D.DisneyMagicKingdoms_2.8.1.1_x86__h6adky7gbf63m\= ( подчеркнутое может отличаться )) может там что от игры осталось и удали это.

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

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

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

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