Hallo,
da wir vermehrt Fälle von UID-Manipulation hatten, habe ich eine Detection dafür geschrieben.
So weit ich mich informiert habe, kann der Server über getPlayerUID immer die Orginale, nicht Manipulierte UID fetchen.
Also habe ich einen einfachen check gemacht und dann ein Kick über mein AH falls die UIDs nicht gleich sind.
Spoiler anzeigen
params[
["_uid",'',['']],
["_unit",objNull,[objNull]]
];
//Check if he modifyed Pid in Chache
if !(_uid isEqualTo getPlayerUID _unit) exitwith {
private _guid=("battleye\UID_GUID"callExtension (getPlayerUID _unit));
[format["ADDBAN %1 0 %2",_guid,"AutoBan | ts3.de100-altis.life"]]call TON_fnc_RCON;
[format["LOADBANS"]]call TON_fnc_RCON;
private _msg =format ["UID-Manipulation. Übergebene-UID(%1) vom Server gelesene UID(%2)",_uid,getPlayerUID _unit];
if (life_HC_isActive) then {
[format["[%1|%2]",[_unit] call life_fnc_name,(getPlayerUID _unit)]+_msg,"AntiHackLog"] remoteExec ["A3Log",HC_Life];
} else {
[format["[%1|%2]",[_unit] call life_fnc_name,(getPlayerUID _unit)]+_msg,"AntiHackLog"] call A3Log;
};
};
Alles anzeigen
So jetzt habe ich das Problem, das es den Anschein hat das entweder der Server den Befehl getPlayerUID nicht immer auslesen kann oder das durch die Manipulation die UID für den Server nicht lesbar wird, da ich den Logs zwar einträge habe aber die haben keine gelesene UID bzw die UID scheint ein leerer String zu sein wobei die vom Client gesendete UID immer vorhanden ist.
Jetzt ist meine Frage ob das ein Arma Bug ist das die UID manchmal einfach noch nicht vom Server gelesen werden kann oder ob es sich tatsächlich um UID_Manipulation handelt.
Log Eintrag (Zensiert):
[17:47:11] [[XXX] FraXXXXX KrXXXX|]UID-Manipulation. Übergebene-UID(765611983355XXXX) vom Server gelesene UID()
PS:
Der check wird nach einem waitUntil {!isNull player && player == player}; gemacht.
D.h. das Spieler Object sollte eigentlich Ready sein.