Цитата:
Сообщение от dark
Вот вам по сути и бот готов ) @Diantro +300 постов. Отличный материал.
А чего ты просто в IDA это дело не загрузил и через псевдокод не прогнал? Там всё гораздо понятнее было бы.
|
Если ты про декомпилятор, то прогнал. На последних скришотах есть.
Цитата
Цитата:
Сообщение от Diantro
- Сразу же сработает breakpoint. Мы будем находиться в функции по адресу 004F5DB0. Вот так она выглядит. Я уже дал всем функциям имена. При возврате из функции мы найдем базовый адрес для массива объектов вокруг персонажа - 233b5f0
Example
- В данной функции мы видим двойной цикл.
Первый итерируется от 0 до 0xC по массиву объектов, каждый из которых состоит из двух адресов - адрес первого элемента и адрес последнего элемента вложенного массива. То есть это своего рода матрица из объектов, с которыми персонаж может взаимодействовать. В голове можно держать эту структура так [{firstAddress, lastAddress}, {firstAddress, lastAddress}, ... {firstAddress, lastAddress}].
Второй цикл берет значение по первому адресу 233b5f0 + index + 0xC + 4 и последнему адресу 233b5f0 + index + 0xc + 8 (перед подстановкой в формулу к index также применяется сдвиг влево на 4 бита - shl 4). В каждой итерации к первому значению прибавляется 4 до тех пор, пока адрес не станет равен последнему значению.
Example
|