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

Тема в разделе "C/C++", создана пользователем Vadim.dll, 17 май 2019.

  1. Vadim.dll

    Vadim.dll Интересующийся

    Регистрация:
    4 июл 2015
    Сообщения:
    186
    Симпатии:
    71
    Привет, не видел такой темы, поэтому решил изложить свои мысли.

    Предыстория:
    Года 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 дня назад, но хотел поскорее написать об этом, т.к нигде такой информации конкретно на примере сампа не нашел.
    Если кому-то будет интересно, вскоре покажу более сложный способ поиска, который ведет сразу на структуру, а не на ее указатель.
     
    #1 Vadim.dll, 17 май 2019
    Последнее редактирование: 17 май 2019
    checkdasound, HatiGreez, hiplice и 29 другим нравится это.
  2. HatiGreez

    HatiGreez Знающий

    Регистрация:
    11 июл 2017
    Сообщения:
    267
    Симпатии:
    17
    Полезная тема, но почему-то у меня после сохранения пустое окно скана становится, как исправлять? Перепробовал кроме диалога и кол.строк, и оружие, но ничего не появляется в окне после сохранения.

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

    Vadim.dll Интересующийся

    Регистрация:
    4 июл 2015
    Сообщения:
    186
    Симпатии:
    71
    Разные типы адресов?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление