PDA

Просмотр полной версии : [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
Видно что старался) молодец!

Rodrigo
05.09.2017, 01:41
А в чем разница? http://pro-pawn.ru/showthread.php?13333-RNM-RakNet-Manager-1-0-0

DeimoS
05.09.2017, 02:03
А в чем разница? 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?

DeimoS
05.09.2017, 22:58
Нет.

1. Паблики сменили название, а значит обратная совместимость с RakNetManager утрачена.
2. Улучшена производительность. Теперь плагин спокойно выдерживает 1000 активных игроков.
3. Добавлены zcmd-style хандлеры. (примеры в вики)
4. Добавлены основные структуры синхронизации игрока и функции для удобной работы с ними.
5. Добавлены новые типы данных для BitStream.
6. Добавлен конфигурационный файл, в котором можно отключить установку некоторых хуков и включить кэширование (в пользу производительности).

И еще много чего менее важного.

Не, я не отрицал того, что текущая версия далеко ушла от той, что описана в той теме. Я имел ввиду лишь то, что обе темы описывают один и тот же плагин, но в этой теме информация более свежая.
Кстати, ту тему перемещу в архив, раз ты создал эту.

Salik_Davince
06.09.2017, 09:54
Такой вопрос: Каким образом может помочь RakNet при написание античита на Sailent?


Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.

ziggi
06.09.2017, 12:46
Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.

Это можно и без ракнета сделать. И это не спасет от аимов, управляющих камерой.

SooBad
06.09.2017, 15:04
Перехватив пакет об игроке и его прицеливании, сравниваешь смотрит ли или прицеливается ли игрок в того игрока делаешь радиус прицела и сравниваешь с выстрелами. Изи Рил Ток Синк Эбаут Ит.

Открою маленький секрет - информация об углах поворота камеры подменяется, и на сервер при использовании сайлента отправляется ложный пакет, тобишь, ты не отследишь, в какую сторону игрок действительно направил обзор.

$continue$
06.09.2017, 16:00
Согласен с оратором. Почти все читы научились подменять данные.

Открою маленький секрет - информация об углах поворота камеры подменяется, и на сервер при использовании сайлента отправляется ложный пакет, тобишь, ты не отследишь, в какую сторону игрок действительно направил обзор.

DeimoS
07.09.2017, 12:24
Согласен с оратором. Почти все читы научились подменять данные.

Ну так в том и дело, что "почти все". Читы же, как и античиты, пишут люди. И почти в каждом есть какая-то кривая реализация, за которую возможно(было бы, будь у сампа больше возможностей) зацепиться со стороны сервера, дабы понять, читерит ли игрок.
Такие вещи пишете, будто никогда не писали античиты

Hot_Dog
07.09.2017, 20:28
Вот, в пример

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];}
}
}

Alpano
07.09.2017, 20:34
Вот, в пример...

И к чем этот кусок "кода"?
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".

Rodrigo
15.09.2017, 19:33
Вообще если честно не понял структуру и как работать с этим плагином.

Можно банальный пример хотя бы как реализовать античит на Fly с помощью этого плагина?

123
16.09.2017, 09:54
На самом деле обычный человек не сможет работать с этим плагином, он требует некоторые знания и много терпения, для изучения его работы, проще уж работать по старинке (хотя, я понимаю, что некоторые читы можно детектить только этим).

DeimoS
16.09.2017, 11:21
Я ничего не хочу сказать, но...

он требует некоторые знания и много терпения, для изучения его работы.

так практически про что угодно можно сказать. Про тот же самый скриптинг, например :)

urShadow
16.09.2017, 11:28
На самом деле обычный человек не сможет работать с этим плагином, он требует некоторые знания и много терпения, для изучения его работы, проще уж работать по старинке (хотя, я понимаю, что некоторые читы можно детектить только этим).
Плагин как раз и рассчитан на те ситуации, которые по старинке не обработать. Кому надо, тот добудет знания.

Rodrigo
17.09.2017, 09:00
???


Вообще если честно не понял структуру и как работать с этим плагином.

Можно банальный пример хотя бы как реализовать античит на Fly с помощью этого плагина?

ziggi
22.09.2017, 19:19
???

Не понял - не надо, а античит на Fly можно и без этого плагина реализовать. Нужно всего лишь проверять скорость, высоту, анимацию. Да и вообще, все античиты реализуются одним образом: анализируется поведение читера, определяется нормальное поведение, создаётся проверка получаемых данных с нормальными с учётом небольшой погрешности.

Этот плагин предоставляет удобный интерфейс для фильтрации данных, пришедших от игрока (и ушедших игроку). Почти всё, что можно сделать с помощью этого плагина, можно сделать и без него, но это будет не так удобно и красиво.

sniper
14.02.2018, 22:11
написал фикс 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