Можно удалить, если не интересно.
Тогда напишу такой же туториал для радара на примере Titanfall 2. (чисто ради того, чтобы заинтерисовать радаром.)
Перед тем как мы приступим нам понадобится:
1. Radare2
2. Более менее прямые ручки.
3. Хорошая внимательность.
Для начала открываем консоль, пописываем:
radare2.exe <путь к файлу>
после того как загрузиться файл, необходимо будет его проанализировать, для этого пишем:
aa
и после
aac
Первая команда объявляет точку входа как функцию, а вторая команда анализирует вызовы функций.
Для поиска по строке(m_iHealth) надо будет ввести такую команду:
/ m_iHealth
Как только найдется строка, нужно будет посмотреть все перекрестные ссылки для этого пишем:
axt hit0_0
Сама команда ищет данные перекрестных ссылок от адреса по которому была найдена строка.
На выходе получаем информацию о перекрестных ссылках:
sub.should_never_see_this_0 0x1800e00ad [DATA] lea rdx, str.m_iHealth
sub.should_never_see_this_610 0x180130b2f [DATA] lea rdx, str.m_iHealth
sub.should_never_see_this_780 0x180168943 [DATA] lea rdx, str.m_iHealth
sub.should_never_see_this_540 0x1802bd680 [DATA] lea rdx, str.m_iHealth
sub.should_never_see_this_9e0 0x180582af8 [DATA] lea rdx, str.m_iHealth
sub.should_never_see_this_c60 0x180584f37 [DATA] lea rdx, str.m_iHealth
Выбираем любую понравившуюся строку и выводим дизассемблерный листинг по выбранному адресу
[0x180807f5c]> pd 6 @ 0x1800e00ad
| 0x1800e00ad 488d15acd67c. lea rdx, str.m_iHealth ; hit0_0 ; 0x1808ad760 ; "m_iHealth"
| 0x1800e00b4 488d0df5a6b1. lea rcx, [0x180bfa7b0]
| 0x1800e00bb 41b890030000 mov r8d, 0x390 ; 912
| 0x1800e00c1 48897c2428 mov qword [local_28h], rdi ; arg2
| 0x1800e00c6 48897c2420 mov qword [local_20h], rdi ; arg1
| 0x1800e00cb e890f00e00 call fcn.1801cf160
0x390 наше смещение на m_iHealth.
Команда:
pd
выводит дизассемблерный листинг т.к нам не нужен большой листинг указываем количество выводимых инструкций, "@" указывает что нам надо получить вывод по адресу, если не указать "@", то листинг выводиться по текущему адресу EIP.
В последствии, мы можем написать скрипт, который одной командой проделает все что мы написали выше, это очень удобно и быстро для дампа смещений после обновлений игры, если нет желания писать свой дампер с нуля.