Current time: 10.11.2024, 21:56 Hello There, Guest! (LoginRegister)
Language: english | russian  

Poll: Интересно ли вам научиться самим находить необходимые данные в exe игры без посторонней помощи?
This poll is closed.
Да! 57.14% 8 57.14%
Конечно же ДА!!! 42.86% 6 42.86%
[...] 0% 0 0%
Total 14 votes 100%
* You voted for this item. [Show Results]

Post Reply 
Threaded Mode | Linear Mode
Реверс игры для новичков
» Небольшой туториал по нахождению данных для UN:C
Author Message
XEPOMAHT Offline
Moderators

Posts: 2351
Post: #61

(03.09.2022 06:26)wessonsm Wrote:  Расширение и перенос структуры в памяти как делается?

Зависит от того, где хранится структура и как к ней обращается код игры. Самый простой способ переноса - для динамических стуктур в динамической памяти, размер которых заранее не определён (там можно обойтись бинарным патчем, т.к. всё делает сам движок игры при создании структуры в памяти, т.е. патчится только конструктор и дезруктор). Посложнее - статические структуры в статической/динамической памяти - там придётся выделить память и перенести всю адресацию: в зависимости от сложности это может быть всего 1 адрес (когда игра всегда получает доступ с помощью базовой адресации, что очень удобно для переноса структуры) или например 2000. Ну и самое сложное в Третьих Героях - структуры, которые игра хранит в стеке: для переноса этих структур потребуется расширение выделяемой стековой памяти или перенос в динамическую память с заменой всех участков кода. В общем, рекомендую начинать с самого простого (в исходниках плагинов на новые артефакты или новых монстров), а потом уже переходит к более сложному.

(03.09.2022 06:26)wessonsm Wrote:  Я так понимаю, нужно пропатчить все места в коде игры, где идет обращение к полям этой структуры?

Да, абсолютно все.

(03.09.2022 06:26)wessonsm Wrote:  А как тогда убедиться, что нашли действительно ВСЕ такие места?

Методом научного тыка. Переносим и смотрим, работает ли вообще игра, если что-то начинает работать не так или вообще не работает - значит перенесено не всё. Когда появится опыт, то количество ошибок будет меньше.

(03.09.2022 06:26)wessonsm Wrote:  Ведь значительная часть кода не разобрана даже.

Для переноса структур исполнительный код разбирать практически не потребуется. Самое главное, чтобы была разобрана сама структура.

(03.09.2022 11:45)daemon_n Wrote:  сколько ни видел обращений к структурам, они все по ссылке идут.

Далеко не все. Оригинальных базовых адресов с десяток вряд ли наберётся. А вот если одна структура является частью тонны других структур, то её вообще очень затратно переносить (например структуру слотов армии вряд ли кто-то захочет переносить - ради добавления 8-го слота придётся переделать чуть ли не половину игрового кода, что может сделать только конченный психопат-задрот).

(03.09.2022 11:45)daemon_n Wrote:  Так понимаю, уведомить Эру надо, потому что она раньше всех плагинов на адреса цепляется?

До сих пор не понимаю, зачем это было сделано в Эре. Та же HoA совмещается с HD-модом по части перенесённых структур с помощью базовых адресов, что было унаследовано и в версии HD-мода для Эры, за счёт чего HD-мод видит новых монстров, новые артефакты и даже новые города.
03.09.2022 15:04
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Реверс игры для новичков - igrik - 22.07.2020, 12:55
RE: Как найти нужные адреса и данные для UN:C - wessonsm - 22.07.2020, 21:40
RE: Как найти нужные адреса и данные для UN:C - daemon_n - 22.07.2020, 21:55
RE: Как найти нужные адреса и данные для UN:C - Raistlin - 23.07.2020, 00:37
RE: Как найти нужные адреса и данные для UN:C - igrik - 23.07.2020, 01:59
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 23.07.2020, 02:54
RE: Как найти нужные адреса и данные для UN:C - RoseKavalier - 23.07.2020, 04:26
RE: Как найти нужные адреса и данные для UN:C - V_Maiko - 23.07.2020, 07:04
RE: Как найти нужные адреса и данные для UN:C - PerryR - 23.07.2020, 09:51
RE: Как найти нужные адреса и данные для UN:C - daemon_n - 23.07.2020, 10:55
RE: Как найти нужные адреса и данные для UN:C - wessonsm - 23.07.2020, 11:54
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 23.07.2020, 12:18
RE: Как найти нужные адреса и данные для UN:C - daemon_n - 23.07.2020, 12:55
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 23.07.2020, 13:29
RE: Как найти нужные адреса и данные для UN:C - Berserker - 23.07.2020, 15:52
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 23.07.2020, 16:04
RE: Как найти нужные адреса и данные для UN:C - Zur13 - 23.07.2020, 16:32
RE: Как найти нужные адреса и данные для UN:C - RoseKavalier - 23.07.2020, 18:47
RE: Как найти нужные адреса и данные для UN:C - Berserker - 23.07.2020, 20:39
RE: Как найти нужные адреса и данные для UN:C - V_Maiko - 24.07.2020, 03:15
RE: Как найти нужные адреса и данные для UN:C - Zur13 - 24.07.2020, 03:26
RE: Как найти нужные адреса и данные для UN:C - igrik - 24.07.2020, 10:19
RE: Как найти нужные адреса и данные для UN:C - Zur13 - 24.07.2020, 11:29
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 24.07.2020, 12:45
RE: Как найти нужные адреса и данные для UN:C - Zur13 - 24.07.2020, 13:32
RE: Как найти нужные адреса и данные для UN:C - XEPOMAHT - 24.07.2020, 15:08
RE: Как найти нужные адреса и данные для UN:C - igrik - 24.07.2020, 15:38
RE: Реверс игры для чайников - igrik - 24.07.2020, 12:08
RE: Реверс игры для новичков - Berserker - 24.07.2020, 17:35
RE: Реверс игры для новичков - igrik - 24.07.2020, 17:50
RE: Реверс игры для новичков - daemon_n - 24.07.2020, 19:39
RE: Реверс игры для новичков - RoseKavalier - 25.07.2020, 04:10
RE: Реверс игры для новичков - daemon_n - 25.07.2020, 11:09
RE: Реверс игры для новичков - RoseKavalier - 25.07.2020, 17:45
RE: Реверс игры для новичков - daemon_n - 25.07.2020, 19:30
RE: Реверс игры для новичков - wessonsm - 26.07.2020, 00:10
RE: Реверс игры для новичков - daemon_n - 26.07.2020, 01:43
RE: Реверс игры для новичков - wessonsm - 11.02.2022, 06:09
RE: Реверс игры для новичков - XEPOMAHT - 11.02.2022, 06:57
RE: Реверс игры для новичков - wessonsm - 11.02.2022, 07:03
RE: Реверс игры для новичков - daemon_n - 01.06.2022, 05:45
RE: Реверс игры для новичков - wessonsm - 03.09.2022, 06:26
RE: Реверс игры для новичков - daemon_n - 03.09.2022, 09:17
RE: Реверс игры для новичков - wessonsm - 03.09.2022, 11:01
RE: Реверс игры для новичков - Berserker - 03.09.2022, 11:35
RE: Реверс игры для новичков - daemon_n - 03.09.2022, 11:45
RE: Реверс игры для новичков - XEPOMAHT - 03.09.2022 15:04
RE: Реверс игры для новичков - Berserker - 03.09.2022, 12:47
RE: Реверс игры для новичков - Berserker - 03.09.2022, 19:24
RE: Реверс игры для новичков - daemon_n - 03.09.2022, 23:20
RE: Реверс игры для новичков - XEPOMAHT - 04.09.2022, 04:47
RE: Реверс игры для новичков - Berserker - 04.09.2022, 07:10
RE: Реверс игры для новичков - Berserker - 04.09.2022, 08:07
RE: Реверс игры для новичков - wessonsm - 04.09.2022, 08:56
RE: Реверс игры для новичков - Berserker - 04.09.2022, 08:59
RE: Реверс игры для новичков - wessonsm - 04.09.2022, 09:02
RE: Реверс игры для новичков - daemon_n - 04.09.2022, 09:07
RE: Реверс игры для новичков - Berserker - 04.09.2022, 09:10
RE: Реверс игры для новичков - wessonsm - 04.09.2022, 09:15
RE: Исследование героев - Zur13 - 22.07.2020, 13:17
RE: Исследование героев - XEPOMAHT - 22.07.2020, 13:41
RE: Исследование героев - PerryR - 22.07.2020, 13:43
RE: Исследование героев - XEPOMAHT - 22.07.2020, 14:14
RE: Исследование героев - Berserker - 22.07.2020, 16:41
RE: Исследование героев - daemon_n - 22.07.2020, 18:30
RE: Исследование героев - RoseKavalier - 22.07.2020, 18:36
RE: ERA III - daemon_n - 18.05.2022, 20:25
RE: ERA III - wessonsm - 18.05.2022, 21:17
RE: ERA III - daemon_n - 18.05.2022, 21:19
RE: ERA III - wessonsm - 18.05.2022, 22:02
RE: ERA III - Berserker - 18.05.2022, 22:29
RE: ERA III - igrik - 19.05.2022, 19:29

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group