Всем привет.
Каждый день я вижу как всплывает тонна новой информации касательно памяти в Nox. Казалось бы, это не может не радовать. Но в какой-то момент я понимаю что именно те, кто занимаются разбором памяти Nox, самые полезные люди в любом Nox комьюнити. Ибо скрипты-обёртки на lua может налепить любой худо-бедно выучивший синтаксис и умеющий копипастить. Это меня лично расстроило. И твёрдо решил заняться вопросом изучения памяти.
Как-то раз мне доводилось беседовать с Dio и он сказал, что все роют данные при помощи IDA. Спустя некоторое время я получил эту программу и даже несколько раз открывал её. И через 10 минут бессилия закрывал. Я никак не понимаю как можно с помощью этого отследить данные, так как там сплошной ассемблер и фиг его знает когда что вызывается. Я долгое время бился с этим, но так и ничего не понял. Видимо программист из меня хреновый и это не исправить.
Может быть поможете постичь тайны дизассембла? С чего мне следует начать? Какой ассемблер нужно учить? Каким образом нужно искать данные? Google не даст ответы на эти вопросы точно, так как гайда "Как дизассемблить Nox" там нет.
Помогите, пожалуйста. Я чувствую себя абсолютно бесполезным для всех Nox комьюнити, аж плакать хочется. А я хотел бы чтобы меня запомнили как сделавшего что-то полезное, а не как "А, ещё один нуб ушел. Он и не играл-то толком в мультиплеер, да и пользы не было"...
Начальные данные:
1. Знание C\C++ на уровне "учим в институте(МАИ факультет 8) + изучал WINAPI для проекта и чем больше я узнаю, тем больше кажется, что нихрена не знаю".
2. Знание Lua на уровне "Круто для Unimod.". Не трогал сабрутины, коллектор мусора, стандартные lua библиотеки (require'ы) и программирование оконных приложений. Знаком с интеграцией C# в lua.
3. Знание утилит для распаковки\обработки Nox данных на уровне: "Знал бы метод кодирования, написал бы свою утилиту" и "Добавить новый объект могу, но с оговорками".
4. Нулевое знание assembler. Известен только тот факт, что "У разных семейств процессоров свой ассемблер".
5. Знание IDA менее 1%. Описать можно так: "Открыть базу могу и прочитать некоторую информацию. Открыть exe с нуля не могу.". На этом конец.
6. Желание освоить что-то новое. Процентов 70%. Остальные 30% на "готов развить старое".
7. Знание Unimod реакций и команд на уровне: "Всё наизусть не помню, но ума хватает чтоб открыть исходники и глянуть как всё работает. Пишу плагины."
8. Желание приносить пользу Nox сообществу. Пока процентов 100%. Не меньше.
P.S>Всё на что меня хватило - это управление уровнем Nox Quest и состоянием-анимацией игрока и сделано это было не через IDA, а через наблюдение за переменной по смещению или перебором разных значений в WinHack. Хотелось бы надыбать больше информации.