HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.05.2019, 19:01
Vadim.dll
Участник форума
Регистрация: 04.07.2015
Сообщений: 168
С нами: 5715860

Репутация: 78
По умолчанию

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

Предыстория:

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

Ближе к делу:

Версия сампа 0.3.7 R3

Для начала найдем структуру, в которой лежат данные от диалога

Итак, я пока что нашел 2 способа найти структуру, более простой и более сложный, сейчас покажу более простой:

воспользуемся поиском указателей для адреса.

1.Заходим в Cheat Engine и открываем процесс GTA SA



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



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



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



Max level ставим 1, после жмем OK, сохраняем дамп в любое место и ждем



В итоге получаем список адресов, это и есть наши структуры



Далее переходим в Memory Views -> Tools -> Dissect Data/Structures



В поле ввода пишем один из полученных адресов, потом жмем Structures->Define new structure



Называем нашу структуру, вводим размер и OK



Видим кучу указателей, открываем содержимое первого и видим нашу структуру



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

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

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

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

Если кому-то будет интересно, вскоре покажу более сложный способ поиска, который ведет сразу на структуру, а не на ее указатель.
 
Ответить с цитированием
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.