Гайд Ищем структуры в SAMP через CE

Vadim.dll

Активный
Автор темы
191
68
Привет, не видел такой темы, поэтому решил изложить свои мысли.

Предыстория:
Года 3 назад, когда я был совсем пездюком, я мечтал о том, чтобы написать свой стиллер, но опыта в программировании было мало, поэтому я пошел писать на других языках более простые вещи. Теперь я немного поднатаскался и почти смог переписать стиллер с SAMP 0.3.7 R1 на SAMP 0.3.7 R3 (не могу найти структуру, в которой лежит текст с диалога). Крч не используйте стиллеры в плохих намерениях, я хотел написать стиллер, т.к мне очень нравится, как он работает и это дает мне мотивации что-то делать.

Ближе к делу:
Версия сампа 0.3.7 R3
Для начала найдем структуру, в которой лежат данные от диалога

Итак, я пока что нашел 2 способа найти структуру, более простой и более сложный, сейчас покажу более простой:
воспользуемся поиском указателей для адреса.

1.Заходим в Cheat Engine и открываем процесс GTA SA
upload_2019-5-17_17-37-57.png

2. Нужно найти что-то, за что можно зацепиться, чтобы найти саму структуру, я буду использовать DialogID, на сервере Samp-RP диалоговое окно с регистрацией имеет ID 2, с правилами ID 3, с вводом Email 21, начинаем поиск. Вводит в строку поиска чисто 2, жмем First Scan. Далее вводим в поле с паролем любой пароль, чтобы перейти к следующему окну
upload_2019-5-17_17-41-12.png

Вводим в строку поиска 3 и жмем Next Scan, далее переходим к диалогу с вводом Email, в поиске вводим 21 и жмем Next Scan.

upload_2019-5-17_17-42-18.png

Получаем 1 адрес, это и есть адрес переменной с DialogID, два раза жмем на нее, чтобы добавить в список выбранных адресов. Далее жмем ПКМ на добавленном адресе и выбираем Pointer Scan for this address

upload_2019-5-17_17-43-45.png

Max level ставим 1, после жмем OK, сохраняем дамп в любое место и ждем
upload_2019-5-17_17-44-19.png

В итоге получаем список адресов, это и есть наши структуры
upload_2019-5-17_17-45-25.png

Далее переходим в Memory Views -> Tools -> Dissect Data/Structures
upload_2019-5-17_17-49-0.png

В поле ввода пишем один из полученных адресов, потом жмем Structures->Define new structure
upload_2019-5-17_17-50-44.png

Называем нашу структуру, вводим размер и OK
upload_2019-5-17_17-51-40.png

Видим кучу указателей, открываем содержимое первого и видим нашу структуру
upload_2019-5-17_17-53-51.png

И видим, что как раз по смещению 30 находится наш DialogID, можно переключить диалоговое окно и увидеть, как это значение меняется, также можно поиграть с другими значениями. Например значения со смещение 4 и 8 - сдвиг текста в диалоге, 14 и 18 - размеры диалогового окна.

Адрес на указатель на данную структуру статический, можно смело его использовать в внешней например программе, чтобы получить доступ к Dialog ID или изменить размеры окна, тоже могу показать, если кому-то будет интересно.

Также полученную структуру можно перенести в C++, чтобы не читать каждую переменную из адреса со сдвигом, а легко получить к ним доступ

Возможно здесь есть недочеты, т.к я сам научился это делать 2 дня назад, но хотел поскорее написать об этом, т.к нигде такой информации конкретно на примере сампа не нашел.
Если кому-то будет интересно, вскоре покажу более сложный способ поиска, который ведет сразу на структуру, а не на ее указатель.
 
Последнее редактирование:

HatiGreez

Участник
277
13
Полезная тема, но почему-то у меня после сохранения пустое окно скана становится, как исправлять? Перепробовал кроме диалога и кол.строк, и оружие, но ничего не появляется в окне после сохранения.

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

Vadim.dll

Активный
Автор темы
191
68
Полезная тема, но почему-то у меня после сохранения пустое окно скана становится, как исправлять? Перепробовал кроме диалога и кол.строк, и оружие, но ничего не появляется в окне после сохранения.

Также было бы хорошо видеть урок, как искать разные типы адресов, ибо в инете есть повторяющийся гайд, но он редко когда подходит, т.к. значения другие получаются.
Разные типы адресов?