Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 16
  1. #1
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±

    Работа с памятью сервера

    Всем привет, в этой теме я буду вести уроки, по работе с памятью сервера sa-mp
    И так, я покажу примеры работы с адресами, а также отдельно напишу их.
    Для того, чтобы работать с памятью сервера, нам потребуется плагин, для работы с памятью.
    Я выбрал Memory access plugin(Link)
    Но, также подойдёт и y_malloc и ему подобные, что выбрать, решать вам!
    Итак, начнём.



     Адреса памяти

    0x0018FE50 = Кол-во слотов (DWORD)
    0x004E2438 = Chatlogging (BYTE)
    0x004E2430 = Stream Rate (DWORD)
    0x004E242C = Stream Distance (FLOAT)
    0x004E2424 = Weapon Rate (DWORD)
    0x004E2420 = InCar Rate (DWORD)
    0x004E241C = Onfoot Rate (DWORD)
    0x0018FE54 = Порт (DWORD) Только для чтения




     Примеры

     0x0018FE50 (maxplayers)

    PHP код:
    new Pointer:Pointer:0x0018FE50//Установим указатель на адрес памяти, например, в OnGameModeInit.
    MEM::set_val(p_100); //Установим число в адрес памяти, т.е установим кол-во слотов на 100
    Pointer:NULL//Уберём указатель на адрес памяти. 
    Важно!
    1. GetMaxPlayers() также примет значение 100.
    2. Плагин sscanf и некоторые другие будут брать кол-во слотов из файла, по-этому адрес sscanf.DLL+A39C будет равен не 100, а тому числу, которое имеет maxplayers в server.cfg, однако, его также можно изменить. Хотел бы отметить, что указатель на адрес sscanf.DLL+A39C я искать не буду.


     0x004E2430 (streamrate)

    PHP код:
    new Pointer:sr Pointer:0x004E2430//Установим указатель на адрес памяти, например, в OnGameModeInit.
    printf ("%d"MEM::get_val(sr)); //Узнаем текущий Stream Rate 


     0x004E242C(streamdistance)

    PHP код:
    new Pointer:sd Pointer:0x004E242C//Установим указатель на адрес памяти, например, в OnGameModeInit.
    MEM::set_val(sd_800.0); //Установим Stream Distance на 800.0 

    Остальные - аналогично



    Тема будет обновляться, если это, конечно, потребуется читателям. Жду предложения, по поводу того, какие адреса памяти нужно найти.
    Btw, с каждой новой версией сервера могут обновляться и адреса памяти, будьте внимательны.
    Адреса памяти представлены для версии сервера Windows 0.3z (NOT R-2,3,4)
    Последний раз редактировалось Пельмень; 30.01.2015 в 11:54.

  2. 3 пользователя(ей) сказали cпасибо:
    Gai_Ricci (09.03.2015) Nexius_Tailer (21.01.2018) [ForD] (02.02.2015)
  3. #2
    Аватар для I'm Cobra
    Пользователь

    Статус
    Оффлайн
    Регистрация
    29.10.2013
    Сообщений
    151
    Репутация:
    17 ±
    Ну и для чего это?

  4. #3
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    Цитата Сообщение от I'm Cobra Посмотреть сообщение
    Ну и для чего это?
    Ну, знаешь, способов применения очень много, например, теперь не придётся изменять бинарники, чтобы отредактировать данные. Возможности не ограничены лишь примерами, если что.
    Последний раз редактировалось Пельмень; 30.01.2015 в 11:46.

  5. #4
    Аватар для Lars Keller
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.11.2014
    Сообщений
    106
    Репутация:
    2 ±
    Цитата Сообщение от Пельмень Посмотреть сообщение
    Ну, знаешь, способов применения очень много, например, теперь не придётся изменять бинарники, чтобы отредактировать данные. Возможности не ограничены лишь примерами, если что.
    А чем стандартные функций не катят?

  6. #5
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    Цитата Сообщение от Lars Keller Посмотреть сообщение
    А чем стандартные функций не катят?
    Что то я не припомню, чтобы была функция, на изменение слотов, стрим рейта и прочего.

  7. #6
    Аватар для Maranzalla
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    25.04.2014
    Адрес
    Moscow
    Сообщений
    108
    Репутация:
    -1 ±
    то есть покупая у хостера 20 слотов можно менять их на 100 или на любое другое значение ?

  8. #7
    Аватар для Mazzilla
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.11.2013
    Адрес
    Нижневартовск
    Сообщений
    256
    Репутация:
    63 ±
    Цитата Сообщение от Maranzalla Посмотреть сообщение
    то есть покупая у хостера 20 слотов можно менять их на 100 или на любое другое значение ?
    Это будет равносильно тому, что вы это значение измените в server.cfg

  9. #8
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    Цитата Сообщение от Maranzalla Посмотреть сообщение
    то есть покупая у хостера 20 слотов можно менять их на 100 или на любое другое значение ?
    Вполне, только у сервера linux будут другие адреса памяти

    - - - Добавлено - - -

    Цитата Сообщение от Mazzilla Посмотреть сообщение
    Это будет равносильно тому, что вы это значение измените в server.cfg
    Не совсем, сервер сампа при запуске считывает из файла кол-во слотов в переменную, а хостеры лишь запрещают устанавливать это значение больше, чем заказано слотов, однако по моему примеру можно обойтись без файла, установи хоть 0 слотов : )

  10. #9
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от Пельмень Посмотреть сообщение
    Вполне, только у сервера linux будут другие адреса памяти

    - - - Добавлено - - -



    Не совсем, сервер сампа при запуске считывает из файла кол-во слотов в переменную, а хостеры лишь запрещают устанавливать это значение больше, чем заказано слотов, однако по моему примеру можно обойтись без файла, установи хоть 0 слотов : )
    Можно указатель на память, скрытой функций SA-MP где узнается серийный номер компьютера?

  11. #10
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Можно указатель на память, скрытой функций SA-MP где узнается серийный номер компьютера?
    Зачем он Вам нужен? В нём смысла нет.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •