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

[Black and White 2] Не отображается экранное значение


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

Привет форумчане. Не получается в игре Black and White 2 найти значение дани (tribute). Пытался найти разными способами, но ничего не получилось. Возник уже спортивный интерес, каким образом можно взломать дань.

Версия игры: "Build: 1448" torrent edition😀; Cheat Engine - 7.0.

Как говорил, значение не нашел ни как целочисленное (2 Байта, 4 Байта, 8 Байта), на как с плавающей точкой (float, double), ни как строка.

По типу поиска "изменилось" - "не изменилось" тоже нет результата.

НО! Нашел адреса получения и трат дани (из игровой статистики). Поизучал близлежащие адреса структуры - ничего нет.

Попробовал найти иструкции, записывающие значения трат дани в адрес, нашлась одна инструкция:

add [esi+0001C1FC],eax

Чтобы найти, что записыватся в регистр eax, пытался установить брейкпоинты (аппаратный, программный), трассировать инструкции, но игра зависала в черном экране. Приходилось убивать процесс в диспетчере задач.

 

Кто знает что нужно делать, чтобы взломать дань?

 

Вот близлежащий код функции:

white.exe+1BAE44 - 57                    - push edi
white.exe+1BAE45 - 57                    - push edi
white.exe+1BAE46 - E8 15B6F7FF           - call white.exe+136460
white.exe+1BAE4B - 01 86 FCC10100        - add [esi+0001C1FC],eax <<
white.exe+1BAE51 - 8B 86 F4C10100        - mov eax,[esi+0001C1F4]
white.exe+1BAE57 - 57                    - push edi
white.exe+1BAE58 - 50                    - push eax
white.exe+1BAE59 - E8 62090000           - call white.exe+1BB7C0
white.exe+1BAE5E - 83 C4 10              - add esp,10 { 16 }
white.exe+1BAE61 - 5F                    - pop edi
white.exe+1BAE62 - 89 86 F4C10100        - mov [esi+0001C1F4],eax
white.exe+1BAE68 - 5E                    - pop esi
white.exe+1BAE69 - C2 0800               - ret 0008 { 8 }

 

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

  • Garik66 изменил название на [Black and White 2] Не отображается экранное значение
В 29.06.2022 в 22:21, Garik66 сказал:

этот call изучал?
 

call white.exe+136460

Просмотрел, он ведет в функцию с jump'ами и call'ами. А они уже, по-каскаду, в другие функции с прыжками и вызовами.

Спойлер

white.exe+136460 - 83 EC 20                      - sub esp,20 { 32 }
white.exe+136463 - 56                                - push esi
white.exe+136464 - 8B 35 AC5F7501        - mov esi,[white.exe+1355FAC] { (0) }
white.exe+13646A - 85 F6                          - test esi,esi
white.exe+13646C - 75 08                          - jne white.exe+136476
white.exe+13646E - 39 35 B05F7501        - cmp [white.exe+1355FB0],esi { (0) }
white.exe+136474 - 74 36                           - je white.exe+1364AC
white.exe+136476 - 53                               - push ebx
white.exe+136477 - 8B 1D 38607501        - mov ebx,[white.exe+1356038] { (0) }
white.exe+13647D - 57                               - push edi
white.exe+13647E - 8B 3D 34607501        - mov edi,[white.exe+1356034] { (56054556) }
white.exe+136484 - 8D 44 24 34               - lea eax,[esp+34]
white.exe+136488 - 50                                - push eax
white.exe+136489 - 8D 4C 24 34               - lea ecx,[esp+34]
white.exe+13648D - 51                                - push ecx
white.exe+13648E - 8D 4C 24 14                - lea ecx,[esp+14]
white.exe+136492 - E8 99F8FFFF               - call white.exe+135D30
white.exe+136497 - 8D 44 24 0C               - lea eax,[esp+0C]
white.exe+13649B - 99                               - cdq 
white.exe+13649C - 52                               - push edx
white.exe+13649D - 50                               - push eax
white.exe+13649E - 53                                - push ebx
white.exe+13649F - 57                                - push edi
white.exe+1364A0 - FF D6                           - call esi
white.exe+1364A2 - 83 C4 10                     - add esp,10 { 16 }
white.exe+1364A5 - 5F                                - pop edi
white.exe+1364A6 - 5B                                - pop ebx
white.exe+1364A7 - 5E                                - pop esi
white.exe+1364A8 - 83 C4 20                    - add esp,20 { 32 }
white.exe+1364AB - C3                               - ret 

 

 

Блин, только сейчас допёрло😄

Функция "call white.exe+136460", по сути, должна полностью выполнится:

white.exe+136460 - 83 EC 20                      - sub esp,20 { 32 }	// Тут начинается функция
...
...
...
white.exe+1364AB - C3                               - ret 		// Тут функция обязана закончится

Т.е. мне нужно с конца функции дойти до первой инструкции, которая записывает в eax:

white.exe+136497 - 8D 44 24 0C               - lea eax,[esp+0C]

Ща попробую что-нибудь придумать)

 

Ничего не вышло. Дошел до этого кода:

white.exe+136497 - 8D 44 24 0C               - lea eax,[esp+0C]

Нашел адрес [esp+0c], но там значения "пляшут" (меняются несколько раз в секунду).

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

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

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

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