Просмотр полной версии : [Plugin] Pawn.RakNet - напиши лучший античит!
urShadow
31.08.2017, 21:56
Pawn.RakNet 1.3.0
Описание:
Плагин, который позволяет работать с RakNet в Pawn.
Плагин совместим с любой версией SA:MP (новее 0.3z). Также доступна адаптация под CR:MP (0.3e)
Основные возможности:
Перехват и изменение входящих/исходящих пакетов
Отправка пакетов игроку
Эмуляция входящих пакетов от игрока
Простой пример:
const AIM_SYNC = 203; // 0.3.7
IPacket:AIM_SYNC(playerid, BitStream:bs) // входящий пакет
{
new aimData[PR_AimSync];
BS_IgnoreBits(bs, 8); // packet id (byte)
BS_ReadAimSync(bs, aimData);
if (aimData[PR_aimZ] != aimData[PR_aimZ]) // is NaN
{
aimData[PR_aimZ] = 0.0;
BS_SetWriteOffset(bs, 8);
BS_WriteAimSync(bs, aimData); // перезаписываем данные в пакете
}
return 1; // продолжаем его обработку
}
Документация:
https://github.com/urShadow/Pawn.RakNet/wiki/Home_RU
Скачать:
https://github.com/urShadow/Pawn.RakNet/releases
Исходный код:
https://github.com/urShadow/Pawn.RakNet
vasyok28
31.08.2017, 22:35
Видно что старался) молодец!
А в чем разница? http://pro-pawn.ru/showthread.php?13333-RNM-RakNet-Manager-1-0-0
А в чем разница? http://pro-pawn.ru/showthread.php?13333-RNM-RakNet-Manager-1-0-0
Ничем. Просто прошлая тема создавалась не автором плагина и уже заброшена, в отличии от этой. А плагин один и тот же
urShadow
05.09.2017, 22:22
Ничем.
Нет.
1. Паблики сменили название, а значит обратная совместимость с RakNetManager утрачена.
2. Улучшена производительность. Теперь плагин спокойно выдерживает 1000 активных игроков.
3. Добавлены zcmd-style хандлеры. (примеры в вики)
4. Добавлены основные структуры синхронизации игрока и функции для удобной работы с ними.
5. Добавлены новые типы данных для BitStream.
6. Добавлен конфигурационный файл, в котором можно отключить установку некоторых хуков и включить кэширование (в пользу производительности).
И еще много чего менее важного.
$continue$
05.09.2017, 22:30
Такой вопрос: Каким образом может помочь RakNet при написание античита на Sailent?
Нет.
1. Паблики сменили название, а значит обратная совместимость с RakNetManager утрачена.
2. Улучшена производительность. Теперь плагин спокойно выдерживает 1000 активных игроков.
3. Добавлены zcmd-style хандлеры. (примеры в вики)
4. Добавлены основные структуры синхронизации игрока и функции для удобной работы с ними.
5. Добавлены новые типы данных для BitStream.
6. Добавлен конфигурационный файл, в котором можно отключить установку некоторых хуков и включить кэширование (в пользу производительности).
И еще много чего менее важного.
Не, я не отрицал того, что текущая версия далеко ушла от той, что описана в той теме. Я имел ввиду лишь то, что обе темы описывают один и тот же плагин, но в этой теме информация более свежая.
Кстати, ту тему перемещу в архив, раз ты создал эту.
Salik_Davince
06.09.2017, 09:54
Такой вопрос: Каким образом может помочь RakNet при написание античита на Sailent?
Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.
Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.
Это можно и без ракнета сделать. И это не спасет от аимов, управляющих камерой.
Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.
Открою маленький секрет - информация об углах поворота камеры подменяется, и на сервер при использовании сайлента отправляется ложный пакет, тобишь, ты не отследишь, в какую сторону игрок действительно направил обзор.
$continue$
06.09.2017, 16:00
Согласен с оратором. Почти все читы научились подменять данные.
Открою маленький секрет - информация об углах поворота камеры подменяется, и на сервер при использовании сайлента отправляется ложный пакет, тобишь, ты не отследишь, в какую сторону игрок действительно направил обзор.
Согласен с оратором. Почти все читы научились подменять данные.
Ну так в том и дело, что "почти все". Читы же, как и античиты, пишут люди. И почти в каждом есть какая-то кривая реализация, за которую возможно(было бы, будь у сампа больше возможностей) зацепиться со стороны сервера, дабы понять, читерит ли игрок.
Такие вещи пишете, будто никогда не писали античиты
Вот, в пример
stock GiveWeapon(playerid,weaponid,amo) {
Weapon[playerid][weaponid] += amo;
GivePlayerWeapon(playerid,weaponid,amo);
}
stock ResetWeapon(playerid) {
ResetPlayerWeapons(playerid);
for(new i=0;i<47;i++) {
if(Weapon[playerid][i] > 0) GivePlayerWeapon(playerid,i,Weapon[playerid][i]);
}
}
public CheckWeapon() {
for(new i = 0; i < GetMaxPlayers(); i++) {
new gun[MAX_PLAYERS],ammo[MAX_PLAYERS];
gun[i] = GetPlayerWeapon(i);
ammo[i] = GetPlayerAmmo(i);
if(ammo[i] > Weapon[i][gun[i]]){ResetWeapon(i);}
if(ammo[i] < Weapon[i][gun[i]]){Weapon[i][gun[i]]
= ammo[i];}
}
}
Вот, в пример...
И к чем этот кусок "кода"?
http://www.apochemu.net/wp-content/uploads/2016/03/images.jpg
urShadow
09.09.2017, 22:11
Обновлен до 1.0.1.
- Исправлен хук исходящих RPC.
urShadow
12.09.2017, 21:16
Обновлен до 1.0.2.
- Исправлена ошибка "File or function is not found".
Вообще если честно не понял структуру и как работать с этим плагином.
Можно банальный пример хотя бы как реализовать античит на Fly с помощью этого плагина?
На самом деле обычный человек не сможет работать с этим плагином, он требует некоторые знания и много терпения, для изучения его работы, проще уж работать по старинке (хотя, я понимаю, что некоторые читы можно детектить только этим).
Я ничего не хочу сказать, но...
он требует некоторые знания и много терпения, для изучения его работы.
так практически про что угодно можно сказать. Про тот же самый скриптинг, например :)
urShadow
16.09.2017, 11:28
На самом деле обычный человек не сможет работать с этим плагином, он требует некоторые знания и много терпения, для изучения его работы, проще уж работать по старинке (хотя, я понимаю, что некоторые читы можно детектить только этим).
Плагин как раз и рассчитан на те ситуации, которые по старинке не обработать. Кому надо, тот добудет знания.
???
Вообще если честно не понял структуру и как работать с этим плагином.
Можно банальный пример хотя бы как реализовать античит на Fly с помощью этого плагина?
???
Не понял - не надо, а античит на Fly можно и без этого плагина реализовать. Нужно всего лишь проверять скорость, высоту, анимацию. Да и вообще, все античиты реализуются одним образом: анализируется поведение читера, определяется нормальное поведение, создаётся проверка получаемых данных с нормальными с учётом небольшой погрешности.
Этот плагин предоставляет удобный интерфейс для фильтрации данных, пришедших от игрока (и ушедших игроку). Почти всё, что можно сделать с помощью этого плагина, можно сделать и без него, но это будет не так удобно и красиво.
написал фикс 80% аимов, убирает таргет
IPacket:PLAYER_SYNC(playerid, BitStream:bs)
{
if(GetPlayerWeapon(playerid) >= 22 && !IsPlayerInAnyVehicle(playerid) && GetPlayerWeapon(playerid) != 34)
{
//with ghostmode you can't hit player via weaponid 34
//there must be a check if player crouch return false
new onFootData[PR_OnFootSync];
BS_IgnoreBits(bs, 8);
BS_ReadOnFootSync(bs, onFootData);
if(onFootData[PR_specialAction] != 3)
{
onFootData[PR_specialAction] = 3;
BS_SetWriteOffset(bs, 8);
BS_WriteOnFootSync(bs, onFootData);
}
}
return true;
}
urShadow
25.02.2019, 22:24
1.3.0:
Added new types: PR_FLOAT3, PR_FLOAT4, PR_VECTOR, PR_NORM_QUAT
Added BS_ReadWeaponsUpdate, BS_WriteWeaponsUpdate
Added BS_EmulateIncomingPacket, BS_EmulateIncomingRPC
Added optional 3rd argument 'outcoming' in BS_ReadOnFootSync, BS_ReadInCarSync, BS_WriteOnFootSync, BS_WriteInCarSync
Fixed ID_TIMESTAMP vulnerability
Fixed negative playerid in OnIncomingPacket, OnIncomingRPC
Added CR:MP (0.3e) adaptation
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot