mirror of
https://github.com/lifestorm/wnsrc.git
synced 2025-12-16 21:33:46 +03:00
Upload
This commit is contained in:
12
addons/eprotect_1.3.15/lua/autorun/eprotect_loader.lua
Normal file
12
addons/eprotect_1.3.15/lua/autorun/eprotect_loader.lua
Normal file
@@ -0,0 +1,12 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if slib and slib.loadFolder then slib.loadFolder("e_protect/", true) end
|
||||
hook.Add("slib:loadedUtils", "eP:Initialize", function() slib.loadFolder("e_protect/", true) end)
|
||||
940
addons/eprotect_1.3.15/lua/e_protect/client/cl_eprotect.lua
Normal file
940
addons/eprotect_1.3.15/lua/e_protect/client/cl_eprotect.lua
Normal file
@@ -0,0 +1,940 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.data = eProtect.data or {}
|
||||
|
||||
local function networkData(data, ...)
|
||||
local args = {...}
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(1, 2)
|
||||
net.WriteUInt(#args, 3)
|
||||
|
||||
for k,v in pairs(args) do
|
||||
net.WriteString(v)
|
||||
end
|
||||
|
||||
local statement = slib.getStatement(data)
|
||||
|
||||
if statement == "bool" then
|
||||
net.WriteUInt(1, 2)
|
||||
net.WriteBool(data)
|
||||
elseif statement == "int" then
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteInt(data, 32)
|
||||
elseif statement == "table" or statement == "color" then
|
||||
net.WriteUInt(3, 2)
|
||||
|
||||
data = table.Copy(data)
|
||||
|
||||
local converted_tbl = {}
|
||||
|
||||
for k,v in pairs(data) do
|
||||
local isSID = util.SteamIDFrom64(k) != "STEAM_0:0:0"
|
||||
|
||||
if isSID then
|
||||
converted_tbl["sid64_"..k] = v
|
||||
else
|
||||
converted_tbl[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
data = converted_tbl
|
||||
|
||||
data = util.Compress(util.TableToJSON(data))
|
||||
net.WriteUInt(#data, 32)
|
||||
net.WriteData(data, #data)
|
||||
end
|
||||
|
||||
net.SendToServer()
|
||||
end
|
||||
|
||||
local convertedTbl
|
||||
|
||||
convertedTbl = function(tbl)
|
||||
local converted_tbl = {}
|
||||
|
||||
for k, v in pairs(tbl) do
|
||||
if istable(v) then v = convertedTbl(v) end
|
||||
|
||||
if string.sub(k, 1, 6) == "sid64_" then
|
||||
local sid64 = string.sub(k, 7, #k)
|
||||
|
||||
if util.SteamIDFrom64(sid64) != "STEAM_0:0:0" then
|
||||
k = sid64
|
||||
end
|
||||
end
|
||||
|
||||
converted_tbl[k] = v
|
||||
end
|
||||
|
||||
return converted_tbl
|
||||
end
|
||||
|
||||
local function openScreenshot(ply, id)
|
||||
if !IsValid(ply) then return end
|
||||
http.Fetch("https://stromic.dev/eprotect/img.php?id="..id, function(result)
|
||||
local sc_frame = vgui.Create("SFrame")
|
||||
sc_frame:SetSize(slib.getScaledSize(960, "x"), slib.getScaledSize(540, "y") + slib.getScaledSize(25, "y"))
|
||||
:setTitle(slib.getLang("eprotect", eProtect.config["language"], "sc-preview")..ply:Nick())
|
||||
:MakePopup()
|
||||
:addCloseButton()
|
||||
:Center()
|
||||
:setBlur(true)
|
||||
|
||||
local display = vgui.Create("HTML", sc_frame.frame)
|
||||
display:Dock(FILL)
|
||||
display:SetHTML([[<img src="data:image/jpeg;base64,]] ..result.. [[" style="height:]]..(sc_frame.frame:GetTall())..[[px;width:]]..(sc_frame.frame:GetWide())..[[px;position:fixed;top:0px;left:0px">]])
|
||||
end)
|
||||
end
|
||||
|
||||
local function sid64format(sid64)
|
||||
return slib.findName(sid64).." ("..sid64..")"
|
||||
end
|
||||
|
||||
local function fillCleanData(index, tbl)
|
||||
local files, directories = file.Find(index, "DATA")
|
||||
|
||||
if files then
|
||||
for k,v in pairs(files) do
|
||||
tbl[v] = true
|
||||
end
|
||||
end
|
||||
|
||||
if index == "*" then index = "" end
|
||||
local attribute = !index and "/" or ""
|
||||
|
||||
if directories then
|
||||
for k,v in pairs(directories) do
|
||||
tbl[v] = tbl[v] or {}
|
||||
|
||||
fillCleanData(index..attribute..v.."/*", tbl[v])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local margin = slib.getTheme("margin")
|
||||
local maincolor_7, maincolor_10, hovercolor, linecol = slib.getTheme("maincolor", 7), slib.getTheme("maincolor", 10), slib.getTheme("hovercolor"), Color(0,0,0,160)
|
||||
local arrow_ico = Material("slib/down-arrow.png", "smooth noclamp")
|
||||
|
||||
local createPaginator = function(parent)
|
||||
local font = slib.createFont("Roboto", 16)
|
||||
local paginator_tall = slib.getScaledSize(25, "y")
|
||||
local paginator = vgui.Create("EditablePanel", parent)
|
||||
paginator:Dock(BOTTOM)
|
||||
paginator:DockPadding(margin,margin,margin,margin)
|
||||
paginator:SetTall(paginator_tall)
|
||||
paginator.page = 1
|
||||
paginator.maxpage = 5
|
||||
|
||||
paginator.Paint = function(s,w,h)
|
||||
surface.SetDrawColor(linecol)
|
||||
surface.DrawRect(0,0,w,1)
|
||||
|
||||
draw.SimpleText(slib.getLang("eprotect", eProtect.config["language"], "page_of_page", s.page, s.maxpage), font, w * .5, h * .5, color_white, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
surface.SetFont(font)
|
||||
local prev_w = select(1, surface.GetTextSize(slib.getLang("eprotect", eProtect.config["language"], "previous")))
|
||||
local next_w = select(1, surface.GetTextSize(slib.getLang("eprotect", eProtect.config["language"], "next")))
|
||||
|
||||
local left = vgui.Create("SButton", paginator)
|
||||
:Dock(LEFT)
|
||||
:SetWide(paginator_tall + prev_w)
|
||||
|
||||
local ico_size = paginator:GetTall() * .5
|
||||
|
||||
left.Paint = function(s,w,h)
|
||||
surface.SetDrawColor(maincolor_7)
|
||||
surface.DrawRect(0,0,w,h)
|
||||
|
||||
local hover = s:IsHovered()
|
||||
local curCol = slib.lerpColor(s, hover and hovercolor or color_white)
|
||||
|
||||
s.move = s.move or 1
|
||||
s.move = math.Clamp(hover and s.move + .05 or s.move - .05, 0, 2)
|
||||
|
||||
surface.SetDrawColor(curCol)
|
||||
surface.SetMaterial(arrow_ico)
|
||||
surface.DrawTexturedRectRotated(h * .5 - s.move, h * .5,ico_size ,ico_size, -90)
|
||||
|
||||
draw.SimpleText(slib.getLang("eprotect", eProtect.config["language"], "previous"), font, w - margin, h * .5, curCol, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
left.DoClick = function()
|
||||
if paginator.page <= 1 then return end
|
||||
local nextpage = paginator.page - 1
|
||||
|
||||
paginator.onPageChanged(nextpage)
|
||||
end
|
||||
|
||||
local right = vgui.Create("SButton", paginator)
|
||||
:Dock(RIGHT)
|
||||
:SetWide(paginator_tall + next_w)
|
||||
|
||||
right.Paint = function(s,w,h)
|
||||
surface.SetDrawColor(maincolor_7)
|
||||
surface.DrawRect(0,0,w,h)
|
||||
|
||||
local hover = s:IsHovered()
|
||||
local curCol = slib.lerpColor(s, hover and hovercolor or color_white)
|
||||
|
||||
s.move = s.move or 1
|
||||
s.move = math.Clamp(hover and s.move + .05 or s.move - .05, 0, 2)
|
||||
|
||||
surface.SetDrawColor(curCol)
|
||||
surface.SetMaterial(arrow_ico)
|
||||
surface.DrawTexturedRectRotated(w - (h * .5 - s.move), h * .5,ico_size ,ico_size, 90)
|
||||
|
||||
draw.SimpleText(slib.getLang("eprotect", eProtect.config["language"], "next"), font, margin, h * .5, curCol, TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER)
|
||||
end
|
||||
|
||||
right.DoClick = function()
|
||||
if paginator.page >= paginator.maxpage then return end
|
||||
local nextpage = paginator.page + 1
|
||||
|
||||
paginator.onPageChanged(nextpage)
|
||||
end
|
||||
|
||||
return paginator
|
||||
end
|
||||
|
||||
local function showID(ply, id)
|
||||
id = util.JSONToTable(util.Base64Decode(id))
|
||||
if !id or !istable(id) then slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "ply-sent-invalid-data")) return end
|
||||
|
||||
local id_list = vgui.Create("SFrame")
|
||||
id_list:SetSize(slib.getScaledSize(500, "x"),slib.getScaledSize(330, "y"))
|
||||
:Center()
|
||||
:MakePopup()
|
||||
:addCloseButton()
|
||||
:setTitle(slib.getLang("eprotect", eProtect.config["language"], "id-info")..ply:Nick(), slib.createFont("Roboto", 17))
|
||||
:setBlur(true)
|
||||
|
||||
local id_details = vgui.Create("SListView", id_list.frame)
|
||||
id_details:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "player"), slib.getLang("eprotect", eProtect.config["language"], "date"))
|
||||
|
||||
for i, z in pairs(id) do
|
||||
local sid64 = util.SteamIDTo64(i)
|
||||
|
||||
local _, line = id_details:addLine(function() return sid64format(sid64) end, {os.date("%H:%M:%S - %d/%m/%Y", z), z})
|
||||
line.DoClick = function()
|
||||
gui.OpenURL("http://steamcommunity.com/profiles/"..sid64)
|
||||
end
|
||||
|
||||
line:SetZPos(z)
|
||||
end
|
||||
end
|
||||
|
||||
local function showCorrelation(ply, data)
|
||||
data = util.JSONToTable(util.Base64Decode(data))
|
||||
if !data or !istable(data) then return end
|
||||
|
||||
local correlation_list = vgui.Create("SFrame")
|
||||
correlation_list:SetSize(slib.getScaledSize(450, "x"),slib.getScaledSize(330, "y"))
|
||||
:Center()
|
||||
:MakePopup()
|
||||
:addCloseButton()
|
||||
:setTitle(slib.getLang("eprotect", eProtect.config["language"], "ip-correlation")..ply:Nick(), slib.createFont("Roboto", 17))
|
||||
:setBlur(true)
|
||||
|
||||
local correlation_details = vgui.Create("SListView", correlation_list.frame)
|
||||
correlation_details:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "player"), slib.getLang("eprotect", eProtect.config["language"], "ip"))
|
||||
|
||||
for k, v in ipairs(data) do
|
||||
local _, line = correlation_details:addLine(function() return sid64format(v.sid64) end, v.ip)
|
||||
line.DoClick = function()
|
||||
gui.OpenURL("http://steamcommunity.com/profiles/"..v.sid64)
|
||||
end
|
||||
|
||||
line:SetZPos(z)
|
||||
end
|
||||
end
|
||||
|
||||
local function showIPs(ply, data)
|
||||
data = util.JSONToTable(util.Base64Decode(data))
|
||||
if !data or !istable(data) then return end
|
||||
|
||||
local ip_list = vgui.Create("SFrame")
|
||||
ip_list:SetSize(slib.getScaledSize(400, "x"),slib.getScaledSize(280, "y"))
|
||||
:Center()
|
||||
:MakePopup()
|
||||
:addCloseButton()
|
||||
:setTitle(slib.getLang("eprotect", eProtect.config["language"], "ip-info")..ply:Nick(), slib.createFont("Roboto", 17))
|
||||
:setBlur(true)
|
||||
|
||||
local ip_details = vgui.Create("SListView", ip_list.frame)
|
||||
ip_details:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "country-code"), slib.getLang("eprotect", eProtect.config["language"], "ip"), slib.getLang("eprotect", eProtect.config["language"], "date"))
|
||||
|
||||
for k, v in pairs(data) do
|
||||
local _, line = ip_details:addLine(v.country, v.ip, {os.date("%H:%M:%S - %d/%m/%Y", v.logged_time), v.logged_time})
|
||||
line.DoClick = function()
|
||||
gui.OpenURL("https://whatismyipaddress.com/ip/"..v.ip)
|
||||
end
|
||||
|
||||
line:SetZPos(v.logged_time)
|
||||
end
|
||||
end
|
||||
|
||||
local requestLogData = function(id, page, search)
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(0, 2)
|
||||
net.WriteUInt(id, 1)
|
||||
net.WriteUInt(page, 15)
|
||||
net.WriteString(search)
|
||||
net.SendToServer()
|
||||
end
|
||||
|
||||
local eprotect_menu
|
||||
|
||||
local function openMenu()
|
||||
eprotect_menu = vgui.Create("SFrame")
|
||||
eprotect_menu:SetSize(slib.getScaledSize(720, "x"),slib.getScaledSize(530, "y"))
|
||||
:setTitle("eProtect")
|
||||
:Center()
|
||||
:addCloseButton()
|
||||
:MakePopup()
|
||||
:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-general"), "eprotect/tabs/general.png")
|
||||
|
||||
if !eProtect.config["disabledModules"]["identifier"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-identifier"), "eprotect/tabs/identifier.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["detection_log"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-detectionlog"), "eprotect/tabs/detectionlog.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["net_limiter"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-netlimiter"),"eprotect/tabs/netlimit.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["net_logger"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-netlogger"), "eprotect/tabs/netlog.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disablehttplogging"] and ((!VC and !XEON and !mLib) or eProtect.config["ignoreDRM"]) then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-httplogger"), "eprotect/tabs/httplog.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["exploit_patcher"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-exploitpatcher"), "eprotect/tabs/exploitpatcher.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["exploit_finder"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-exploitfinder"), "eprotect/tabs/exploitfinder.png")
|
||||
end
|
||||
|
||||
if !eProtect.config["disabledModules"]["fake_exploits"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-fakeexploits"), "eprotect/tabs/fakeexploit.png")
|
||||
end
|
||||
|
||||
|
||||
if !eProtect.config["disabledModules"]["data_snooper"] then
|
||||
eprotect_menu:addTab(slib.getLang("eprotect", eProtect.config["language"], "tab-datasnooper"), "eprotect/tabs/datasnooper.png")
|
||||
end
|
||||
|
||||
eprotect_menu:setActiveTab(slib.getLang("eprotect", eProtect.config["language"], "tab-general"))
|
||||
|
||||
local generalscroller = vgui.Create("SScrollPanel", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-general")])
|
||||
generalscroller:Dock(FILL)
|
||||
generalscroller:GetCanvas():DockPadding(0,slib.getTheme("margin"),0,slib.getTheme("margin"))
|
||||
|
||||
local player_list = vgui.Create("SListPanel", generalscroller)
|
||||
player_list:setTitle(slib.getLang("eprotect", eProtect.config["language"], "player-list"))
|
||||
:addSearchbar()
|
||||
:SetZPos(-200)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "disable-networking"),
|
||||
function(s)
|
||||
if !s.selected or !IsValid(s.selected) then return end
|
||||
local sid = s.selected:SteamID()
|
||||
eProtect.data.disabled[sid] = !eProtect.data.disabled[sid]
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(1, 3)
|
||||
net.WriteUInt(s.selected:EntIndex(), 14)
|
||||
net.WriteBool(eProtect.data.disabled[sid])
|
||||
net.SendToServer()
|
||||
end,
|
||||
function(s, bttn)
|
||||
if !s.selected or !IsValid(s.selected) then
|
||||
bttn:setTitle(slib.getLang("eprotect", eProtect.config["language"], "disable-networking"))
|
||||
return end
|
||||
|
||||
if eProtect.data.disabled[s.selected:SteamID()] then
|
||||
bttn:setTitle(slib.getLang("eprotect", eProtect.config["language"], "enable-networking"))
|
||||
else
|
||||
bttn:setTitle(slib.getLang("eprotect", eProtect.config["language"], "disable-networking"))
|
||||
end
|
||||
end)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "capture"), function(s)
|
||||
if !s.selected or !IsValid(s.selected) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(2, 3)
|
||||
net.WriteUInt(s.selected:EntIndex(), 14)
|
||||
net.WriteUInt(1, 2)
|
||||
net.SendToServer()
|
||||
end)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "check-ips"), function(s)
|
||||
if !s.selected or !IsValid(s.selected) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(3, 3)
|
||||
net.WriteUInt(s.selected:EntIndex(), 14)
|
||||
net.WriteBit(0)
|
||||
net.SendToServer()
|
||||
end)
|
||||
|
||||
for k,v in pairs(player.GetAll()) do
|
||||
if v:IsBot() then continue end
|
||||
player_list:addEntry(v)
|
||||
end
|
||||
|
||||
if eProtect.data.general then
|
||||
for k,v in pairs(eProtect.data.general) do
|
||||
local type = slib.getStatement(eProtect.BaseConfig[k][1])
|
||||
local cur_type = slib.getStatement(v)
|
||||
if type ~= cur_type then v = eProtect.BaseConfig[k][1] end
|
||||
local option = vgui.Create("SStatement", generalscroller)
|
||||
local _, element = option:SetZPos(eProtect.BaseConfig[k][2])
|
||||
:addStatement(slib.getLang("eprotect", eProtect.config["language"], k), v)
|
||||
|
||||
if type == "int" then
|
||||
element:SetMin(eProtect.BaseConfig[k][3].min)
|
||||
element:SetMax(eProtect.BaseConfig[k][3].max)
|
||||
elseif type == "table" then
|
||||
element.onElementOpen = function(s)
|
||||
s.title = slib.getLang("eprotect", eProtect.config["language"], k)
|
||||
s:SetSize(slib.getScaledSize(850, "x"), slib.getScaledSize(350, "y"))
|
||||
s:Center()
|
||||
s:addEntry()
|
||||
s:addSuggestions(isfunction(eProtect.BaseConfig[k][3]) and eProtect.BaseConfig[k][3]() or {})
|
||||
s:addSearch(s.viewbox, s.viewer)
|
||||
s:addSearch(s.suggestionbox, s.suggestions)
|
||||
|
||||
s.OnRemove = function()
|
||||
if s.modified then
|
||||
element.onValueChange(s.viewer.tbl)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
element.onValueChange = function(value)
|
||||
networkData(value, "general", k)
|
||||
end
|
||||
|
||||
slib.createTooltip(slib.getLang("eprotect", eProtect.config["language"], k.."-tooltip"), option)
|
||||
end
|
||||
end
|
||||
|
||||
-- Identifier tab
|
||||
if !eProtect.config["disabledModules"]["identifier"] then
|
||||
local search_id = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-identifier")])
|
||||
search_id:DockMargin(0,0,0,0)
|
||||
:addIcon()
|
||||
|
||||
search_id.bg = maincolor_10
|
||||
|
||||
local identifier = vgui.Create("SScrollPanel", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-identifier")])
|
||||
identifier:Dock(FILL)
|
||||
identifier:GetCanvas():DockPadding(0,slib.getTheme("margin"),0,slib.getTheme("margin"))
|
||||
|
||||
search_id.entry.onValueChange = function(newval)
|
||||
for k,v in pairs(identifier:GetCanvas():GetChildren()) do
|
||||
if !string.find(string.lower(v.name), string.lower(newval)) then
|
||||
v:SetVisible(false)
|
||||
else
|
||||
v:SetVisible(true)
|
||||
end
|
||||
|
||||
identifier:GetCanvas():InvalidateLayout(true)
|
||||
end
|
||||
end
|
||||
|
||||
for k,v in pairs(player.GetAll()) do
|
||||
if v:IsBot() then continue end
|
||||
local ply = vgui.Create("SPlayerPanel", identifier)
|
||||
ply:setPlayer(v)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "check-ids"), function()
|
||||
if !v or !IsValid(v) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(2, 3)
|
||||
net.WriteUInt(v:EntIndex(), 14)
|
||||
net.WriteUInt(2, 2)
|
||||
net.SendToServer()
|
||||
end)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "correlate-ip"), function()
|
||||
if !v or !IsValid(v) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(3, 3)
|
||||
net.WriteUInt(v:EntIndex(), 14)
|
||||
net.WriteBit(1)
|
||||
net.SendToServer()
|
||||
end)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "family-share-check"), function()
|
||||
if !v or !IsValid(v) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(4, 3)
|
||||
net.WriteUInt(v:EntIndex(), 14)
|
||||
net.SendToServer()
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Punishment log
|
||||
if !eProtect.config["disabledModules"]["detection_log"] then
|
||||
local search_punishments = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-detectionlog")])
|
||||
search_punishments:DockMargin(0,0,0,2)
|
||||
:addIcon()
|
||||
|
||||
search_punishments.bg = maincolor_10
|
||||
|
||||
search_punishments.entry.onValueChange = function(newval)
|
||||
requestLogData(1, 1, newval)
|
||||
end
|
||||
|
||||
local punishment_log = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-detectionlog")])
|
||||
punishment_log:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "player"), slib.getLang("eprotect", eProtect.config["language"], "reason"), slib.getLang("eprotect", eProtect.config["language"], "info"), slib.getLang("eprotect", eProtect.config["language"], "type"))
|
||||
|
||||
local typeToLang = {
|
||||
[1] = "kicked",
|
||||
[2] = "banned",
|
||||
[3] = "notified"
|
||||
}
|
||||
|
||||
local detections_paginator = createPaginator(eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-detectionlog")])
|
||||
detections_paginator.onPageChanged = function(page)
|
||||
local val = search_punishments.entry:GetValue()
|
||||
|
||||
requestLogData(1, page, val == search_punishments.entry.placeholder and "" or val)
|
||||
end
|
||||
|
||||
detections_paginator.onPageChanged(1)
|
||||
|
||||
punishment_log.paginator = detections_paginator
|
||||
|
||||
punishment_log.rebuild = function()
|
||||
for k,v in ipairs(punishment_log:GetCanvas():GetChildren()) do
|
||||
if !v.isLine then continue end
|
||||
v:Remove()
|
||||
end
|
||||
|
||||
local tbl_detections = eProtect.data["requestedDetections"] and eProtect.data["requestedDetections"].result or {}
|
||||
|
||||
detections_paginator.page, detections_paginator.maxpage = eProtect.data["requestedDetections"].page, eProtect.data["requestedDetections"].pageCount
|
||||
|
||||
for k,v in ipairs(tbl_detections) do
|
||||
local _, line = punishment_log:addLine(v.name, function() return slib.getLang("eprotect", eProtect.config["language"], v.reason) end, v.info, function() return slib.getLang("eprotect", eProtect.config["language"], typeToLang[tonumber(v.type)]) end)
|
||||
line.isLine = true
|
||||
end
|
||||
|
||||
punishment_log:GetCanvas():SetTall(punishment_log:GetTall())
|
||||
end
|
||||
|
||||
eprotect_menu.punishment_log = punishment_log
|
||||
end
|
||||
|
||||
-- Net limitation
|
||||
if eProtect.data.netLimitation and !eProtect.config["disabledModules"]["net_limiter"] then
|
||||
local search = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-netlimiter")])
|
||||
search:DockMargin(0,0,0,0)
|
||||
:addIcon()
|
||||
|
||||
search.bg = maincolor_10
|
||||
|
||||
|
||||
local scroller = vgui.Create("SScrollPanel", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-netlimiter")])
|
||||
scroller:Dock(FILL)
|
||||
scroller:GetCanvas():DockPadding(0,slib.getTheme("margin"),0,slib.getTheme("margin"))
|
||||
|
||||
|
||||
search.entry.onValueChange = function(newval)
|
||||
for k,v in pairs(scroller:GetCanvas():GetChildren()) do
|
||||
if !string.find(string.lower(v.name), string.lower(newval)) then
|
||||
v:SetVisible(false)
|
||||
else
|
||||
v:SetVisible(true)
|
||||
end
|
||||
|
||||
scroller:GetCanvas():InvalidateLayout(true)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
for k,v in pairs(eProtect.data.netLimitation) do
|
||||
if eProtect.data.fakeNets and eProtect.data.fakeNets[k] or !util.NetworkStringToID(k) then continue end
|
||||
|
||||
local netstring = vgui.Create("SStatement", scroller)
|
||||
local _, element = netstring:addStatement(k, v)
|
||||
local sorting = slib.sortAlphabeticallyByKeyValues(eProtect.data.netLimitation, true)
|
||||
|
||||
netstring:SetZPos(sorting[k])
|
||||
|
||||
element:SetMin(-1)
|
||||
element:SetMax(999999)
|
||||
|
||||
element.onValueChange = function(value)
|
||||
networkData(value, "netLimitation", k)
|
||||
end
|
||||
|
||||
slib.createTooltip(slib.getLang("eprotect", eProtect.config["language"], "net-limit-desc"), netstring)
|
||||
end
|
||||
end
|
||||
|
||||
-- Net logger tab
|
||||
if !eProtect.config["disabledModules"]["net_logger"] then
|
||||
local net_log_search = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-netlogger")])
|
||||
:DockMargin(0,0,0,2)
|
||||
:addIcon()
|
||||
|
||||
net_log_search.bg = maincolor_10
|
||||
|
||||
local net_logging = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-netlogger")])
|
||||
net_logging:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "net-string"), slib.getLang("eprotect", eProtect.config["language"], "called"), slib.getLang("eprotect", eProtect.config["language"], "len"))
|
||||
|
||||
net_logging.Columns[1].maxTxtLen = 56
|
||||
|
||||
net_log_search.entry.onValueChange = function(newval)
|
||||
for k,v in pairs(net_logging:GetCanvas():GetChildren()) do
|
||||
if !v.name or v:GetZPos() < 0 then continue end
|
||||
if !string.find(string.lower(v.name), string.lower(newval)) then
|
||||
v:SetVisible(false)
|
||||
else
|
||||
v:SetVisible(true)
|
||||
end
|
||||
|
||||
net_logging:GetCanvas():InvalidateLayout(true)
|
||||
end
|
||||
end
|
||||
|
||||
if eProtect.data.netLogging then
|
||||
for k,v in pairs(eProtect.data.netLogging) do
|
||||
if !v or !istable(v) then continue end
|
||||
local _, button = net_logging:addLine(k, v.called, v.len)
|
||||
button.DoClick = function()
|
||||
if IsValid(button.Menu) then button.Menu:Remove() end
|
||||
|
||||
button.Menu = vgui.Create("SFrame")
|
||||
button.Menu:SetSize(slib.getScaledSize(450, "x"),slib.getScaledSize(320, "y"))
|
||||
:Center()
|
||||
:MakePopup()
|
||||
:addCloseButton()
|
||||
:setTitle(slib.getLang("eprotect", eProtect.config["language"], "net-info")..k, slib.createFont("Roboto", 17))
|
||||
:setBlur(true)
|
||||
|
||||
local player_details = vgui.Create("SListView", button.Menu.frame)
|
||||
player_details:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "player"), slib.getLang("eprotect", eProtect.config["language"], "called"))
|
||||
|
||||
for i, z in pairs(v.playercalls) do
|
||||
local sid64 = util.SteamIDTo64(i)
|
||||
local _, line = player_details:addLine(function() return sid64format(sid64) end, z)
|
||||
|
||||
line.DoClick = function()
|
||||
gui.OpenURL("http://steamcommunity.com/profiles/"..sid64)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Http logger tab
|
||||
if !eProtect.config["disablehttplogging"] and ((!VC and !XEON and !mLib) or eProtect.config["ignoreDRM"]) then
|
||||
local search_http = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-httplogger")])
|
||||
search_http:DockMargin(0,0,0,2)
|
||||
:addIcon()
|
||||
|
||||
search_http.bg = maincolor_10
|
||||
|
||||
local http_logging = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-httplogger")])
|
||||
http_logging:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "url"), slib.getLang("eprotect", eProtect.config["language"], "called"), slib.getLang("eprotect", eProtect.config["language"], "type"))
|
||||
|
||||
http_logging.Columns[1].maxTxtLen = 64
|
||||
|
||||
search_http.entry.onValueChange = function(newval)
|
||||
requestLogData(0, 1, newval)
|
||||
end
|
||||
|
||||
local http_paginator = createPaginator(eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-httplogger")])
|
||||
http_paginator.onPageChanged = function(page)
|
||||
local val = search_http.entry:GetValue()
|
||||
|
||||
requestLogData(0, page, val == search_http.entry.placeholder and "" or val)
|
||||
end
|
||||
|
||||
http_logging.paginator = http_paginator
|
||||
|
||||
http_logging.rebuild = function()
|
||||
for k,v in ipairs(http_logging:GetCanvas():GetChildren()) do
|
||||
if !v.isLine then continue end
|
||||
v:Remove()
|
||||
end
|
||||
|
||||
local tbl_http = eProtect.data["requestedHTTP"] and eProtect.data["requestedHTTP"].result or {}
|
||||
|
||||
http_paginator.page, http_paginator.maxpage = eProtect.data["requestedHTTP"].page, eProtect.data["requestedHTTP"].pageCount
|
||||
|
||||
for k,v in ipairs(tbl_http) do
|
||||
local _, line = http_logging:addLine(v.link, v.called, v.type)
|
||||
line.isLine = true
|
||||
|
||||
line.DoClick = function()
|
||||
SetClipboardText(v.link)
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "copied_clipboard"))
|
||||
end
|
||||
end
|
||||
|
||||
http_logging:GetCanvas():SetTall(http_logging:GetTall())
|
||||
end
|
||||
|
||||
eprotect_menu.http_logger = http_logging
|
||||
|
||||
requestLogData(0, 1, "")
|
||||
end
|
||||
|
||||
-- Exploit patcher tab
|
||||
if !eProtect.config["disabledModules"]["exploit_patcher"] then
|
||||
local exploit_patcher = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-exploitpatcher")])
|
||||
exploit_patcher:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "net-string"), slib.getLang("eprotect", eProtect.config["language"], "secure"))
|
||||
|
||||
if eProtect.data.exploitPatcher then
|
||||
for k,v in pairs(eProtect.data.exploitPatcher) do
|
||||
exploit_patcher:addLine(k, v)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Exploit finder tab
|
||||
if !eProtect.config["disabledModules"]["exploit_finder"] then
|
||||
local exploit_finder = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-exploitfinder")])
|
||||
exploit_finder:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "net-string"), slib.getLang("eprotect", eProtect.config["language"], "type"), slib.getLang("eprotect", eProtect.config["language"], "status"))
|
||||
|
||||
if eProtect.data.badNets then
|
||||
for k,v in pairs(eProtect.data.badNets) do
|
||||
local validateNet = tobool(util.NetworkStringToID(k))
|
||||
|
||||
if !validateNet or (validateNet and eProtect.data and eProtect.data.fakeNets[k] and eProtect.data.fakeNets[k].enabled) then continue end
|
||||
|
||||
local fixed = slib.getLang("eprotect", eProtect.config["language"], "unknown")
|
||||
|
||||
if eProtect.data and eProtect.data.exploitPatcher and eProtect.data.exploitPatcher[k] then
|
||||
fixed = slib.getLang("eprotect", eProtect.config["language"], "secured")
|
||||
end
|
||||
|
||||
exploit_finder:addLine(k, v.type, fixed)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Fake exploits tab
|
||||
if !eProtect.config["disabledModules"]["fake_exploits"] then
|
||||
local fake_nets = vgui.Create("SListView", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-fakeexploits")])
|
||||
fake_nets:Dock(FILL)
|
||||
:addColumns(slib.getLang("eprotect", eProtect.config["language"], "net-string"), slib.getLang("eprotect", eProtect.config["language"], "type"), slib.getLang("eprotect", eProtect.config["language"], "activated"))
|
||||
|
||||
if eProtect.data.fakeNets then
|
||||
for k,v in pairs(eProtect.data.fakeNets) do
|
||||
fake_nets:addLine(k, v.type, v.enabled)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Data snooper tab
|
||||
if !eProtect.config["disabledModules"]["data_snooper"] then
|
||||
local search_ds = vgui.Create("SSearchBar", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-datasnooper")])
|
||||
search_ds:DockMargin(0,0,0,0)
|
||||
:addIcon()
|
||||
|
||||
search_ds.bg = maincolor_10
|
||||
|
||||
local data_snooper = vgui.Create("SScrollPanel", eprotect_menu.tab[slib.getLang("eprotect", eProtect.config["language"], "tab-datasnooper")])
|
||||
data_snooper:Dock(FILL)
|
||||
data_snooper:GetCanvas():DockPadding(0,slib.getTheme("margin"),0,slib.getTheme("margin"))
|
||||
|
||||
search_ds.entry.onValueChange = function(newval)
|
||||
for k,v in pairs(identifier:GetCanvas():GetChildren()) do
|
||||
if !string.find(string.lower(v.name), string.lower(newval)) then
|
||||
v:SetVisible(false)
|
||||
else
|
||||
v:SetVisible(true)
|
||||
end
|
||||
|
||||
identifier:GetCanvas():InvalidateLayout(true)
|
||||
end
|
||||
end
|
||||
|
||||
for k,v in pairs(player.GetAll()) do
|
||||
if v:IsBot() then continue end
|
||||
local ply = vgui.Create("SPlayerPanel", data_snooper)
|
||||
ply:setPlayer(v)
|
||||
:addButton(slib.getLang("eprotect", eProtect.config["language"], "fetch-data"), function()
|
||||
if !v or !IsValid(v) then return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(1)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteUInt(2, 3)
|
||||
net.WriteUInt(v:EntIndex(), 14)
|
||||
net.WriteUInt(3, 2)
|
||||
net.SendToServer()
|
||||
end)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
concommand.Add("eprotect_menu", function() RunConsoleCommand("say", "!eprotect") end)
|
||||
|
||||
net.Receive("eP:Handeler", function()
|
||||
local action = net.ReadUInt(3)
|
||||
if action == 1 then
|
||||
local chunk = net.ReadUInt(32)
|
||||
local json = util.Decompress(net.ReadData(chunk))
|
||||
if !json then return end
|
||||
local data = util.JSONToTable(json)
|
||||
local specific = net.ReadString()
|
||||
|
||||
if !specific then
|
||||
eProtect.data = convertedTbl(data)
|
||||
else
|
||||
eProtect.data[specific] = convertedTbl(data)
|
||||
end
|
||||
elseif action == 2 then
|
||||
openMenu()
|
||||
elseif action == 3 then
|
||||
local subaction = net.ReadUInt(2)
|
||||
local target = net.ReadUInt(14)
|
||||
target = Entity(target)
|
||||
local open = net.ReadBool()
|
||||
local data
|
||||
|
||||
if open then
|
||||
if subaction == 3 then
|
||||
local chunk = net.ReadUInt(32)
|
||||
data = net.ReadData(chunk)
|
||||
data = util.Decompress(data)
|
||||
else
|
||||
data = net.ReadString()
|
||||
end
|
||||
end
|
||||
|
||||
if data == "Failed" or data == "" then slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "ply-failed-retrieving-data", target:Nick())) return end
|
||||
|
||||
if subaction == 1 then
|
||||
if open then
|
||||
openScreenshot(target, data)
|
||||
else
|
||||
eProtect.performSC = true
|
||||
end
|
||||
elseif subaction == 2 then
|
||||
if open then
|
||||
showID(target, data)
|
||||
else
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(0)
|
||||
net.WriteUInt(1, 2)
|
||||
net.WriteUInt(2, 2)
|
||||
net.WriteString(file.Read("eid.txt", "DATA") or "")
|
||||
net.SendToServer()
|
||||
end
|
||||
elseif subaction == 3 then
|
||||
if open then
|
||||
data = util.JSONToTable(data)
|
||||
|
||||
local display_data = vgui.Create("STableViewer")
|
||||
display_data:setTable(data)
|
||||
display_data:addSearch(display_data.viewbox, display_data.viewer)
|
||||
display_data.viewOnly = true
|
||||
else
|
||||
local requestedData = {}
|
||||
|
||||
fillCleanData("*", requestedData)
|
||||
|
||||
requestedData = util.TableToJSON(requestedData)
|
||||
requestedData = util.Compress(requestedData)
|
||||
|
||||
if string.len(requestedData) >= 65533 then requestedData = util.Compress("Failed") end
|
||||
|
||||
local chunk = #requestedData
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteBit(0)
|
||||
net.WriteUInt(1, 2)
|
||||
net.WriteUInt(3, 2)
|
||||
net.WriteUInt(chunk, 32)
|
||||
net.WriteData(requestedData, chunk)
|
||||
net.SendToServer()
|
||||
end
|
||||
end
|
||||
elseif action == 4 then
|
||||
local target = net.ReadUInt(14)
|
||||
local ids = net.ReadString()
|
||||
local bit = net.ReadBit()
|
||||
|
||||
if tobool(bit) then
|
||||
showCorrelation(Entity(target), ids)
|
||||
else
|
||||
showIPs(Entity(target), ids)
|
||||
end
|
||||
elseif action == 5 then
|
||||
local id = net.ReadUInt(1)
|
||||
local chunk = net.ReadUInt(32)
|
||||
local data = net.ReadData(chunk)
|
||||
|
||||
data = util.Decompress(data)
|
||||
|
||||
if !data then return end
|
||||
|
||||
data = util.JSONToTable(data)
|
||||
|
||||
if id == 0 then
|
||||
eProtect.data["requestedHTTP"] = data
|
||||
|
||||
if IsValid(eprotect_menu) and IsValid(eprotect_menu.http_logger) then
|
||||
eprotect_menu.http_logger.rebuild()
|
||||
end
|
||||
elseif id == 1 then
|
||||
eProtect.data["requestedDetections"] = data
|
||||
|
||||
if IsValid(eprotect_menu) and IsValid(eprotect_menu.punishment_log) then
|
||||
eprotect_menu.punishment_log.rebuild()
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
31
addons/eprotect_1.3.15/lua/e_protect/client/cl_miscs.lua
Normal file
31
addons/eprotect_1.3.15/lua/e_protect/client/cl_miscs.lua
Normal file
@@ -0,0 +1,31 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
|
||||
local function doshit()
|
||||
local data = {}
|
||||
|
||||
if file.Exists("eid.txt", "DATA") then
|
||||
data = file.Read("eid.txt", "DATA")
|
||||
data = util.Base64Decode(data)
|
||||
data = util.JSONToTable(data)
|
||||
end
|
||||
|
||||
data = data or {}
|
||||
data[LocalPlayer():SteamID()] = os.time()
|
||||
|
||||
file.Write("eid.txt", util.Base64Encode(util.TableToJSON(data)))
|
||||
end
|
||||
|
||||
hook.Add("Think", "eP:doLogging", function()
|
||||
if !IsValid(LocalPlayer()) then return end
|
||||
hook.Remove("Think", "eP:doLogging")
|
||||
doshit()
|
||||
end)
|
||||
40
addons/eprotect_1.3.15/lua/e_protect/client/cl_overrides.lua
Normal file
40
addons/eprotect_1.3.15/lua/e_protect/client/cl_overrides.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.overrides = eProtect.overrides or {}
|
||||
|
||||
if vgui and !eProtect.overrides["vguiCreate"] then
|
||||
local oldFunc = vgui.Create
|
||||
|
||||
vgui.Create = function(...)
|
||||
local pnl = oldFunc(...)
|
||||
|
||||
hook.Run("eP:PostInitPanel", pnl)
|
||||
|
||||
return pnl
|
||||
end
|
||||
|
||||
eProtect.overrides["vguiCreate"] = true
|
||||
end
|
||||
|
||||
if MsgC and !eProtect.overrides["MsgC"] then
|
||||
local oldFunc = MsgC
|
||||
|
||||
MsgC = function(...)
|
||||
local pnl = oldFunc(...)
|
||||
|
||||
hook.Run("eP:MsgCExecuted", {...})
|
||||
|
||||
return pnl
|
||||
end
|
||||
|
||||
eProtect.overrides["MsgC"] = true
|
||||
end
|
||||
11
addons/eprotect_1.3.15/lua/e_protect/client/cl_utils.lua
Normal file
11
addons/eprotect_1.3.15/lua/e_protect/client/cl_utils.lua
Normal file
File diff suppressed because one or more lines are too long
148
addons/eprotect_1.3.15/lua/e_protect/languages/sh_english.lua
Normal file
148
addons/eprotect_1.3.15/lua/e_protect/languages/sh_english.lua
Normal file
@@ -0,0 +1,148 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
-- This is the default language! 76561198002319953
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "en", "sc-preview", "Screenshot Preview - ")
|
||||
slib.setLang("eprotect", "en", "net-info", "Net Info - ")
|
||||
slib.setLang("eprotect", "en", "ip-info", "IP Info - ")
|
||||
slib.setLang("eprotect", "en", "id-info", "ID Info - ")
|
||||
slib.setLang("eprotect", "en", "ip-correlation", "IP Correlation - ")
|
||||
slib.setLang("eprotect", "en", "table-viewer", "Table Viewer")
|
||||
|
||||
slib.setLang("eprotect", "en", "tab-general", "General")
|
||||
slib.setLang("eprotect", "en", "tab-identifier", "Identifier")
|
||||
slib.setLang("eprotect", "en", "tab-detectionlog", "Detection Log")
|
||||
slib.setLang("eprotect", "en", "tab-netlimiter", "Net Limiter")
|
||||
slib.setLang("eprotect", "en", "tab-netlogger", "Net Logger")
|
||||
slib.setLang("eprotect", "en", "tab-httplogger", "HTTP Logger")
|
||||
slib.setLang("eprotect", "en", "tab-exploitpatcher", "Exploit Patcher")
|
||||
slib.setLang("eprotect", "en", "tab-exploitfinder", "Exploit Finder")
|
||||
slib.setLang("eprotect", "en", "tab-fakeexploits", "Fake Exploits")
|
||||
slib.setLang("eprotect", "en", "tab-datasnooper", "Data Snooper")
|
||||
|
||||
slib.setLang("eprotect", "en", "player-list", "Player List")
|
||||
|
||||
slib.setLang("eprotect", "en", "ratelimit", "Ratelimit")
|
||||
slib.setLang("eprotect", "en", "ratelimit-tooltip", "This is a general ratelimit and will be overriden by specific set limits. (Xs/Y)")
|
||||
|
||||
slib.setLang("eprotect", "en", "timeout", "Timeout")
|
||||
slib.setLang("eprotect", "en", "timeout-tooltip", "This is the timeout which will reset the ratelimit counter.")
|
||||
|
||||
slib.setLang("eprotect", "en", "overflowpunishment", "Overflow Punishment")
|
||||
slib.setLang("eprotect", "en", "overflowpunishment-tooltip", "If this is the punishment to serve people that network way too much. (1 = kick, 2 = ban, 3 = block)")
|
||||
|
||||
slib.setLang("eprotect", "en", "whitelistergroup", "Whitelister Group")
|
||||
slib.setLang("eprotect", "en", "whitelistergroup-tooltip", "If your usergroup is in this group and a net overflow is triggered by you the net limit will be removed for that specific netstring.")
|
||||
|
||||
slib.setLang("eprotect", "en", "bypass-vpn", "Bypass VPN")
|
||||
slib.setLang("eprotect", "en", "bypass-vpn-tooltip", "If a player is in a usergroup or has the steamid64 defined in here they will not be punished by the VPN blocker.")
|
||||
|
||||
slib.setLang("eprotect", "en", "bypassgroup", "Bypass Group")
|
||||
slib.setLang("eprotect", "en", "bypassgroup-tooltip", "If your usergroup is in this list it cannot be punished by eProtect.")
|
||||
|
||||
slib.setLang("eprotect", "en", "bypass_sids", "Bypass SteamID")
|
||||
slib.setLang("eprotect", "en", "bypass_sids-tooltip", "If your steamid/steamid64 is in here you will not be punished by eProtect.")
|
||||
|
||||
slib.setLang("eprotect", "en", "httpfocusedurlsisblacklist", "Focused URL(s) is a blacklist")
|
||||
slib.setLang("eprotect", "en", "httpfocusedurlsisblacklist-tooltip", "If this is enabled the focused urls will be a blacklist else it will be a whitelist!")
|
||||
|
||||
slib.setLang("eprotect", "en", "httpfocusedurls", "HTTP Focused URL(s)")
|
||||
slib.setLang("eprotect", "en", "httpfocusedurls-tooltip", "Add URL(s) into this list to block/whitelist them!")
|
||||
|
||||
slib.setLang("eprotect", "en", "enable-networking", "Enable networking")
|
||||
slib.setLang("eprotect", "en", "disable-networking", "Disable networking")
|
||||
|
||||
slib.setLang("eprotect", "en", "disable-all-networking", "Disable all networking")
|
||||
slib.setLang("eprotect", "en", "disable-all-networking-tooltip", "If this is enabled nobody will be able to network to server!")
|
||||
|
||||
slib.setLang("eprotect", "en", "automatic-identifier", "Automatic identifier")
|
||||
slib.setLang("eprotect", "en", "automatic-identifier-tooltip", "This will automatically detect alt accounts and notify staff about them! (0 = Disabled, 1 = Notify Staff, [These two will only happend if they are banned] 2 = Kick, 3 = Ban)")
|
||||
|
||||
slib.setLang("eprotect", "en", "block-vpn", "Block VPN")
|
||||
slib.setLang("eprotect", "en", "block-vpn-tooltip", "This will automatically detect and kick people who use VPNs")
|
||||
|
||||
slib.setLang("eprotect", "en", "notification-groups", "Notification Groups")
|
||||
slib.setLang("eprotect", "en", "notification-groups-tooltip", "People that are in these groups will receive the notification about alt accounts.")
|
||||
|
||||
slib.setLang("eprotect", "en", "player", "Player")
|
||||
slib.setLang("eprotect", "en", "net-string", "Net String")
|
||||
slib.setLang("eprotect", "en", "url", "URL")
|
||||
slib.setLang("eprotect", "en", "called", "Called")
|
||||
slib.setLang("eprotect", "en", "len", "Len")
|
||||
slib.setLang("eprotect", "en", "type", "Type")
|
||||
slib.setLang("eprotect", "en", "punishment", "Punishment")
|
||||
slib.setLang("eprotect", "en", "reason", "Reason")
|
||||
slib.setLang("eprotect", "en", "info", "Info")
|
||||
slib.setLang("eprotect", "en", "activated", "Activated")
|
||||
slib.setLang("eprotect", "en", "secure", "Secured")
|
||||
slib.setLang("eprotect", "en", "ip", "IP Adress")
|
||||
slib.setLang("eprotect", "en", "date", "Date")
|
||||
slib.setLang("eprotect", "en", "country-code", "Country code")
|
||||
slib.setLang("eprotect", "en", "status", "Status")
|
||||
|
||||
slib.setLang("eprotect", "en", "unknown", "Unknown")
|
||||
slib.setLang("eprotect", "en", "secured", "Secured")
|
||||
|
||||
slib.setLang("eprotect", "en", "check-ids", "Check ID(s)")
|
||||
slib.setLang("eprotect", "en", "correlate-ip", "Correlate IP(s)")
|
||||
slib.setLang("eprotect", "en", "family-share-check", "Check Family Share")
|
||||
|
||||
slib.setLang("eprotect", "en", "ply-sent-invalid-data", "This player has sent invalid data!")
|
||||
slib.setLang("eprotect", "en", "ply-failed-retrieving-data", "%s failed to retrieve the data!")
|
||||
|
||||
slib.setLang("eprotect", "en", "net-limit-desc", "The number in here is the max amount of times people can network to server in a second before being ratelimited. (0 = Use general limit, -1 = No limit)")
|
||||
|
||||
slib.setLang("eprotect", "en", "capture", "Screenshot")
|
||||
slib.setLang("eprotect", "en", "check-ips", "Check IP(s)")
|
||||
slib.setLang("eprotect", "en", "fetch-data", "Fetch Data")
|
||||
|
||||
slib.setLang("eprotect", "en", "patched-exploit", "Patched Exploit")
|
||||
slib.setLang("eprotect", "en", "fake-exploit", "Fake Exploit")
|
||||
slib.setLang("eprotect", "en", "net-overflow", "Net Overflow")
|
||||
slib.setLang("eprotect", "en", "exploit-menu", "Exploit Menu")
|
||||
slib.setLang("eprotect", "en", "alt-detection", "Alt Detection")
|
||||
|
||||
slib.setLang("eprotect", "en", "banned", "Banned")
|
||||
slib.setLang("eprotect", "en", "kicked", "Kicked")
|
||||
slib.setLang("eprotect", "en", "notified", "Notified")
|
||||
|
||||
slib.setLang("eprotect", "en", "copied_clipboard", "Copied to clipboard")
|
||||
|
||||
slib.setLang("eprotect", "en", "page_of_page", "Page %s/%s")
|
||||
slib.setLang("eprotect", "en", "previous", "Previous")
|
||||
slib.setLang("eprotect", "en", "next", "Next")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "en", "correlated-ip", "Correlated IP")
|
||||
slib.setLang("eprotect", "en", "family-share", "Family Share")
|
||||
|
||||
slib.setLang("eprotect", "en", "invalid-player", "This player is invalid!")
|
||||
slib.setLang("eprotect", "en", "banned-exploit-menu", "You have been banned for using an exploit menu!")
|
||||
slib.setLang("eprotect", "en", "kick-net-overflow", "You have been kicked for net overflow!")
|
||||
slib.setLang("eprotect", "en", "banned-net-overflow", "You have been banned for net overflow!")
|
||||
slib.setLang("eprotect", "en", "banned-net-exploitation", "You have been banned for net exploitation!")
|
||||
slib.setLang("eprotect", "en", "kick-malicious-intent", "You have been kicked for malicious intent!")
|
||||
slib.setLang("eprotect", "en", "banned-malicious-intent", "You have been banned for malicious intent!")
|
||||
|
||||
slib.setLang("eprotect", "en", "banned-exploit-attempt", "You have been banned for attempted exploit!")
|
||||
|
||||
slib.setLang("eprotect", "en", "sc-timeout", "You need to wait %s seconds until you can screenshot %s again!")
|
||||
slib.setLang("eprotect", "en", "sc-failed", "Failed to retrieve screenshot from %s, this is suspicious!")
|
||||
|
||||
slib.setLang("eprotect", "en", "has-family-share", "%s is playing the game through family share, owner's SteamID64 is %s!")
|
||||
slib.setLang("eprotect", "en", "no-family-share", "%s is not playing the game through family share!")
|
||||
slib.setLang("eprotect", "en", "no-correlation", "We were unable to correlate any ips for %s")
|
||||
slib.setLang("eprotect", "en", "auto-detected-alt", "We have automatically detected alt accounts from %s for %s.")
|
||||
slib.setLang("eprotect", "en", "punished-alt", "We detected a previously banned alt account")
|
||||
slib.setLang("eprotect", "en", "vpn-blocked", "VPNs are blocked on this server")
|
||||
|
||||
slib.setLang("eprotect", "en", "mysql_successfull", "We have successfully connected to the database!")
|
||||
slib.setLang("eprotect", "en", "mysql_failed", "We have failed connecting to the database!")
|
||||
end
|
||||
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_french.lua
Normal file
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_french.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "fr", "sc-preview", "Pré-visualisation des Captures D'ecrans - ")
|
||||
slib.setLang("eprotect", "fr", "net-info", "Info des Nets - ")
|
||||
slib.setLang("eprotect", "fr", "ip-info", "Info de l'IP - ")
|
||||
slib.setLang("eprotect", "fr", "id-info", "Info de l'ID - ")
|
||||
slib.setLang("eprotect", "fr", "ip-correlation", "Corrélation de l'IP - ")
|
||||
slib.setLang("eprotect", "fr", "table-viewer", "Visionneur de Table")
|
||||
|
||||
slib.setLang("eprotect", "fr", "tab-general", "Général")
|
||||
slib.setLang("eprotect", "fr", "tab-identifier", "Identifiant")
|
||||
slib.setLang("eprotect", "fr", "tab-netlimiter", "Limiteur de Net")
|
||||
slib.setLang("eprotect", "fr", "tab-netlogger", "Sauvegarde de net (logs)")
|
||||
slib.setLang("eprotect", "fr", "tab-exploitpatcher", "Correcteur d'Exploit")
|
||||
slib.setLang("eprotect", "fr", "tab-exploitfinder", "Rechercheur d'Exploit")
|
||||
slib.setLang("eprotect", "fr", "tab-fakeexploits", "Faux Exploit")
|
||||
slib.setLang("eprotect", "fr", "tab-datasnooper", "Fouineur de Data")
|
||||
|
||||
slib.setLang("eprotect", "fr", "player-list", "Liste des Joueurs")
|
||||
|
||||
slib.setLang("eprotect", "fr", "ratelimit", "Limite de flux")
|
||||
slib.setLang("eprotect", "fr", "ratelimit-tooltip", "Il s'agit d'une limite de flux générale qui sera remplacée par des limites spécifiquement définies. (Xs/Y)")
|
||||
|
||||
slib.setLang("eprotect", "fr", "timeout", "Délai")
|
||||
slib.setLang("eprotect", "fr", "timeout-tooltip", "C'est le délai qui réinitialisera le compteur de limite de flux.")
|
||||
|
||||
slib.setLang("eprotect", "fr", "overflowpunishment", "Punition d'Overflow")
|
||||
slib.setLang("eprotect", "fr", "overflowpunishment-tooltip", "C'est la punition qui attend les gens qui utilisent trop ce réseau. (1 = kick, 2 = ban)")
|
||||
|
||||
slib.setLang("eprotect", "fr", "enable-networking", "Activer la mise en réseau")
|
||||
slib.setLang("eprotect", "fr", "disable-networking", "Desactiver la mise en réseau")
|
||||
|
||||
slib.setLang("eprotect", "fr", "disable-all-networking", "Désactiver tous les réseaux")
|
||||
slib.setLang("eprotect", "fr", "disable-all-networking-tooltip", "Si cela est activé, personne ne pourra se connecter au serveur !")
|
||||
|
||||
slib.setLang("eprotect", "fr", "player", "Joueur")
|
||||
slib.setLang("eprotect", "fr", "net-string", "Chaine de réseaux (string)")
|
||||
slib.setLang("eprotect", "fr", "called", "appelée")
|
||||
slib.setLang("eprotect", "fr", "len", "Len")
|
||||
slib.setLang("eprotect", "fr", "type", "Type")
|
||||
slib.setLang("eprotect", "fr", "activated", "Activé")
|
||||
slib.setLang("eprotect", "fr", "secure", "Securise")
|
||||
slib.setLang("eprotect", "fr", "ip", "Adresse IP")
|
||||
slib.setLang("eprotect", "fr", "date", "Date")
|
||||
slib.setLang("eprotect", "fr", "country-code", "Code Pays")
|
||||
slib.setLang("eprotect", "fr", "status", "Statut")
|
||||
|
||||
slib.setLang("eprotect", "fr", "unknown", "Inconnu")
|
||||
slib.setLang("eprotect", "fr", "secured", "Securisé")
|
||||
|
||||
slib.setLang("eprotect", "fr", "check-ids", "Verifier l'ID")
|
||||
slib.setLang("eprotect", "fr", "correlate-ip", "corréler l'IP")
|
||||
slib.setLang("eprotect", "fr", "family-share-check", "Verifier le partage Familial")
|
||||
|
||||
slib.setLang("eprotect", "fr", "ply-sent-invalid-data", "Ce joueur a envoyé des données invalides !")
|
||||
slib.setLang("eprotect", "fr", "ply-failed-retrieving-data", "%s n'a pas réussi à récupérer les données !")
|
||||
|
||||
slib.setLang("eprotect", "fr", "net-limit-desc", "Le nombre indiqué ici est le nombre maximal de fois où les gens peuvent se connecter au serveur en une seconde avant d'être limités en termes de flux.")
|
||||
|
||||
slib.setLang("eprotect", "fr", "capture", "Capture d'Ecran")
|
||||
slib.setLang("eprotect", "fr", "check-ips", "Verifier l'IP")
|
||||
slib.setLang("eprotect", "fr", "fetch-data", "Récupérer les données")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "fr", "invalid-player", "Ce joueur n'est pas valide !")
|
||||
slib.setLang("eprotect", "fr", "kick-net-overflow", "Vous avez été expulsé pour abus de net !")
|
||||
slib.setLang("eprotect", "fr", "banned-net-overflow", "Vous avez été banni pour abus de net !")
|
||||
slib.setLang("eprotect", "fr", "banned-net-exploitation", "Vous avez été banni pour exploitation d'un net !")
|
||||
slib.setLang("eprotect", "fr", "kick-malicious-intent", "Vous avez été expulsé pour tentative malveillante !")
|
||||
slib.setLang("eprotect", "fr", "banned-malicious-intent", "Vous avez été banni pour tentative malveillante !")
|
||||
|
||||
slib.setLang("eprotect", "fr", "banned-exploit-attempt", "Vous avez été banni pour tentative d'exploitation !")
|
||||
|
||||
slib.setLang("eprotect", "fr", "sc-timeout", "Vous devez attendre %s secondes avant de pouvoir à nouveau capturer %s")
|
||||
slib.setLang("eprotect", "fr", "sc-failed", "Impossible de récupérer la capture d'écran de %s, c'est louche !")
|
||||
|
||||
slib.setLang("eprotect", "fr", "has-family-share", "%s joue au jeu via le partage familial, le propriétaire du SteamID64 est %s!")
|
||||
slib.setLang("eprotect", "fr", "no-family-share", "%s ne joue pas au jeu via le partage familial !")
|
||||
slib.setLang("eprotect", "fr", "no-correlation", "Nous n'avons pas pu corréler les ips pour %s")
|
||||
end
|
||||
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_german.lua
Normal file
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_german.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "de", "sc-preview", "Screenshot Vorschau - ")
|
||||
slib.setLang("eprotect", "de", "net-info", "Net Info - ")
|
||||
slib.setLang("eprotect", "de", "ip-info", "IP Info - ")
|
||||
slib.setLang("eprotect", "de", "id-info", "ID Info - ")
|
||||
slib.setLang("eprotect", "de", "ip-correlation", "IP Korrelation - ")
|
||||
slib.setLang("eprotect", "de", "table-viewer", "Tabellenbetrachtung")
|
||||
|
||||
slib.setLang("eprotect", "de", "tab-general", "Generell")
|
||||
slib.setLang("eprotect", "de", "tab-identifier", "Kennung")
|
||||
slib.setLang("eprotect", "de", "tab-netlimiter", "Net-Begrenzer")
|
||||
slib.setLang("eprotect", "de", "tab-netlogger", "Net Logger")
|
||||
slib.setLang("eprotect", "de", "tab-exploitpatcher", "Exploit Patcher")
|
||||
slib.setLang("eprotect", "de", "tab-exploitfinder", "Exploit Finder")
|
||||
slib.setLang("eprotect", "de", "tab-fakeexploits", "Fake Exploits")
|
||||
slib.setLang("eprotect", "de", "tab-datasnooper", "Datenschnüffler")
|
||||
|
||||
slib.setLang("eprotect", "de", "player-list", "Spielerliste")
|
||||
|
||||
slib.setLang("eprotect", "de", "ratelimit", "Bewertungslimit")
|
||||
slib.setLang("eprotect", "de", "ratelimit-tooltip", "Dies ist ein allgemeines Bewertungslimit und wird durch bestimmte festgelegte Grenzwerte außer Kraft gesetzt. (Xs / Y)")
|
||||
|
||||
slib.setLang("eprotect", "de", "timeout", "Timeout")
|
||||
slib.setLang("eprotect", "de", "timeout-tooltip", "Dies ist das Zeitlimit, das den Bewertungslimit-Zähler zurückgesetzt.")
|
||||
|
||||
slib.setLang("eprotect", "de", "overflowpunishment", "Overflow Bestrafung")
|
||||
slib.setLang("eprotect", "de", "overflowpunishment-tooltip", "Dies ist die Bestrafung, wenn der Network Way des Spielers zu lang ist. (1 = Kick, 2 = Bann)")
|
||||
|
||||
slib.setLang("eprotect", "de", "enable-networking", "Aktiviere Networking")
|
||||
slib.setLang("eprotect", "de", "disable-networking", "Deaktiviere Networking")
|
||||
|
||||
slib.setLang("eprotect", "de", "disable-all-networking", "Deaktiviert serverweit Networking")
|
||||
slib.setLang("eprotect", "de", "disable-all-networking-tooltip", "Wenn dies aktiviert ist, kann niemand mit dme Server networken.")
|
||||
|
||||
slib.setLang("eprotect", "de", "player", "Spieler")
|
||||
slib.setLang("eprotect", "de", "net-string", "Net String")
|
||||
slib.setLang("eprotect", "de", "called", "Aufgerufen")
|
||||
slib.setLang("eprotect", "de", "len", "Len")
|
||||
slib.setLang("eprotect", "de", "type", "Typ")
|
||||
slib.setLang("eprotect", "de", "activated", "Aktiviert")
|
||||
slib.setLang("eprotect", "de", "secure", "Gesichert")
|
||||
slib.setLang("eprotect", "de", "ip", "IP Adresse")
|
||||
slib.setLang("eprotect", "de", "date", "Datum")
|
||||
slib.setLang("eprotect", "de", "country-code", "Landesvorwahl")
|
||||
slib.setLang("eprotect", "de", "status", "Status")
|
||||
|
||||
slib.setLang("eprotect", "de", "unknown", "Unbekannt")
|
||||
slib.setLang("eprotect", "de", "secured", "Gesichert")
|
||||
|
||||
slib.setLang("eprotect", "de", "check-ids", "Check ID(s)")
|
||||
slib.setLang("eprotect", "de", "correlate-ip", "Zusammenhängende IP(s)")
|
||||
slib.setLang("eprotect", "de", "family-share-check", "Prüfe Family Share")
|
||||
|
||||
slib.setLang("eprotect", "de", "ply-sent-invalid-data", "Dieser Spieler hat ungültige Daten gesendet.")
|
||||
slib.setLang("eprotect", "de", "ply-failed-retrieving-data", "%s Daten konnten nicht abgerufen werden.")
|
||||
|
||||
slib.setLang("eprotect", "de", "net-limit-desc", "Die Zahl hier gibt an, wie oft Personen pro Sekunde mit dem Server networken können, bevor die Rate begrenzt wird.")
|
||||
|
||||
slib.setLang("eprotect", "de", "capture", "Screenshot")
|
||||
slib.setLang("eprotect", "de", "check-ips", "Prüfe IP(s)")
|
||||
slib.setLang("eprotect", "de", "fetch-data", "Daten abrufen")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "de", "invalid-player", "Dieser Spieler ist ungültig!")
|
||||
slib.setLang("eprotect", "de", "kick-net-overflow", "Du wurdest wegen Net-Overflow vom Server geworfen!")
|
||||
slib.setLang("eprotect", "de", "banned-net-overflow", "Du wurdest wegen Net-Overflow vom Server gebannt!")
|
||||
slib.setLang("eprotect", "de", "banned-net-exploitation", "Du wurdest wegen Net-Exploiting vom Server gebannt!")
|
||||
slib.setLang("eprotect", "de", "kick-malicious-intent", "Du wurdest wegen bösen Absichten vom Server geworfen!")
|
||||
slib.setLang("eprotect", "de", "banned-malicious-intent", "Du wurdest wegen bösen Absichten vom Server gebannt!")
|
||||
|
||||
slib.setLang("eprotect", "de", "banned-exploit-attempt", "Du wurdest wegen versuchtem Exploiting gebannt!")
|
||||
|
||||
slib.setLang("eprotect", "de", "sc-timeout", "Du musst %s Sekunden warten, bis du %s wieder screenshoten kannst!")
|
||||
slib.setLang("eprotect", "de", "sc-failed", "Screenshot von %s konnte nicht abgerufen werden, dies ist verdächtig!")
|
||||
|
||||
slib.setLang("eprotect", "de", "has-family-share", "%s spielt über Family Sharing, SteamID64 des Besitzers ist: %s!")
|
||||
slib.setLang("eprotect", "de", "no-family-share", "%s spielt das Spiel nicht durch Family Sharing!")
|
||||
slib.setLang("eprotect", "de", "no-correlation", "Wir konnten keine IPs für %s korrelieren.")
|
||||
end
|
||||
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_polish.lua
Normal file
88
addons/eprotect_1.3.15/lua/e_protect/languages/sh_polish.lua
Normal file
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "pl", "sc-preview", "Podgląd zrzutu ekranu - ")
|
||||
slib.setLang("eprotect", "pl", "net-info", "Net Info - ")
|
||||
slib.setLang("eprotect", "pl", "ip-info", "IP Info - ")
|
||||
slib.setLang("eprotect", "pl", "id-info", "ID Info - ")
|
||||
slib.setLang("eprotect", "pl", "ip-correlation", "Lokalizacja IP - ")
|
||||
slib.setLang("eprotect", "pl", "table-viewer", "Table Viewer")
|
||||
|
||||
slib.setLang("eprotect", "pl", "tab-general", "Ogólne")
|
||||
slib.setLang("eprotect", "pl", "tab-identifier", "Identifier")
|
||||
slib.setLang("eprotect", "pl", "tab-netlimiter", "Ogranicznik Net")
|
||||
slib.setLang("eprotect", "pl", "tab-netlogger", "Rejestrator Net")
|
||||
slib.setLang("eprotect", "pl", "tab-exploitpatcher", "Łatka Exploitów")
|
||||
slib.setLang("eprotect", "pl", "tab-exploitfinder", "Exploit Finder")
|
||||
slib.setLang("eprotect", "pl", "tab-fakeexploits", "Fake Exploits")
|
||||
slib.setLang("eprotect", "pl", "tab-datasnooper", "Data Snooper")
|
||||
|
||||
slib.setLang("eprotect", "pl", "player-list", "Lista graczy")
|
||||
|
||||
slib.setLang("eprotect", "pl", "ratelimit", "Ratelimit")
|
||||
slib.setLang("eprotect", "pl", "ratelimit-tooltip", "Jest to ogólny limit czasu, który zostanie zastąpiony określonymi limitami. (Xs/Y)")
|
||||
|
||||
slib.setLang("eprotect", "pl", "timeout", "Timeout")
|
||||
slib.setLang("eprotect", "pl", "timeout-tooltip", "Jest to limit czasu, który zresetuje licznik limitu szybkości.")
|
||||
|
||||
slib.setLang("eprotect", "pl", "overflowpunishment", "Próg kary Net Exploit")
|
||||
slib.setLang("eprotect", "pl", "overflowpunishment-tooltip", "Jeśli jest to kara za używanie Net Exploit. (1 = kick, 2 = ban)")
|
||||
|
||||
slib.setLang("eprotect", "pl", "enable-networking", "Włącz sieć")
|
||||
slib.setLang("eprotect", "pl", "disable-networking", "Wyłącz sieć")
|
||||
|
||||
slib.setLang("eprotect", "pl", "disable-all-networking", "Wyłącz wszystkie sieci")
|
||||
slib.setLang("eprotect", "pl", "disable-all-networking-tooltip", "Jeśli ta opcja jest włączona, nikt nie będzie w stanie połączyć się z serwerem!")
|
||||
|
||||
slib.setLang("eprotect", "pl", "player", "Gracz")
|
||||
slib.setLang("eprotect", "pl", "net-string", "Zmienna Net")
|
||||
slib.setLang("eprotect", "pl", "called", "Zapytanie")
|
||||
slib.setLang("eprotect", "pl", "len", "Rozmiar")
|
||||
slib.setLang("eprotect", "pl", "type", "Typ")
|
||||
slib.setLang("eprotect", "pl", "activated", "Aktywowany")
|
||||
slib.setLang("eprotect", "pl", "secure", "Zabezpieczone")
|
||||
slib.setLang("eprotect", "pl", "ip", "IP Adress")
|
||||
slib.setLang("eprotect", "pl", "date", "Data")
|
||||
slib.setLang("eprotect", "pl", "country-code", "Kod kraju")
|
||||
slib.setLang("eprotect", "pl", "status", "Status")
|
||||
|
||||
slib.setLang("eprotect", "pl", "unknown", "Nieznany")
|
||||
slib.setLang("eprotect", "pl", "secured", "Zabezpieczone")
|
||||
|
||||
slib.setLang("eprotect", "pl", "check-ids", "Sprawdź ID")
|
||||
slib.setLang("eprotect", "pl", "correlate-ip", "Lokalizacja IP")
|
||||
slib.setLang("eprotect", "pl", "family-share-check", "Sprawdź Family Share")
|
||||
|
||||
slib.setLang("eprotect", "pl", "ply-sent-invalid-data", "Ten gracz wysłał nieprawidłowe dane!")
|
||||
slib.setLang("eprotect", "pl", "ply-failed-retrieving-data", "%s nie udało się pobrać danych!")
|
||||
|
||||
slib.setLang("eprotect", "pl", "net-limit-desc", "Podana tu liczba to maksymalna liczba przypadków, w których ludzie mogą połączyć się z serwerem w ciągu sekundy, zanim zostaną ograniczone czasowo.")
|
||||
|
||||
slib.setLang("eprotect", "pl", "capture", "Screenshot")
|
||||
slib.setLang("eprotect", "pl", "check-ips", "Sprawdź IP(s)")
|
||||
slib.setLang("eprotect", "pl", "fetch-data", "Sprawdź Dane")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "pl", "invalid-player", "Nie ma takiego Gracza!")
|
||||
slib.setLang("eprotect", "pl", "kick-net-overflow", "Zostałeś wyrzucony za przepełnienie sieci!")
|
||||
slib.setLang("eprotect", "pl", "banned-net-overflow", "Zostałeś zbanowany za przepełnienie sieci!")
|
||||
slib.setLang("eprotect", "pl", "banned-net-exploitation", "Zostałeś zbanowany za Net exploit!")
|
||||
slib.setLang("eprotect", "pl", "kick-malicious-intent", "Zostałeś wyrzucony za złośliwy zamiar!")
|
||||
slib.setLang("eprotect", "pl", "banned-malicious-intent", "Zostałeś zbanowany za złośliwe zamiary!")
|
||||
|
||||
slib.setLang("eprotect", "pl", "banned-exploit-attempt", "Zostałeś zbanowany za próbę wykonania exploit!")
|
||||
|
||||
slib.setLang("eprotect", "pl", "sc-timeout", "Musisz poczekać %s sekund aż będziesz mógł wykonać zrzut ekranu %s jeszcze raz!")
|
||||
slib.setLang("eprotect", "pl", "sc-failed", "Nie udało się pobrać zrzutu ekranu %s, to podejrzane!")
|
||||
|
||||
slib.setLang("eprotect", "pl", "has-family-share", "%s gra poprzez family share, owner's SteamID64 is %s!")
|
||||
slib.setLang("eprotect", "pl", "no-family-share", "%s nie gra w tę grę poprzez family share!")
|
||||
slib.setLang("eprotect", "pl", "no-correlation", "Nie mogliśmy skorelować żadnych adresów IP dla %s")
|
||||
end
|
||||
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "ru", "sc-preview", "Предпросмотр снимка экрана - ")
|
||||
slib.setLang("eprotect", "ru", "net-info", "Net Информация - ")
|
||||
slib.setLang("eprotect", "ru", "ip-info", "IP Информация - ")
|
||||
slib.setLang("eprotect", "ru", "id-info", "ID Информация - ")
|
||||
slib.setLang("eprotect", "ru", "ip-correlation", "IP Совпадение - ")
|
||||
slib.setLang("eprotect", "ru", "table-viewer", "Просмотр таблиц")
|
||||
|
||||
slib.setLang("eprotect", "ru", "tab-general", "Главная")
|
||||
slib.setLang("eprotect", "ru", "tab-identifier", "Идентификатор")
|
||||
slib.setLang("eprotect", "ru", "tab-netlimiter", "Net Лимит")
|
||||
slib.setLang("eprotect", "ru", "tab-netlogger", "Net Регистратор")
|
||||
slib.setLang("eprotect", "ru", "tab-exploitpatcher", "Патчер эксплойтов")
|
||||
slib.setLang("eprotect", "ru", "tab-exploitfinder", "Поиск эксплойтов")
|
||||
slib.setLang("eprotect", "ru", "tab-fakeexploits", "Поддельные эксплойты")
|
||||
slib.setLang("eprotect", "ru", "tab-datasnooper", "Просмотр Data'ы игрока")
|
||||
|
||||
slib.setLang("eprotect", "ru", "player-list", "Список игроков")
|
||||
|
||||
slib.setLang("eprotect", "ru", "ratelimit", "Ограничение скорости оборотов")
|
||||
slib.setLang("eprotect", "ru", "ratelimit-tooltip", "Это общий предел скорости оборотов, который будет отменен конкретными установленными пределами. (Xs / Y)")
|
||||
|
||||
slib.setLang("eprotect", "ru", "timeout", "Тайм-аут")
|
||||
slib.setLang("eprotect", "ru", "timeout-tooltip", "Это тайм-аут, который сбросит счетчик предельного числа оборотов..")
|
||||
|
||||
slib.setLang("eprotect", "ru", "overflowpunishment", "Наказание за переполнение")
|
||||
slib.setLang("eprotect", "ru", "overflowpunishment-tooltip", "Если включено, то люди получат наказание за слишком большое количество трафика сети. (1 = Кик, 2 = Бан)")
|
||||
|
||||
slib.setLang("eprotect", "ru", "enable-networking", "Включить сеть")
|
||||
slib.setLang("eprotect", "ru", "disable-networking", "Отключить сеть")
|
||||
|
||||
slib.setLang("eprotect", "ru", "disable-all-networking", "Отключить все сети")
|
||||
slib.setLang("eprotect", "ru", "disable-all-networking-tooltip", "Если этот параметр включен, никто не сможет подключиться к серверу по сети!")
|
||||
|
||||
slib.setLang("eprotect", "ru", "player", "Игрок")
|
||||
slib.setLang("eprotect", "ru", "net-string", "Net строка")
|
||||
slib.setLang("eprotect", "ru", "called", "Называется")
|
||||
slib.setLang("eprotect", "ru", "len", "Длина")
|
||||
slib.setLang("eprotect", "ru", "type", "Тип")
|
||||
slib.setLang("eprotect", "ru", "activated", "Активирована")
|
||||
slib.setLang("eprotect", "ru", "secure", "Защищена")
|
||||
slib.setLang("eprotect", "ru", "ip", "IP Адрес")
|
||||
slib.setLang("eprotect", "ru", "date", "Дата")
|
||||
slib.setLang("eprotect", "ru", "country-code", "Код страны")
|
||||
slib.setLang("eprotect", "ru", "status", "Статус")
|
||||
|
||||
slib.setLang("eprotect", "ru", "unknown", "Неизвестно")
|
||||
slib.setLang("eprotect", "ru", "secured", "Защищена")
|
||||
|
||||
slib.setLang("eprotect", "ru", "check-ids", "Проверить ID")
|
||||
slib.setLang("eprotect", "ru", "correlate-ip", "Соотнести IP")
|
||||
slib.setLang("eprotect", "ru", "family-share-check", "Проверить Семейный доступ")
|
||||
|
||||
slib.setLang("eprotect", "ru", "ply-sent-invalid-data", "Этот игрок отправил неверные данные!")
|
||||
slib.setLang("eprotect", "ru", "ply-failed-retrieving-data", "%s не удалось получить данные!")
|
||||
|
||||
slib.setLang("eprotect", "ru", "net-limit-desc", "Число здесь - это максимальное количество раз, которое люди могут отправить на сервер в секунду, прежде чем будут ограничены по частоте.")
|
||||
|
||||
slib.setLang("eprotect", "ru", "capture", "Скриншот")
|
||||
slib.setLang("eprotect", "ru", "check-ips", "Проверить IP")
|
||||
slib.setLang("eprotect", "ru", "fetch-data", "Получить Data'у ")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "ru", "invalid-player", "Этот игрок недействителен!")
|
||||
slib.setLang("eprotect", "ru", "kick-net-overflow", "Вас выгнали за переполнение сети!")
|
||||
slib.setLang("eprotect", "ru", "banned-net-overflow", "Вас забанили за переполнение сети!")
|
||||
slib.setLang("eprotect", "ru", "banned-net-exploitation", "Вас забанили за эксплуатацию в сети!")
|
||||
slib.setLang("eprotect", "ru", "kick-malicious-intent", "Вас выгнали за злой умысел!")
|
||||
slib.setLang("eprotect", "ru", "banned-malicious-intent", "Вас забанили за злой умысел!")
|
||||
|
||||
slib.setLang("eprotect", "ru", "banned-exploit-attempt", "Вас забанили за попытку использовать эксплоит!")
|
||||
|
||||
slib.setLang("eprotect", "ru", "sc-timeout", "Вам нужно подождать %s секунд, пока вы снова не сможете сделать снимок экрана %s!")
|
||||
slib.setLang("eprotect", "ru", "sc-failed", "Не удалось получить снимок экрана %s, это подозрительно!")
|
||||
|
||||
slib.setLang("eprotect", "ru", "has-family-share", "%s играет в игру через семейный ресурс, SteamID64 владельца %s!")
|
||||
slib.setLang("eprotect", "ru", "no-family-share", "%s не играет в игру через семейный просмотр.")
|
||||
slib.setLang("eprotect", "ru", "no-correlation", "Нам не удалось сопоставить IP-адреса для %s")
|
||||
end
|
||||
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "es", "sc-preview", " Preview de Screenshot - ")
|
||||
slib.setLang("eprotect", "es", "net-info", "Información Net - ")
|
||||
slib.setLang("eprotect", "es", "ip-info", "Información de IP - ")
|
||||
slib.setLang("eprotect", "es", "id-info", "Información de ID - ")
|
||||
slib.setLang("eprotect", "es", "ip-correlation", "Correlación de IP - ")
|
||||
slib.setLang("eprotect", "es", "table-viewer", "Visor de Mesas")
|
||||
|
||||
slib.setLang("eprotect", "es", "tab-general", "General")
|
||||
slib.setLang("eprotect", "es", "tab-identifier", "Identificador")
|
||||
slib.setLang("eprotect", "es", "tab-netlimiter", "Limitador Net")
|
||||
slib.setLang("eprotect", "es", "tab-netlogger", "Loggs Net")
|
||||
slib.setLang("eprotect", "es", "tab-exploitpatcher", "Parcheador de Exploits")
|
||||
slib.setLang("eprotect", "es", "tab-exploitfinder", "Buscador de Exploits")
|
||||
slib.setLang("eprotect", "es", "tab-fakeexploits", "Exploits Falsos")
|
||||
slib.setLang("eprotect", "es", "tab-datasnooper", "Fisgón de Datos")
|
||||
|
||||
slib.setLang("eprotect", "es", "player-list", "Lista de Jugadores")
|
||||
|
||||
slib.setLang("eprotect", "es", "ratelimit", "LimitadorRate")
|
||||
slib.setLang("eprotect", "es", "ratelimit-tooltip", "Este es un Limitador-Rate y funciona para poner ciertos limites. (Xs/Y)")
|
||||
|
||||
slib.setLang("eprotect", "es", "timeout", "Tiempo")
|
||||
slib.setLang("eprotect", "es", "timeout-tooltip", "El tiempo el el intervalo entre que se resetea el contador del LimitadorRate.")
|
||||
|
||||
slib.setLang("eprotect", "es", "overflowpunishment", "Castigo de Overflow")
|
||||
slib.setLang("eprotect", "es", "overflowpunishment-tooltip", "Este es el castigo que va a tener la gente que usa demasiado network. (1 = kick, 2 = ban)")
|
||||
|
||||
slib.setLang("eprotect", "es", "enable-networking", "Habilitar networking")
|
||||
slib.setLang("eprotect", "es", "disable-networking", "Deshabilitar networking")
|
||||
|
||||
slib.setLang("eprotect", "es", "disable-all-networking", "Deshabilitar todo el networking")
|
||||
slib.setLang("eprotect", "es", "disable-all-networking-tooltip", "Si esto esta habilitado, nadie va a poder usar el network en el server!")
|
||||
|
||||
slib.setLang("eprotect", "es", "player", "Jugador")
|
||||
slib.setLang("eprotect", "es", "net-string", "Net String")
|
||||
slib.setLang("eprotect", "es", "called", "LLamado")
|
||||
slib.setLang("eprotect", "es", "len", "Len")
|
||||
slib.setLang("eprotect", "es", "type", "Tipo")
|
||||
slib.setLang("eprotect", "es", "activated", "Activado")
|
||||
slib.setLang("eprotect", "es", "secure", "Seguro")
|
||||
slib.setLang("eprotect", "es", "ip", "Dirección IP")
|
||||
slib.setLang("eprotect", "es", "date", "Fecha")
|
||||
slib.setLang("eprotect", "es", "country-code", "Código de País")
|
||||
slib.setLang("eprotect", "es", "status", "Status")
|
||||
|
||||
slib.setLang("eprotect", "es", "unknown", "Desconocido")
|
||||
slib.setLang("eprotect", "es", "secured", "Seguro")
|
||||
|
||||
slib.setLang("eprotect", "es", "check-ids", "Checkear ID(s)")
|
||||
slib.setLang("eprotect", "es", "correlate-ip", "Correlacionar IP(s)")
|
||||
slib.setLang("eprotect", "es", "family-share-check", "Checkear Cuentas Familiares")
|
||||
|
||||
slib.setLang("eprotect", "es", "ply-sent-invalid-data", "Este Jugador envió datos inválidos!")
|
||||
slib.setLang("eprotect", "es", "ply-failed-retrieving-data", "%s Fallo al recibir datos!")
|
||||
|
||||
slib.setLang("eprotect", "es", "net-limit-desc", "Este nuemero es la cantidad de veces que la gente puede usar network en un segundo antes de usar el LimitadorRate.")
|
||||
|
||||
slib.setLang("eprotect", "es", "capture", "Screenshot")
|
||||
slib.setLang("eprotect", "es", "check-ips", "Checkear IP(s)")
|
||||
slib.setLang("eprotect", "es", "fetch-data", "Buscar Datos")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "es", "invalid-player", "Este Jugador en invalido!")
|
||||
slib.setLang("eprotect", "es", "kick-net-overflow", "Fuiste expulsado por net overflow!")
|
||||
slib.setLang("eprotect", "es", "banned-net-overflow", "Fuiste suspendido por net overflow!")
|
||||
slib.setLang("eprotect", "es", "banned-net-exploitation", "Fuiste expulsado por exploitiar mensajes net!")
|
||||
slib.setLang("eprotect", "es", "kick-malicious-intent", "Fuiste expulsado por intenciones maliciosas!")
|
||||
slib.setLang("eprotect", "es", "banned-malicious-intent", "Fuiste suspendido por intenciones maliciosas!")
|
||||
|
||||
slib.setLang("eprotect", "es", "banned-exploit-attempt", "Fuiste suspendido por intentar usar un maliciosas!")
|
||||
|
||||
slib.setLang("eprotect", "es", "sc-timeout", "Tenes que esperar %s segundos antes de poder screeshotear a %s otra vez!")
|
||||
slib.setLang("eprotect", "es", "sc-failed", "Fallo al cargar screenshot de %s, sospechoso...")
|
||||
|
||||
slib.setLang("eprotect", "es", "has-family-share", "%s esta jugando con una cuenta familiar, el SteamD64 del dueño es %s")
|
||||
slib.setLang("eprotect", "es", "no-family-share", "%s no esta jugando con una cuenta familiar!")
|
||||
slib.setLang("eprotect", "es", "no-correlation", "No se pudieron correlacionar IPs con %s")
|
||||
end
|
||||
@@ -0,0 +1,88 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
if CLIENT then
|
||||
slib.setLang("eprotect", "tr", "sc-preview", "Ekranı Görüntüle - ")
|
||||
slib.setLang("eprotect", "tr", "net-info", "Ağ bilgisi - ")
|
||||
slib.setLang("eprotect", "tr", "ip-info", "IP bilgisi - ")
|
||||
slib.setLang("eprotect", "tr", "id-info", "ID bilgisi - ")
|
||||
slib.setLang("eprotect", "tr", "ip-correlation", "IP ilişkisi - ")
|
||||
slib.setLang("eprotect", "tr", "table-viewer", "Masa Görüntülemesi")
|
||||
|
||||
slib.setLang("eprotect", "tr", "tab-general", "Genel")
|
||||
slib.setLang("eprotect", "tr", "tab-identifier", "Tanımlayıcı")
|
||||
slib.setLang("eprotect", "tr", "tab-netlimiter", "Bağ limitleyicisi")
|
||||
slib.setLang("eprotect", "tr", "tab-netlogger", "Ağ kayıtçısı")
|
||||
slib.setLang("eprotect", "tr", "tab-exploitpatcher", "Exploit Güncelleyici")
|
||||
slib.setLang("eprotect", "tr", "tab-exploitfinder", "Exploit Bulucusu")
|
||||
slib.setLang("eprotect", "tr", "tab-fakeexploits", "Sahte Exploitler")
|
||||
slib.setLang("eprotect", "tr", "tab-datasnooper", "Kayıt ağı")
|
||||
|
||||
slib.setLang("eprotect", "tr", "player-list", "Oyuncu Listesi")
|
||||
|
||||
slib.setLang("eprotect", "tr", "ratelimit", "Hız sınırlayıcısı")
|
||||
slib.setLang("eprotect", "tr", "ratelimit-tooltip", "Bu genel bir hız sınırlayıcısı. (Xs/Y)")
|
||||
|
||||
slib.setLang("eprotect", "tr", "timeout", "Zaman Aşımı")
|
||||
slib.setLang("eprotect", "tr", "timeout-tooltip", "Bu zaman aşımı genel hız sınırlayıcısına karşıdır.")
|
||||
|
||||
slib.setLang("eprotect", "tr", "overflowpunishment", "Taşma cezası")
|
||||
slib.setLang("eprotect", "tr", "overflowpunishment-tooltip", "Bu ceza ağı rahatlatmak için uygulanır. (1 = kick, 2 = ban)")
|
||||
|
||||
slib.setLang("eprotect", "tr", "enable-networking", "Ağ oluşturmayı aktifleştir")
|
||||
slib.setLang("eprotect", "tr", "disable-networking", "Ağ oluşturmayı engelle")
|
||||
|
||||
slib.setLang("eprotect", "tr", "disable-all-networking", "Tüm ağ oluşturmayı engelle")
|
||||
slib.setLang("eprotect", "tr", "disable-all-networking-tooltip", "Eğer bu aktif olursa kimse sunucuya giremez!")
|
||||
|
||||
slib.setLang("eprotect", "tr", "player", "Player")
|
||||
slib.setLang("eprotect", "tr", "net-string", "Net String")
|
||||
slib.setLang("eprotect", "tr", "called", "Called")
|
||||
slib.setLang("eprotect", "tr", "len", "Len")
|
||||
slib.setLang("eprotect", "tr", "type", "Type")
|
||||
slib.setLang("eprotect", "tr", "activated", "Activated")
|
||||
slib.setLang("eprotect", "tr", "secure", "Secured")
|
||||
slib.setLang("eprotect", "tr", "ip", "IP Adress")
|
||||
slib.setLang("eprotect", "tr", "date", "Date")
|
||||
slib.setLang("eprotect", "tr", "country-code", "Country code")
|
||||
slib.setLang("eprotect", "tr", "status", "Status")
|
||||
|
||||
slib.setLang("eprotect", "tr", "unknown", "Unknown")
|
||||
slib.setLang("eprotect", "tr", "secured", "Secured")
|
||||
|
||||
slib.setLang("eprotect", "tr", "check-ids", "ID'leri kontrol et")
|
||||
slib.setLang("eprotect", "tr", "correlate-ip", "IP adreslerini ilişkilendir")
|
||||
slib.setLang("eprotect", "tr", "family-share-check", "Aile paylaşımını kontrol et")
|
||||
|
||||
slib.setLang("eprotect", "tr", "ply-sent-invalid-data", "Bu oyuncu geçersiz data gönderdi!")
|
||||
slib.setLang("eprotect", "tr", "ply-failed-retrieving-data", "%s data alınamadı!")
|
||||
|
||||
slib.setLang("eprotect", "tr", "net-limit-desc", "Buradaki sayı, insanların hız sınırlandırılmadan önce bir saniye içinde sunucuya maksimum ağ kurma sayısıdır..")
|
||||
|
||||
slib.setLang("eprotect", "tr", "capture", "Screenshot")
|
||||
slib.setLang("eprotect", "tr", "check-ips", "Check IP(s)")
|
||||
slib.setLang("eprotect", "tr", "fetch-data", "Fetch Data")
|
||||
elseif SERVER then
|
||||
slib.setLang("eprotect", "tr", "invalid-player", "böyle bir oyuncu yok!")
|
||||
slib.setLang("eprotect", "tr", "kick-net-overflow", "Net ağına karşı kötü niyetli eylem gerçekleştirdiğinizden dolayı atıldınız!")
|
||||
slib.setLang("eprotect", "tr", "banned-net-overflow", "Net ağına karşı kötü niyetli eylem gerçekleştirdiğinizden dolayı yasaklandınız !")
|
||||
slib.setLang("eprotect", "tr", "banned-net-exploitation", "Net ağına karşı kötü niyetli eylem gerçekleştirdiğinizden dolayı yasaklandınız!")
|
||||
slib.setLang("eprotect", "tr", "kick-malicious-intent", "Kötü niyetli eylem gerçekleştirdiğinizden dolayı sunucudan atıldınız!")
|
||||
slib.setLang("eprotect", "tr", "banned-malicious-intent", "Kötü niyetli eylem gerçekleştirdiğinizden dolayı sunucudan yasaklandınız!")
|
||||
|
||||
slib.setLang("eprotect", "tr", "banned-exploit-attempt", "Exploit kullanmaya çalıştığın için sunucudan yasaklandın !")
|
||||
|
||||
slib.setLang("eprotect", "tr", "sc-timeout", "Şu kadar %s saniye beklemen gerek %s tekrar ekran görüntüsü almak için!")
|
||||
slib.setLang("eprotect", "tr", "sc-failed", "Şu kişiden ekran görüntüsü alınamadı %s, şüpheli!")
|
||||
|
||||
slib.setLang("eprotect", "tr", "has-family-share", "%s Aile paylaşımından oynuyor oyunu ödünç aldığı kişinin ID'si %s!")
|
||||
slib.setLang("eprotect", "tr", "no-family-share", "%s Aile paylaşımından oynamıyor!")
|
||||
slib.setLang("eprotect", "tr", "no-correlation", "Şu değer için hiç bir IP adresi ilişkilendirilemedi %s")
|
||||
end
|
||||
@@ -0,0 +1,29 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
local punished = {}
|
||||
|
||||
eProtect.logDetectionHandeler = function(ply, reason, info, type)
|
||||
if eProtect.data.general["bypassgroup"][ply:GetUserGroup()] or eProtect.config["disabledModules"]["detection_log"] then return end
|
||||
local sid, sid64 = ply:SteamID(), ply:SteamID64()
|
||||
|
||||
if eProtect.data.general["bypass_sids"][sid] or eProtect.data.general["bypass_sids"][sid64] then return end
|
||||
|
||||
if punished[sid] and CurTime() < punished[sid] then return end
|
||||
punished[sid] = CurTime() + eProtect.data.general.timeout + 1
|
||||
|
||||
local name, sid64 = ply:Nick(), ply:SteamID64()
|
||||
|
||||
eProtect.logDetection(name, sid64, reason, info, type)
|
||||
end
|
||||
|
||||
if eProtect.queueNetworking then
|
||||
eProtect.queueNetworking(nil, "punishmentLogging")
|
||||
end
|
||||
@@ -0,0 +1,50 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.data = eProtect.data or {}
|
||||
eProtect.data.exploitPatcher = eProtect.data.exploitPatcher or {}
|
||||
|
||||
eProtect.patcher = eProtect.patcher or {}
|
||||
|
||||
local function addExploitPatch(str, func)
|
||||
eProtect.patcher[str] = func
|
||||
eProtect.data.exploitPatcher[str] = true
|
||||
end
|
||||
|
||||
addExploitPatch("start_wd_emp", function(ply)
|
||||
if IsValid(ply) and ply:IsPlayer() then
|
||||
local wep = ply:GetActiveWeapon()
|
||||
if !IsValid(wep) or wep:GetClass() ~= "weapon_hack_phone" then
|
||||
return false
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
addExploitPatch("gPrinters.removePrinter", function(ply)
|
||||
if IsValid(ply) and ply:IsPlayer() then
|
||||
return ply:IsSuperAdmin()
|
||||
end
|
||||
end)
|
||||
|
||||
hook.Add("eP:PreNetworking", "eP:ExploitPatches", function(ply, netstring, len)
|
||||
if eProtect.patcher[netstring] and isfunction(eProtect.patcher[netstring]) and !eProtect.config["disabledModules"]["exploit_patcher"] then
|
||||
local result = eProtect.patcher[netstring](ply)
|
||||
|
||||
if result == false then
|
||||
eProtect.logDetectionHandeler(ply, "patched-exploit", netstring, 2)
|
||||
eProtect.punish(ply, 2, slib.getLang("eprotect", eProtect.config["language"], "banned-exploit-attempt"))
|
||||
return false end
|
||||
end
|
||||
end)
|
||||
|
||||
if eProtect.queueNetworking then
|
||||
eProtect.queueNetworking(nil, "exploitPatcher")
|
||||
end
|
||||
60
addons/eprotect_1.3.15/lua/e_protect/modules/sv_fakenets.lua
Normal file
60
addons/eprotect_1.3.15/lua/e_protect/modules/sv_fakenets.lua
Normal file
@@ -0,0 +1,60 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.data = eProtect.data or {}
|
||||
eProtect.data.fakeNets = eProtect.data.fakeNets or {}
|
||||
|
||||
local generatedOnes = {}
|
||||
|
||||
eProtect.getRandUniqueNum = function()
|
||||
local rand = math.random(1, 999999)
|
||||
if generatedOnes[rand] then return eProtect.getRandUniqueNum() end
|
||||
generatedOnes[rand] = true
|
||||
|
||||
return rand
|
||||
end
|
||||
|
||||
eProtect.createFakeNets = function()
|
||||
if eProtect.config["disabledModules"]["fake_exploits"] then return end
|
||||
|
||||
local createdNets = 0
|
||||
local maxFakeNets = 3
|
||||
|
||||
local mixedTbl = {}
|
||||
|
||||
for k,v in pairs(eProtect.data.badNets) do
|
||||
mixedTbl[eProtect.getRandUniqueNum()] = k
|
||||
end
|
||||
|
||||
for k, netstring in pairs(mixedTbl) do
|
||||
local validateNet = tobool(util.NetworkStringToID(netstring))
|
||||
if validateNet then continue end
|
||||
createdNets = createdNets + 1
|
||||
|
||||
eProtect.data.fakeNets[netstring] = eProtect.data.fakeNets[netstring] or eProtect.data.badNets[netstring]
|
||||
eProtect.data.fakeNets[netstring].enabled = true
|
||||
util.AddNetworkString(netstring)
|
||||
|
||||
net.Receive(netstring, function(_, ply)
|
||||
eProtect.logDetectionHandeler(ply, "fake-exploit", netstring, 2)
|
||||
eProtect.punish(ply, 2, slib.getLang("eprotect", eProtect.config["language"], "banned-net-exploitation"))
|
||||
end)
|
||||
|
||||
if maxFakeNets > 0 and (createdNets >= maxFakeNets) then break end
|
||||
end
|
||||
|
||||
if eProtect.queueNetworking then
|
||||
eProtect.queueNetworking(nil, "fakeNets")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
eProtect.createFakeNets()
|
||||
@@ -0,0 +1,13 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
hook.Add("eP:PostHTTP", "eP:HTTPLoggingHandeler", function(url, type)
|
||||
eProtect.logHTTP(url, type)
|
||||
end)
|
||||
36
addons/eprotect_1.3.15/lua/e_protect/modules/sv_iplogger.lua
Normal file
36
addons/eprotect_1.3.15/lua/e_protect/modules/sv_iplogger.lua
Normal file
@@ -0,0 +1,36 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
local function handleIPLoggin(ply, ip)
|
||||
local sid64 = ply:SteamID64()
|
||||
http.Fetch("http://ip-api.com/json/"..ip, function(json)
|
||||
json = util.JSONToTable(json)
|
||||
local result = json["countryCode"]
|
||||
|
||||
if !result then result = "N/A" end
|
||||
|
||||
eProtect.registerIP(sid64, ip, result)
|
||||
end, function()
|
||||
eProtect.registerIP(sid64, ip, "N/A")
|
||||
end)
|
||||
end
|
||||
|
||||
hook.Add("PlayerInitialSpawn", "eP:IPLogging", function(ply)
|
||||
if ply:IsBot() or eProtect.config["disabledModules"]["identifier"] then return end
|
||||
local ip = ""
|
||||
|
||||
for k,v in ipairs(string.ToTable(ply:IPAddress())) do
|
||||
if v == ":" then break end
|
||||
|
||||
ip = ip..v
|
||||
end
|
||||
|
||||
handleIPLoggin(ply, ip)
|
||||
end)
|
||||
@@ -0,0 +1,78 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.data = eProtect.data or {}
|
||||
eProtect.data.netLimitation = eProtect.data.netLimitation or {}
|
||||
|
||||
for i = 1, 2048 do
|
||||
local netstring = util.NetworkIDToString(i)
|
||||
if !netstring then continue end
|
||||
if netstring and isstring(netstring) and eProtect.data.netLimitation[netstring] == nil and !eProtect.data.fakeNets[netstring] then
|
||||
local func = net.Receivers[string.lower(netstring)]
|
||||
if func then eProtect.data.netLimitation[netstring] = 0 end
|
||||
end
|
||||
end
|
||||
|
||||
if eProtect.queueNetworking then
|
||||
eProtect.queueNetworking(nil, "netLimitation")
|
||||
end
|
||||
|
||||
local generalCounter = {}
|
||||
local specificCounter = {}
|
||||
local timeout = {}
|
||||
|
||||
hook.Add("eP:PreNetworking", "eP:NetLimiter", function(ply, netstring, len)
|
||||
if !eProtect.data or !eProtect.data.general or eProtect.data.netLimitation[netstring] == -1 or eProtect.config["disabledModules"]["net_limiter"] then return end
|
||||
|
||||
if !eProtect.data.netLimitation[netstring] then
|
||||
local func = net.Receivers[string.lower(netstring)]
|
||||
if func then eProtect.data.netLimitation[netstring] = 0 end
|
||||
|
||||
eProtect.queueNetworking(nil, "netLimitation")
|
||||
end
|
||||
|
||||
local sid, sid64 = ply:SteamID(), ply:SteamID64()
|
||||
local specific = eProtect.data.netLimitation[netstring] ~= nil and eProtect.data.netLimitation[netstring] > 0 or false
|
||||
|
||||
specificCounter[sid] = specificCounter[sid] or {}
|
||||
|
||||
if !timeout[sid] then timeout[sid] = CurTime() end
|
||||
|
||||
if timeout[sid] and ((CurTime() - timeout[sid]) >= eProtect.data.general.timeout) then
|
||||
specificCounter[sid] = {}
|
||||
generalCounter[sid] = 0
|
||||
timeout[sid] = nil
|
||||
end
|
||||
|
||||
if specific then
|
||||
specificCounter[sid][netstring] = specificCounter[sid][netstring] or 0
|
||||
specificCounter[sid][netstring] = specificCounter[sid][netstring] + 1
|
||||
else
|
||||
generalCounter[sid] = generalCounter[sid] or 0
|
||||
generalCounter[sid] = generalCounter[sid] + 1
|
||||
end
|
||||
|
||||
local counter = specific and specificCounter[sid][netstring] or generalCounter[sid]
|
||||
local limit = specific and eProtect.data.netLimitation[netstring] or eProtect.data.general.ratelimit
|
||||
if limit > -1 and counter > limit and eProtect.data.general.overflowpunishment > 0 and !eProtect.data.general["bypassgroup"][ply:GetUserGroup()] and !eProtect.data.general["bypass_sids"][sid] and !eProtect.data.general["bypass_sids"][sid64] then
|
||||
if eProtect.data.general["whitelistergroup"][ply:GetUserGroup()] then
|
||||
eProtect.data.netLimitation[netstring] = -1
|
||||
eProtect.queueNetworking(nil, "netLimitation")
|
||||
return end
|
||||
|
||||
eProtect.logDetectionHandeler(ply, "net-overflow", netstring, eProtect.data.general.overflowpunishment)
|
||||
if eProtect.data.general.overflowpunishment <= 2 then
|
||||
eProtect.punish(ply, eProtect.data.general.overflowpunishment, slib.getLang("eprotect", eProtect.config["language"], eProtect.data.general.overflowpunishment == 1 and "kick-net-overflow" or "banned-net-overflow"))
|
||||
end
|
||||
|
||||
return false
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,31 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.data = eProtect.data or {}
|
||||
eProtect.data.netLogging = eProtect.data.netLogging or {}
|
||||
|
||||
hook.Add("eP:PostNetworking", "eP:LogNetworking", function(ply, net, len)
|
||||
if !net or len == nil or eProtect.config["disabledModules"]["net_logger"] then return end
|
||||
eProtect.data.netLogging[net] = eProtect.data.netLogging[net] or {called = 0, len = 0, playercalls = {}}
|
||||
|
||||
eProtect.data.netLogging[net].called = eProtect.data.netLogging[net].called + 1
|
||||
eProtect.data.netLogging[net].len = eProtect.data.netLogging[net].len + len
|
||||
|
||||
if IsValid(ply) and ply:IsPlayer() then
|
||||
local sid = ply:SteamID()
|
||||
eProtect.data.netLogging[net].playercalls[sid] = eProtect.data.netLogging[net].playercalls[sid] or 0
|
||||
eProtect.data.netLogging[net].playercalls[sid] = eProtect.data.netLogging[net].playercalls[sid] + 1
|
||||
end
|
||||
|
||||
if eProtect.queueNetworking then
|
||||
eProtect.queueNetworking(nil, "netLogging")
|
||||
end
|
||||
end)
|
||||
575
addons/eprotect_1.3.15/lua/e_protect/server/sv_eprotect.lua
Normal file
575
addons/eprotect_1.3.15/lua/e_protect/server/sv_eprotect.lua
Normal file
@@ -0,0 +1,575 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.queneData = eProtect.queneData or {}
|
||||
eProtect.saveQueue = eProtect.saveQueue or {}
|
||||
|
||||
eProtect.data = eProtect.data or {}
|
||||
eProtect.data.disabled = eProtect.data.disabled or {}
|
||||
|
||||
local ignoreSaving = {
|
||||
["fakeNets"] = true,
|
||||
["netLogging"] = true,
|
||||
["exploitPatcher"] = true
|
||||
}
|
||||
|
||||
util.AddNetworkString("eP:Handeler")
|
||||
|
||||
local function openMenu(ply)
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(2, 3)
|
||||
net.Send(ply)
|
||||
end
|
||||
|
||||
local convertedTbl
|
||||
|
||||
convertedTbl = function(tbl)
|
||||
local converted_tbl = {}
|
||||
|
||||
for k,v in pairs(tbl) do
|
||||
if istable(v) then v = convertedTbl(v) end
|
||||
|
||||
local isSID = util.SteamIDFrom64(k) != "STEAM_0:0:0"
|
||||
|
||||
if isSID then
|
||||
converted_tbl["sid64_"..k] = v
|
||||
else
|
||||
converted_tbl[k] = v
|
||||
end
|
||||
end
|
||||
|
||||
return converted_tbl
|
||||
end
|
||||
|
||||
local function networkData(ply, data, specific)
|
||||
if !data then return end
|
||||
local data = util.TableToJSON(convertedTbl(data))
|
||||
|
||||
data = util.Compress(data)
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(1, 3)
|
||||
net.WriteUInt(#data, 32)
|
||||
net.WriteData(data, #data)
|
||||
|
||||
if specific then
|
||||
net.WriteString(specific)
|
||||
end
|
||||
|
||||
net.Send(ply)
|
||||
end
|
||||
|
||||
eProtect.hasPermission = function(ply, specific)
|
||||
return eProtect.config["permission"][ply:GetUserGroup()]
|
||||
end
|
||||
|
||||
local punished = {}
|
||||
|
||||
eProtect.getData = function(specific)
|
||||
local data = file.Read("eprotect/data.json", "DATA")
|
||||
|
||||
if !data then return end
|
||||
|
||||
data = util.JSONToTable(data)
|
||||
|
||||
if specific then
|
||||
data = data[specific]
|
||||
end
|
||||
|
||||
for k,v in pairs(data) do
|
||||
eProtect.data[k] = v
|
||||
end
|
||||
|
||||
return table.Copy(data)
|
||||
end
|
||||
|
||||
eProtect.dataVerification = function()
|
||||
local data = eProtect.getData()
|
||||
data = data or {}
|
||||
|
||||
data["general"] = data["general"] or {}
|
||||
|
||||
for k,v in pairs(eProtect.BaseConfig) do
|
||||
if data["general"][k] then continue end
|
||||
data["general"][k] = v[1]
|
||||
end
|
||||
|
||||
for k,v in pairs(eProtect.data) do
|
||||
if ignoreSaving[k] or k == "general" then continue end
|
||||
data[k] = v
|
||||
end
|
||||
|
||||
file.CreateDir("eprotect")
|
||||
file.Write("eprotect/data.json", util.TableToJSON(data))
|
||||
|
||||
eProtect.getData()
|
||||
eProtect.queueNetworking()
|
||||
end
|
||||
|
||||
eProtect.saveData = function()
|
||||
file.CreateDir("eprotect")
|
||||
|
||||
local data = table.Copy(eProtect.data)
|
||||
|
||||
for k, v in pairs(data) do
|
||||
if ignoreSaving[k] then data[k] = nil end
|
||||
end
|
||||
|
||||
file.Write("eprotect/data.json", util.TableToJSON(data))
|
||||
end
|
||||
|
||||
eProtect.canNetwork = function(ply, netstring)
|
||||
if !IsValid(ply) or !ply:IsPlayer() then return end
|
||||
if (punished[ply:SteamID()] or eProtect.data.disabled[ply:SteamID()] or eProtect.data.general["disable-all-networking"]) and (netstring ~= "eP:Handeler") then return false end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
eProtect.punish = function(ply, type, msg, duration)
|
||||
if eProtect.data.general["bypassgroup"][ply:GetUserGroup()] or eProtect.data.general["bypass_sids"][ply:SteamID()] or eProtect.data.general["bypass_sids"][ply:SteamID64()] then return end
|
||||
msg = eProtect.config["prefix"]..msg
|
||||
|
||||
punished[ply:SteamID()] = true
|
||||
|
||||
slib.punish(ply, type, msg, duration)
|
||||
end
|
||||
|
||||
eProtect.networkData = function(ply)
|
||||
if eProtect.queneData[ply:SteamID()] then
|
||||
for k,v in pairs(eProtect.queneData[ply:SteamID()]) do
|
||||
networkData(ply, eProtect.data[k], k)
|
||||
eProtect.queneData[ply:SteamID()][k] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function registerQuene(ply, specific)
|
||||
if specific then
|
||||
eProtect.queneData[ply:SteamID()] = eProtect.queneData[ply:SteamID()] and eProtect.queneData[ply:SteamID()] or {}
|
||||
eProtect.queneData[ply:SteamID()][specific] = true
|
||||
else
|
||||
for k,v in pairs(eProtect.data) do
|
||||
registerQuene(ply, k)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
eProtect.queueNetworking = function(ply, specific)
|
||||
if ply then
|
||||
registerQuene(ply, specific)
|
||||
else
|
||||
for k,v in pairs(player.GetAll()) do
|
||||
if !IsValid(v) then continue end
|
||||
registerQuene(v, specific)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local screenshotRequested = {}
|
||||
local idRequested = {}
|
||||
local dataRequested = {}
|
||||
local limitSC = {}
|
||||
|
||||
local function requestData(ply, target, type)
|
||||
local data
|
||||
|
||||
if type == 1 then
|
||||
local sid = target:SteamID()
|
||||
if limitSC[sid] and CurTime() - limitSC[sid] < 10 then
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "sc-timeout", math.Round(10 - (CurTime() - limitSC[sid])), target:Nick()), ply)
|
||||
return end
|
||||
|
||||
limitSC[sid] = CurTime()
|
||||
|
||||
data = screenshotRequested
|
||||
elseif type == 2 then
|
||||
data = idRequested
|
||||
elseif type == 3 then
|
||||
data = dataRequested
|
||||
end
|
||||
|
||||
if data[target] then return end
|
||||
|
||||
data[target] = ply
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(3, 3)
|
||||
net.WriteUInt(type, 2)
|
||||
net.WriteBool(false)
|
||||
net.Send(target)
|
||||
|
||||
timer.Simple(10, function()
|
||||
if !target or !ply then return end
|
||||
if data[target] then
|
||||
data[target] = nil
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "sc-failed", target:Nick()), ply)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
hook.Add("PlayerInitialSpawn", "eP:NetworkingQueuer", function(ply)
|
||||
eProtect.queueNetworking(ply)
|
||||
local sid = ply:SteamID()
|
||||
if punished[sid] then punished[sid] = nil end
|
||||
end)
|
||||
|
||||
local function verifyBannedAlt(ply, sid64, type)
|
||||
sid64 = sid64 or ply:SteamID64()
|
||||
local isBanned = slib.isBanned(sid64, function(banned, sid) if banned then if IsValid(ply) then slib.punish(ply, type, eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "punished-alt")) end end end)
|
||||
|
||||
if isBanned then
|
||||
slib.punish(ply, type, eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "punished-alt"))
|
||||
end
|
||||
|
||||
return isBanned
|
||||
end
|
||||
|
||||
local settingConverter = { // Its reverted on clientside
|
||||
[1] = 3,
|
||||
[2] = 1,
|
||||
[3] = 2
|
||||
}
|
||||
|
||||
hook.Add("PlayerInitialSpawn", "eP:AutomaticChecks", function(ply)
|
||||
local automatic_identifier = tonumber(eProtect.data.general["automatic-identifier"]) or 1
|
||||
|
||||
timer.Simple(1.5, function() -- Giving time to set usergroup.
|
||||
if !IsValid(ply) or !ply:IsPlayer() or ply:IsBot() or eProtect.data.general["bypassgroup"][ply:GetUserGroup()] or eProtect.data.general["bypass_sids"][ply:SteamID64()] or eProtect.data.general["bypass_sids"][ply:SteamID()] then return end
|
||||
|
||||
if eProtect.data.general["block-vpn"] and !eProtect.data.general["bypass-vpn"][ply:GetUserGroup()] and !eProtect.data.general["bypass-vpn"][ply:SteamID64()] then
|
||||
local ip = ""
|
||||
|
||||
for k,v in ipairs(string.ToTable(ply:IPAddress())) do
|
||||
if v == ":" then break end
|
||||
|
||||
ip = ip..v
|
||||
end
|
||||
|
||||
http.Fetch("https://proxycheck.io/v2/"..ip.."?vpn=1", function(result)
|
||||
result = result and util.JSONToTable(result)
|
||||
|
||||
if result[ip] and result[ip].proxy == "yes" then
|
||||
ply:Kick(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "vpn-blocked"))
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
if automatic_identifier > 0 then
|
||||
eProtect.correlateIP(ply, function(result)
|
||||
local correlatedIPs = result
|
||||
local plysid64, ownerplysid64 = ply:SteamID64(), ply:OwnerSteamID64()
|
||||
local familyShare = ply:SteamID64() ~= ply:OwnerSteamID64()
|
||||
local detections = !familyShare and !table.IsEmpty(correlatedIPs)
|
||||
local altsDetected = {}
|
||||
|
||||
if detections then
|
||||
local detect_type
|
||||
detections = ""
|
||||
if correlatedIPs and istable(correlatedIPs) and !table.IsEmpty(correlatedIPs) then
|
||||
detect_type = "correlated-ip"
|
||||
|
||||
local foundAlts = {}
|
||||
for k,v in ipairs(correlatedIPs) do
|
||||
table.insert(altsDetected, v.sid64)
|
||||
end
|
||||
|
||||
detections = slib.getLang("eprotect", eProtect.config["language"], "correlated-ip")
|
||||
end
|
||||
|
||||
if familyShare then
|
||||
detect_type = "family-share"
|
||||
|
||||
detections = detections == "" and slib.getLang("eprotect", eProtect.config["language"], "family-share") or detections.." "..slib.getLang("eprotect", eProtect.config["language"], "and").." "..slib.getLang("eprotect", eProtect.config["language"], "family-share")
|
||||
table.insert(altsDetected, ownerplysid64)
|
||||
end
|
||||
|
||||
if detections ~= "" then
|
||||
local doneAction
|
||||
|
||||
if automatic_identifier == 1 then
|
||||
for k, v in ipairs(player.GetAll()) do
|
||||
if eProtect.data.general["notification-groups"][v:GetUserGroup()] then
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "auto-detected-alt", ply:Nick(), detections), ply)
|
||||
end
|
||||
end
|
||||
|
||||
doneAction = true
|
||||
elseif automatic_identifier == 2 then
|
||||
for k,v in ipairs(altsDetected) do
|
||||
doneAction = doneAction or verifyBannedAlt(ply, v, 1)
|
||||
end
|
||||
elseif automatic_identifier == 3 then
|
||||
for k,v in ipairs(altsDetected) do
|
||||
doneAction = doneAction or verifyBannedAlt(ply, v, 2)
|
||||
end
|
||||
end
|
||||
|
||||
if doneAction then
|
||||
eProtect.logDetectionHandeler(ply, "alt-detection", slib.getLang("eprotect", eProtect.config["language"], detect_type), settingConverter[automatic_identifier])
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
||||
hook.Add("PlayerSay", "eP:OpenMenu", function(ply, text, public)
|
||||
if eProtect.config["command"] == string.lower(text) then
|
||||
if !eProtect.hasPermission(ply) then
|
||||
return text
|
||||
end
|
||||
|
||||
eProtect.networkData(ply)
|
||||
|
||||
openMenu(ply)
|
||||
return ""
|
||||
end
|
||||
end )
|
||||
|
||||
hook.Add("eP:PreNetworking", "eP:Restrictions", function(ply, netstring, len)
|
||||
if !eProtect.canNetwork(ply, netstring) then return false end
|
||||
if len >= 512000 then eProtect.logDetectionHandeler(ply, "net-overflow", netstring, 1) eProtect.punish(ply, 1, slib.getLang("eprotect", eProtect.config["language"], "kick-net-overflow")) return false end
|
||||
end)
|
||||
|
||||
hook.Add("eP:PreHTTP", "eP:PreventBlockedHTTP", function(url)
|
||||
if eProtect.data.general["httpfocusedurls"] then
|
||||
return eProtect.data.general["httpfocusedurlsisblacklist"] == !tobool(eProtect.data.general["httpfocusedurls"][url])
|
||||
end
|
||||
end)
|
||||
|
||||
timer.Create("eP:SaveCache", eProtect.config["process-save-queue"], 0, function()
|
||||
if !eProtect.saveQueue then return end
|
||||
eProtect.saveData()
|
||||
|
||||
eProtect.saveQueue = nil
|
||||
end)
|
||||
|
||||
net.Receive("eP:Handeler", function(len, ply)
|
||||
local gateway = net.ReadBit()
|
||||
local action = net.ReadUInt(2)
|
||||
|
||||
if tobool(gateway) then
|
||||
if !eProtect.hasPermission(ply) then return end
|
||||
|
||||
if action == 0 then
|
||||
local id = net.ReadUInt(1)
|
||||
local page = net.ReadUInt(15)
|
||||
local search = net.ReadString()
|
||||
|
||||
if id == 0 then
|
||||
eProtect.requestHTTPLog(ply, page, search)
|
||||
elseif id == 1 then
|
||||
eProtect.requestDetectionLog(ply, page, search)
|
||||
end
|
||||
elseif action == 1 then
|
||||
local specific = net.ReadUInt(3)
|
||||
local strings = {}
|
||||
|
||||
for i=1,specific do
|
||||
strings[i] = net.ReadString()
|
||||
end
|
||||
|
||||
local statement = net.ReadUInt(2)
|
||||
local data
|
||||
|
||||
if statement == 1 then
|
||||
data = net.ReadBool()
|
||||
elseif statement == 2 then
|
||||
data = net.ReadInt(32)
|
||||
elseif statement == 3 then
|
||||
local chunk = net.ReadUInt(32)
|
||||
data = net.ReadData(chunk)
|
||||
|
||||
data = util.Decompress(data)
|
||||
data = util.JSONToTable(data)
|
||||
|
||||
local converted_tbl = {}
|
||||
|
||||
for k, v in pairs(data) do
|
||||
if string.sub(k, 1, 6) == "sid64_" then
|
||||
local sid64 = string.sub(k, 7, #k)
|
||||
|
||||
if util.SteamIDFrom64(sid64) != "STEAM_0:0:0" then
|
||||
k = sid64
|
||||
end
|
||||
end
|
||||
|
||||
converted_tbl[k] = v
|
||||
end
|
||||
|
||||
data = converted_tbl
|
||||
end
|
||||
|
||||
local finaldestination = eProtect.data
|
||||
for k,v in ipairs(strings) do
|
||||
finaldestination = finaldestination[v]
|
||||
if k >= (#strings - 1) then break end
|
||||
end
|
||||
|
||||
finaldestination[strings[#strings]] = data
|
||||
|
||||
eProtect.saveQueue = true
|
||||
eProtect.queueNetworking(nil, strings[1])
|
||||
elseif action == 2 then
|
||||
local subaction = net.ReadUInt(3)
|
||||
local target = net.ReadUInt(14)
|
||||
|
||||
target = Entity(target)
|
||||
|
||||
if !IsValid(target) or !target:IsPlayer() then slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "invalid-player"), ply) return end
|
||||
|
||||
local sid = target:SteamID()
|
||||
|
||||
if subaction == 1 then
|
||||
eProtect.data.disabled[sid] = net.ReadBool()
|
||||
eProtect.queueNetworking(nil, "disabled")
|
||||
elseif subaction == 2 then
|
||||
requestData(ply, target, net.ReadUInt(2))
|
||||
elseif subaction == 3 then
|
||||
local bit = net.ReadBit()
|
||||
if tobool(bit) then
|
||||
eProtect.correlateIP(target, function(result)
|
||||
if !IsValid(target) or !IsValid(ply) then return end
|
||||
if table.IsEmpty(result) then slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "no-correlation", target:Nick()), ply) return end
|
||||
|
||||
result = util.TableToJSON(result)
|
||||
result = util.Base64Encode(result)
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(4,3)
|
||||
net.WriteUInt(target:EntIndex(), 14)
|
||||
net.WriteString(result)
|
||||
net.WriteBit(1)
|
||||
net.Send(ply)
|
||||
end)
|
||||
else
|
||||
eProtect.showIPs(target, ply)
|
||||
end
|
||||
elseif subaction == 4 then
|
||||
local sid64 = target:SteamID64()
|
||||
local ownersid64 = target:OwnerSteamID64()
|
||||
|
||||
if sid64 == ownersid64 then
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "no-family-share", target:Nick()), ply)
|
||||
else
|
||||
slib.notify(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "has-family-share", target:Nick(), ownersid64), ply)
|
||||
end
|
||||
end
|
||||
end
|
||||
else
|
||||
if action == 1 then
|
||||
local subaction = net.ReadUInt(2)
|
||||
|
||||
local data
|
||||
|
||||
if subaction == 1 then
|
||||
data = screenshotRequested
|
||||
elseif subaction == 2 then
|
||||
data = idRequested
|
||||
elseif subaction == 3 then
|
||||
data = dataRequested
|
||||
end
|
||||
|
||||
if !data[ply] then if eProtect.config["punishMaliciousIntent"] then eProtect.punish(ply, 1, slib.getLang("eprotect", eProtect.config["language"], "kick-malicious-intent")) end return end
|
||||
local target = data[ply]
|
||||
data[ply] = nil
|
||||
|
||||
local id
|
||||
|
||||
if subaction == 3 then
|
||||
local chunk = net.ReadUInt(32)
|
||||
id = net.ReadData(chunk)
|
||||
else
|
||||
id = net.ReadString()
|
||||
end
|
||||
|
||||
if !id or id == "" then
|
||||
if eProtect.config["punishMaliciousIntent"] then
|
||||
eProtect.punish(ply, 1, slib.getLang("eprotect", eProtect.config["language"], "kick-malicious-intent"))
|
||||
end
|
||||
return end
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(3, 3)
|
||||
net.WriteUInt(subaction, 2)
|
||||
net.WriteUInt(ply:EntIndex(), 14)
|
||||
net.WriteBool(true)
|
||||
|
||||
if subaction == 3 then
|
||||
local chunk = #id
|
||||
net.WriteUInt(chunk, 32)
|
||||
net.WriteData(id, chunk)
|
||||
else
|
||||
net.WriteString(id)
|
||||
end
|
||||
|
||||
net.Send(target)
|
||||
elseif action == 2 then
|
||||
local menu = net.ReadUInt(2)
|
||||
local menus = {
|
||||
[1] = "Loki",
|
||||
[2] = "Exploit City"
|
||||
}
|
||||
|
||||
eProtect.logDetectionHandeler(ply, "exploit-menu", menus[menu], 2)
|
||||
eProtect.punish(ply, 2, slib.getLang("eprotect", eProtect.config["language"], "banned-exploit-menu"))
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
hook.Add("eP:SQLConnected", "eP:TransferOldIPs", function()
|
||||
local files = file.Find("eprotect/ips/*", "DATA")
|
||||
for k,v in pairs(files) do
|
||||
local sid64 = string.gsub(v, ".json", "")
|
||||
|
||||
local ips = file.Read("eprotect/ips/"..v, "DATA")
|
||||
ips = util.JSONToTable(ips)
|
||||
if !ips then continue end
|
||||
|
||||
for ip, data in pairs(ips) do
|
||||
eProtect.registerIP(sid64, ip, data[1], data[2])
|
||||
end
|
||||
|
||||
file.Delete("eprotect/ips/"..v)
|
||||
end
|
||||
file.Delete("eprotect/ips")
|
||||
|
||||
local save = false
|
||||
|
||||
if eProtect.data.httpLogging then
|
||||
for url, v in pairs(eProtect.data.httpLogging) do
|
||||
eProtect.logHTTP(url, v.type, v.called)
|
||||
end
|
||||
|
||||
eProtect.data.httpLogging = nil
|
||||
|
||||
save = true
|
||||
end
|
||||
|
||||
if eProtect.data.punishmentLogging then
|
||||
for i = #eProtect.data.punishmentLogging, 1, -1 do
|
||||
local data = eProtect.data.punishmentLogging[i]
|
||||
|
||||
eProtect.logDetection(data.ply, "", data.reason, data.info, data.type)
|
||||
end
|
||||
|
||||
eProtect.data.punishmentLogging = nil
|
||||
|
||||
save = true
|
||||
end
|
||||
|
||||
if save then
|
||||
eProtect.saveData()
|
||||
end
|
||||
end)
|
||||
|
||||
eProtect.dataVerification()
|
||||
67
addons/eprotect_1.3.15/lua/e_protect/server/sv_overrides.lua
Normal file
67
addons/eprotect_1.3.15/lua/e_protect/server/sv_overrides.lua
Normal file
@@ -0,0 +1,67 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
eProtect.overrides = eProtect.overrides or {}
|
||||
|
||||
if !eProtect.overrides["net.Incoming"] then
|
||||
eProtect.overrides["net.Incoming"] = true
|
||||
function net.Incoming( len, client )
|
||||
local i = net.ReadHeader()
|
||||
local strName = util.NetworkIDToString( i )
|
||||
|
||||
if ( !strName ) then return end
|
||||
|
||||
local func = net.Receivers[ strName:lower() ]
|
||||
if ( !func ) then return end
|
||||
|
||||
len = len - 16
|
||||
|
||||
local pre = hook.Run("eP:PreNetworking", client, strName, len)
|
||||
|
||||
if pre == false then return end
|
||||
|
||||
func( len, client )
|
||||
|
||||
hook.Run("eP:PostNetworking", client, strName, len)
|
||||
end
|
||||
end
|
||||
|
||||
if !eProtect.config["disablehttplogging"] and ((!VC and !XEON and !mLib) or eProtect.config["ignoreDRM"]) then
|
||||
if !eProtect.overrides["http.Fetch"] then
|
||||
eProtect.overrides["http.Fetch"] = true
|
||||
local oldFetch = http.Fetch
|
||||
function http.Fetch(...)
|
||||
local args = {...}
|
||||
local result = hook.Run("eP:PreHTTP", args[1], "fetch")
|
||||
|
||||
if result == false then return end
|
||||
|
||||
oldFetch(...)
|
||||
|
||||
hook.Run("eP:PostHTTP", args[1], "fetch")
|
||||
end
|
||||
end
|
||||
|
||||
if !eProtect.overrides["http.Post"] then
|
||||
eProtect.overrides["http.Post"] = true
|
||||
local oldPost = http.Post
|
||||
function http.Post(...)
|
||||
local args = {...}
|
||||
local result = hook.Run("eP:PreHTTP", args[1], "post")
|
||||
|
||||
if result == false then return end
|
||||
|
||||
oldPost(...)
|
||||
|
||||
hook.Run("eP:PostHTTP", args[1], "post")
|
||||
end
|
||||
end
|
||||
end
|
||||
245
addons/eprotect_1.3.15/lua/e_protect/server/sv_storage.lua
Normal file
245
addons/eprotect_1.3.15/lua/e_protect/server/sv_storage.lua
Normal file
@@ -0,0 +1,245 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
local query, db
|
||||
local escape_str = function(str) return SQLStr(str, true) end
|
||||
|
||||
local create_queries = {
|
||||
[1] = [[CREATE TABLE IF NOT EXISTS eprotect_ips(
|
||||
id INTEGER PRIMARY KEY %s,
|
||||
sid64 CHAR(17),
|
||||
ip CHAR(15),
|
||||
country CHAR(3),
|
||||
logged_time INTEGER DEFAULT 0
|
||||
)]],
|
||||
[2] = [[CREATE TABLE IF NOT EXISTS eprotect_detections(
|
||||
id INTEGER PRIMARY KEY %s,
|
||||
name CHAR(32),
|
||||
sid64 CHAR(17),
|
||||
reason CHAR(32),
|
||||
info CHAR(32),
|
||||
type INTEGER DEFAULT 0,
|
||||
logged_time INTEGER DEFAULT 0
|
||||
)]],
|
||||
[3] = [[CREATE TABLE IF NOT EXISTS eprotect_http(
|
||||
id INTEGER PRIMARY KEY %s,
|
||||
link CHAR(64),
|
||||
type CHAR(6),
|
||||
called INTEGER DEFAULT 0
|
||||
)]]
|
||||
}
|
||||
|
||||
local function makeTables()
|
||||
for i = 1, #create_queries do
|
||||
query(string.format(create_queries[i], eProtect.config["storage_type"] == "sql_local" and "AUTOINCREMENT" or "AUTO_INCREMENT"))
|
||||
end
|
||||
end
|
||||
|
||||
if eProtect.config["storage_type"] == "mysql" then
|
||||
require("mysqloo")
|
||||
|
||||
query = function() end
|
||||
|
||||
local dbinfo = eProtect.config["mysql_info"]
|
||||
|
||||
db = mysqloo.connect(dbinfo.host, dbinfo.username, dbinfo.password, dbinfo.database, dbinfo.port)
|
||||
|
||||
function db:onConnected()
|
||||
print(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "mysql_successfull"))
|
||||
|
||||
query = function(str, func)
|
||||
local q = db:query(str)
|
||||
q.onSuccess = function(_, data)
|
||||
if func then
|
||||
func(data)
|
||||
end
|
||||
end
|
||||
|
||||
q.onError = function(_, err) end
|
||||
|
||||
q:start()
|
||||
end
|
||||
|
||||
escape_str = function(str) return db:escape(tostring(str)) end
|
||||
|
||||
makeTables()
|
||||
|
||||
hook.Run("eP:SQLConnected")
|
||||
end
|
||||
|
||||
function db:onConnectionFailed(err)
|
||||
print(eProtect.config["prefix"]..slib.getLang("eprotect", eProtect.config["language"], "mysql_failed"))
|
||||
print( "Error:", err )
|
||||
end
|
||||
|
||||
db:connect()
|
||||
else
|
||||
local oldFunc = sql.Query
|
||||
query = function(str, func)
|
||||
local result = oldFunc(str)
|
||||
|
||||
if func then
|
||||
func(result)
|
||||
end
|
||||
end
|
||||
|
||||
makeTables()
|
||||
end
|
||||
|
||||
local function handleCallbacksCorrelation(parent_tbl, correlated, callback)
|
||||
for k,v in ipairs(parent_tbl) do
|
||||
if !v then return end
|
||||
end
|
||||
|
||||
if !callback then return end
|
||||
callback(correlated or {})
|
||||
end
|
||||
|
||||
eProtect.correlateIP = function(target, callback)
|
||||
if !IsValid(target) then return end
|
||||
|
||||
local sid64 = target:SteamID64()
|
||||
local tbl = {}
|
||||
query("SELECT * FROM eprotect_ips WHERE sid64 = '"..sid64.."'", function(result)
|
||||
if result and result[1] then
|
||||
local parent_tbl = {}
|
||||
for k, v in ipairs(result) do
|
||||
parent_tbl[k] = false
|
||||
end
|
||||
|
||||
for key, plydata in ipairs(result) do
|
||||
query("SELECT * FROM eprotect_ips WHERE ip = '"..(plydata.ip).."'", function(result)
|
||||
if result and result[1] then
|
||||
for k,v in ipairs(result) do
|
||||
if v.sid64 == sid64 then continue end
|
||||
table.insert(tbl, {sid64 = v.sid64, ip = v.ip})
|
||||
end
|
||||
end
|
||||
|
||||
parent_tbl[key] = true
|
||||
|
||||
handleCallbacksCorrelation(parent_tbl, tbl, callback)
|
||||
end)
|
||||
end
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
eProtect.showIPs = function(target, ply)
|
||||
local sid64 = target:SteamID64()
|
||||
|
||||
query("SELECT * FROM eprotect_ips WHERE sid64 = '"..sid64.."'", function(result)
|
||||
if !IsValid(target) or !IsValid(ply) or !result or !result[1] then return end
|
||||
|
||||
result = util.TableToJSON(result)
|
||||
result = util.Base64Encode(result)
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(4,3)
|
||||
net.WriteUInt(target:EntIndex(), 14)
|
||||
net.WriteString(result)
|
||||
net.WriteBit(0)
|
||||
net.Send(ply)
|
||||
end)
|
||||
end
|
||||
|
||||
eProtect.registerIP = function(sid64, ip, country, time)
|
||||
query("SELECT * FROM eprotect_ips WHERE ip = '"..ip.."' AND sid64 = '"..sid64.."'", function(result)
|
||||
if result and result[1] then return end
|
||||
query(string.format("INSERT INTO eprotect_ips(ip, sid64, country, logged_time) VALUES('%s', %s, '%s', %s)", escape_str(ip), sid64, escape_str(country), time or os.time()))
|
||||
end)
|
||||
end
|
||||
|
||||
eProtect.logDetection = function(name, sid64, reason, info, type)
|
||||
query(string.format("INSERT INTO eprotect_detections(name, sid64, reason, info, type, logged_time) VALUES('%s', '%s', '%s', '%s', '%s', %s)", escape_str(name), escape_str(sid64), escape_str(reason), escape_str(info), escape_str(type), os.time()))
|
||||
end
|
||||
|
||||
eProtect.logHTTP = function(link, type, called)
|
||||
link = escape_str(link)
|
||||
|
||||
query("SELECT * FROM eprotect_http WHERE link = '"..link.."'", function(result)
|
||||
if result and result[1] then
|
||||
query("UPDATE eprotect_http SET called = "..(result[1].called + 1).." WHERE link = '"..link.."'")
|
||||
return end
|
||||
|
||||
query(string.format("INSERT INTO eprotect_http(link, type, called) VALUES('%s', '%s', "..(tonumber(called) or 1)..")", link, escape_str(type)))
|
||||
end)
|
||||
end
|
||||
|
||||
local function networkData(ply, data, id)
|
||||
local compressed = util.Compress(util.TableToJSON(data))
|
||||
|
||||
net.Start("eP:Handeler")
|
||||
net.WriteUInt(5, 3)
|
||||
net.WriteUInt(id, 1)
|
||||
net.WriteUInt(#compressed, 32)
|
||||
net.WriteData(compressed, #compressed)
|
||||
net.Send(ply)
|
||||
end
|
||||
|
||||
local http_cd, detection_cd = {}, {}
|
||||
|
||||
eProtect.requestHTTPLog = function(ply, page, search)
|
||||
if http_cd[ply] and http_cd[ply] > CurTime() then return end
|
||||
http_cd[ply] = CurTime() + .1
|
||||
|
||||
search = search ~= "" and escape_str(search) or nil
|
||||
|
||||
local perpage, pageCount = 20, 1
|
||||
local start = perpage * ((tonumber(page) or 1) - 1)
|
||||
local data = {}
|
||||
|
||||
local search_str = search and " WHERE (link LIKE '%"..search.."%')" or ""
|
||||
|
||||
query("SELECT COUNT(id) FROM eprotect_http"..search_str, function(pageresult)
|
||||
if pageresult and pageresult[1] and pageresult[1]["COUNT(id)"] then
|
||||
data.pageCount = math.max(math.ceil((pageresult[1]["COUNT(id)"] or 0) / perpage), 1)
|
||||
end
|
||||
|
||||
data.page = page
|
||||
|
||||
query("SELECT * FROM eprotect_http "..search_str.." LIMIT "..start..", "..perpage, function(result)
|
||||
data.result = result
|
||||
|
||||
networkData(ply, data, 0)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
eProtect.requestDetectionLog = function(ply, page, search)
|
||||
if detection_cd[ply] and detection_cd[ply] > CurTime() then return end
|
||||
detection_cd[ply] = CurTime() + .1
|
||||
|
||||
search = search ~= "" and escape_str(search) or nil
|
||||
|
||||
local perpage, pageCount = 20, 1
|
||||
local start = perpage * ((tonumber(page) or 1) - 1)
|
||||
local data = {}
|
||||
|
||||
local search_str = search and " WHERE (sid64 LIKE '%"..search.."%' OR name LIKE '%"..search.."%') " or ""
|
||||
|
||||
query("SELECT COUNT(id) FROM eprotect_detections"..search_str, function(pageresult)
|
||||
if pageresult and pageresult[1] and pageresult[1]["COUNT(id)"] then
|
||||
data.pageCount = math.max(math.ceil((pageresult[1]["COUNT(id)"] or 0) / perpage), 1)
|
||||
end
|
||||
|
||||
data.page = page
|
||||
|
||||
query("SELECT * FROM eprotect_detections"..search_str.." ORDER BY id DESC LIMIT "..start..", "..perpage, function(result)
|
||||
data.result = result
|
||||
|
||||
networkData(ply, data, 1)
|
||||
end)
|
||||
end)
|
||||
end
|
||||
|
||||
if eProtect.config["storage_type"] == "sql_local" then
|
||||
hook.Run("eP:SQLConnected")
|
||||
end
|
||||
109
addons/eprotect_1.3.15/lua/e_protect/sh_baseconfig.lua
Normal file
109
addons/eprotect_1.3.15/lua/e_protect/sh_baseconfig.lua
Normal file
@@ -0,0 +1,109 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
------------------------------------------------------
|
||||
-- NO NOT TOUCH ANYTHING IN HERE!!!!!!!!!
|
||||
------------------------------------------------------
|
||||
|
||||
eProtect = eProtect or {}
|
||||
|
||||
eProtect.BaseConfig = eProtect.BaseConfig or {}
|
||||
|
||||
eProtect.BaseConfig["disable-all-networking"] = {false, 1}
|
||||
|
||||
eProtect.BaseConfig["automatic-identifier"] = {1, 2, {min = 0, max = 3}}
|
||||
|
||||
eProtect.BaseConfig["block-vpn"] = {false, 3}
|
||||
|
||||
eProtect.BaseConfig["bypass-vpn"] = {{["76561198002319944"] = true}, 4, function()
|
||||
local list = {}
|
||||
|
||||
for k,v in ipairs(player.GetAll()) do
|
||||
local sid64 = v:SteamID64()
|
||||
if !sid64 then continue end
|
||||
list[sid64] = true
|
||||
end
|
||||
|
||||
if CAMI and CAMI.GetUsergroups then
|
||||
for k,v in pairs(CAMI.GetUsergroups()) do
|
||||
list[k] = true
|
||||
end
|
||||
end
|
||||
|
||||
return list
|
||||
end}
|
||||
|
||||
|
||||
eProtect.BaseConfig["notification-groups"] = {{["superadmin"] = true}, 5, CAMI and CAMI.GetUsergroups and function() local tbl = {} for k,v in pairs(CAMI.GetUsergroups()) do tbl[k] = true end return tbl end or {}}
|
||||
|
||||
eProtect.BaseConfig["ratelimit"] = {500, 6, {min = -1, max = 100000}}
|
||||
|
||||
eProtect.BaseConfig["timeout"] = {3, 7, {min = 0, max = 5000}}
|
||||
|
||||
eProtect.BaseConfig["overflowpunishment"] = {2, 8, {min = 0, max = 3}}
|
||||
|
||||
eProtect.BaseConfig["whitelistergroup"] = {{}, 9, function()
|
||||
local list = {}
|
||||
|
||||
if CAMI and CAMI.GetUsergroups then
|
||||
for k,v in pairs(CAMI.GetUsergroups()) do
|
||||
list[k] = true
|
||||
end
|
||||
end
|
||||
|
||||
return list
|
||||
end}
|
||||
|
||||
eProtect.BaseConfig["bypassgroup"] = {{}, 10, function()
|
||||
local list = {
|
||||
["superadmin"] = true,
|
||||
["owner"] = true
|
||||
}
|
||||
|
||||
if CAMI and CAMI.GetUsergroups then
|
||||
for k,v in pairs(CAMI.GetUsergroups()) do
|
||||
list[k] = true
|
||||
end
|
||||
end
|
||||
|
||||
return list
|
||||
end}
|
||||
|
||||
eProtect.BaseConfig["bypass_sids"] = {{["76561198002319944"] = true}, 11, function()
|
||||
local list = {}
|
||||
|
||||
for k,v in ipairs(player.GetAll()) do
|
||||
local sid64 = v:SteamID64()
|
||||
if !sid64 then continue end
|
||||
list[sid64] = true
|
||||
end
|
||||
|
||||
return list
|
||||
end}
|
||||
|
||||
eProtect.BaseConfig["httpfocusedurlsisblacklist"] = {true, 12}
|
||||
|
||||
eProtect.BaseConfig["httpfocusedurls"] = {{}, 13, function()
|
||||
local list = {}
|
||||
|
||||
local tbl_http = eProtect.data["requestedHTTP"] and eProtect.data["requestedHTTP"].result or {}
|
||||
|
||||
if tbl_http then
|
||||
for k,v in ipairs(tbl_http) do
|
||||
list[v.link] = true
|
||||
end
|
||||
end
|
||||
|
||||
return list
|
||||
end}
|
||||
|
||||
------------------------------------------------------
|
||||
-- NO NOT TOUCH ANYTHING IN HERE!!!!!!!!!
|
||||
------------------------------------------------------76561198002319944
|
||||
43
addons/eprotect_1.3.15/lua/e_protect/sh_config.lua
Normal file
43
addons/eprotect_1.3.15/lua/e_protect/sh_config.lua
Normal file
@@ -0,0 +1,43 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
|
||||
eProtect.config = eProtect.config or {}
|
||||
|
||||
eProtect.config["language"] = "en"
|
||||
|
||||
eProtect.config["prefix"] = "[eProtect] "
|
||||
|
||||
eProtect.config["storage_type"] = "mysql"-- (sql_local or mysql)
|
||||
|
||||
eProtect.config["disablehttplogging"] = false -- If a DRM is ran after eProtect it could break if they check for HTTP modifications! If so make this true.
|
||||
|
||||
eProtect.config["ignoreDRM"] = false
|
||||
|
||||
eProtect.config["punishMaliciousIntent"] = true
|
||||
|
||||
eProtect.config["disabledModules"] = {
|
||||
["identifier"] = false,
|
||||
["detection_log"] = false,
|
||||
["net_limiter"] = false,
|
||||
["net_logger"] = false,
|
||||
["exploit_patcher"] = false,
|
||||
["exploit_finder"] = false,
|
||||
["fake_exploits"] = false,
|
||||
["data_snooper"] = false
|
||||
}
|
||||
|
||||
eProtect.config["permission"] = {
|
||||
["owner"] = true,
|
||||
["superadmin"] = true,
|
||||
["community_manager"] = true,
|
||||
["headofstaff"] = true
|
||||
}
|
||||
550
addons/eprotect_1.3.15/lua/e_protect/sv_config.lua
Normal file
550
addons/eprotect_1.3.15/lua/e_protect/sv_config.lua
Normal file
@@ -0,0 +1,550 @@
|
||||
--[[
|
||||
| This file was obtained through the combined efforts
|
||||
| of Madbluntz & Plymouth Antiquarian Society.
|
||||
|
|
||||
| Credits: lifestorm, Gregory Wayne Rossel JR.,
|
||||
| Maloy, DrPepper10 @ RIP, Atle!
|
||||
|
|
||||
| Visit for more: https://plymouth.thetwilightzone.ru/
|
||||
--]]
|
||||
|
||||
eProtect = eProtect or {}
|
||||
|
||||
eProtect.config = eProtect.config or {}
|
||||
|
||||
eProtect.config["mysql_info"] = {
|
||||
host = "144.76.235.183",
|
||||
port = 3306,
|
||||
database = "s6_eprotect",
|
||||
username = "u6_PouapUJD6P",
|
||||
password = "V!3P!7^NQSXGvyBZPE76O^GY"
|
||||
}
|
||||
|
||||
eProtect.config["command"] = "!eprotect"
|
||||
|
||||
eProtect.config["process-save-queue"] = 10 --- This will check if we should save data to the file. 00
|
||||
|
||||
eProtect.data = eProtect.data or {}
|
||||
|
||||
eProtect.data.badNets = eProtect.data.badNets or {}
|
||||
|
||||
eProtect.registerBadNet = function(netstring, num)
|
||||
eProtect.data.badNets[netstring] = {type = num}
|
||||
end
|
||||
|
||||
|
||||
-- Credits to meepen for the table with known exploits and backdoors! <3
|
||||
|
||||
--- Known Exploits
|
||||
eProtect.registerBadNet("pplay_deleterow", 1)
|
||||
eProtect.registerBadNet("pplay_addrow", 1)
|
||||
eProtect.registerBadNet("pplay_sendtable", 1)
|
||||
eProtect.registerBadNet("WriteQuery", 1)
|
||||
eProtect.registerBadNet("SendMoney", 1)
|
||||
eProtect.registerBadNet("BailOut", 1)
|
||||
eProtect.registerBadNet("customprinter_get", 1)
|
||||
eProtect.registerBadNet("textstickers_entdata", 1)
|
||||
eProtect.registerBadNet("NC_GetNameChange", 1)
|
||||
eProtect.registerBadNet("ATS_WARP_REMOVE_CLIENT", 1)
|
||||
eProtect.registerBadNet("ATS_WARP_FROM_CLIENT", 1)
|
||||
eProtect.registerBadNet("ATS_WARP_VIEWOWNER", 1)
|
||||
eProtect.registerBadNet("CFRemoveGame", 1)
|
||||
eProtect.registerBadNet("CFJoinGame", 1)
|
||||
eProtect.registerBadNet("CFEndGame", 1)
|
||||
eProtect.registerBadNet("CreateCase", 1)
|
||||
eProtect.registerBadNet("rprotect_terminal_settings", 1)
|
||||
eProtect.registerBadNet("StackGhost", 1)
|
||||
eProtect.registerBadNet("RevivePlayer", 1)
|
||||
eProtect.registerBadNet("ARMORY_RetrieveWeapon", 1)
|
||||
eProtect.registerBadNet("TransferReport", 1)
|
||||
eProtect.registerBadNet("SimplicityAC_aysent", 1)
|
||||
eProtect.registerBadNet("pac_to_contraption", 1)
|
||||
eProtect.registerBadNet("SyncPrinterButtons76561198056171650", 1)
|
||||
eProtect.registerBadNet("sendtable", 1)
|
||||
eProtect.registerBadNet("steamid2", 1)
|
||||
eProtect.registerBadNet("Kun_SellDrug", 1)
|
||||
eProtect.registerBadNet("net_PSUnBoxServer", 1)
|
||||
eProtect.registerBadNet("pplay_deleterow", 1)
|
||||
eProtect.registerBadNet("pplay_addrow", 1)
|
||||
eProtect.registerBadNet("CraftSomething", 1)
|
||||
eProtect.registerBadNet("banleaver", 1)
|
||||
eProtect.registerBadNet("75_plus_win", 1)
|
||||
eProtect.registerBadNet("ATMDepositMoney", 1)
|
||||
eProtect.registerBadNet("Taxi_Add", 1)
|
||||
eProtect.registerBadNet("Kun_SellOil", 1)
|
||||
eProtect.registerBadNet("SellMinerals", 1)
|
||||
eProtect.registerBadNet("TakeBetMoney", 1)
|
||||
eProtect.registerBadNet("PoliceJoin", 1)
|
||||
eProtect.registerBadNet("CpForm_Answers", 1)
|
||||
eProtect.registerBadNet("DepositMoney", 1)
|
||||
eProtect.registerBadNet("MDE_RemoveStuff_C2S", 1)
|
||||
eProtect.registerBadNet("NET_SS_DoBuyTakeoff", 1)
|
||||
eProtect.registerBadNet("NET_EcSetTax", 1)
|
||||
eProtect.registerBadNet("RP_Accept_Fine", 1)
|
||||
eProtect.registerBadNet("RP_Fine_Player", 1)
|
||||
eProtect.registerBadNet("RXCAR_Shop_Store_C2S", 1)
|
||||
eProtect.registerBadNet("RXCAR_SellINVCar_C2S", 1)
|
||||
eProtect.registerBadNet("drugseffect_remove", 1)
|
||||
eProtect.registerBadNet("drugs_money", 1)
|
||||
eProtect.registerBadNet("CRAFTINGMOD_SHOP", 1)
|
||||
eProtect.registerBadNet("drugs_ignite", 1)
|
||||
eProtect.registerBadNet("drugseffect_hpremove", 1)
|
||||
eProtect.registerBadNet("DarkRP_Kun_ForceSpawn", 1)
|
||||
eProtect.registerBadNet("drugs_text", 1)
|
||||
eProtect.registerBadNet("NLRKick", 1)
|
||||
eProtect.registerBadNet("RecKickAFKer", 1)
|
||||
eProtect.registerBadNet("GMBG:PickupItem", 1)
|
||||
eProtect.registerBadNet("DL_Answering", 1)
|
||||
eProtect.registerBadNet("data_check", 1)
|
||||
eProtect.registerBadNet("plyWarning", 1)
|
||||
eProtect.registerBadNet("NLR.ActionPlayer", 1)
|
||||
eProtect.registerBadNet("timebombDefuse", 1)
|
||||
eProtect.registerBadNet("start_wd_emp", 1)
|
||||
eProtect.registerBadNet("kart_sell", 1)
|
||||
eProtect.registerBadNet("FarmingmodSellItems", 1)
|
||||
eProtect.registerBadNet("ClickerAddToPoints", 1)
|
||||
eProtect.registerBadNet("bodyman_model_change", 1)
|
||||
eProtect.registerBadNet("TOW_PayTheFine", 1)
|
||||
eProtect.registerBadNet("FIRE_CreateFireTruck", 1)
|
||||
eProtect.registerBadNet("hitcomplete", 1)
|
||||
eProtect.registerBadNet("hhh_request", 1)
|
||||
eProtect.registerBadNet("DaHit", 1)
|
||||
eProtect.registerBadNet("TCBBuyAmmo", 1)
|
||||
eProtect.registerBadNet("DataSend", 1)
|
||||
eProtect.registerBadNet("gBan.BanBuffer", 1)
|
||||
eProtect.registerBadNet("fp_as_doorHandler", 1)
|
||||
eProtect.registerBadNet("Upgrade", 1)
|
||||
eProtect.registerBadNet("TowTruck_CreateTowTruck", 1)
|
||||
eProtect.registerBadNet("TOW_SubmitWarning", 1)
|
||||
eProtect.registerBadNet("duelrequestguiYes", 1)
|
||||
eProtect.registerBadNet("JoinOrg", 1)
|
||||
eProtect.registerBadNet("pac_submit", 1)
|
||||
eProtect.registerBadNet("NDES_SelectedEmblem", 1)
|
||||
eProtect.registerBadNet("join_disconnect", 1)
|
||||
eProtect.registerBadNet("Morpheus.StaffTracker", 1)
|
||||
eProtect.registerBadNet("casinokit_chipexchange", 1)
|
||||
eProtect.registerBadNet("BuyKey", 1)
|
||||
eProtect.registerBadNet("BuyCrate", 1)
|
||||
eProtect.registerBadNet("FactionInviteConsole", 1)
|
||||
eProtect.registerBadNet("FacCreate", 1)
|
||||
eProtect.registerBadNet("1942_Fuhrer_SubmitCandidacy", 1)
|
||||
eProtect.registerBadNet("pogcp_report_submitReport", 1)
|
||||
eProtect.registerBadNet("hsend", 1)
|
||||
eProtect.registerBadNet("BuilderXToggleKill", 1)
|
||||
eProtect.registerBadNet("Chatbox_PlayerChat", 1)
|
||||
eProtect.registerBadNet("reports.submit", 1)
|
||||
eProtect.registerBadNet("services_accept", 1)
|
||||
eProtect.registerBadNet("Warn_CreateWarn", 1)
|
||||
eProtect.registerBadNet("NewReport", 1)
|
||||
eProtect.registerBadNet("soez", 1)
|
||||
eProtect.registerBadNet("GiveHealthNPC", 1)
|
||||
eProtect.registerBadNet("DarkRP_SS_Gamble", 1)
|
||||
eProtect.registerBadNet("buyinghealth", 1)
|
||||
eProtect.registerBadNet("DarkRP_preferredjobmodel", 1)
|
||||
eProtect.registerBadNet("whk_setart", 1)
|
||||
eProtect.registerBadNet("WithdrewBMoney", 1)
|
||||
eProtect.registerBadNet("DuelMessageReturn", 1)
|
||||
eProtect.registerBadNet("ban_rdm", 1)
|
||||
eProtect.registerBadNet("BuyCar", 1)
|
||||
eProtect.registerBadNet("ats_send_toServer", 1)
|
||||
eProtect.registerBadNet("dLogsGetCommand", 1)
|
||||
eProtect.registerBadNet("disguise", 1)
|
||||
eProtect.registerBadNet("gportal_rpname_change", 1)
|
||||
eProtect.registerBadNet("AbilityUse", 1)
|
||||
eProtect.registerBadNet("ClickerAddToPoints", 1)
|
||||
eProtect.registerBadNet("race_accept", 1)
|
||||
eProtect.registerBadNet("give_me_weapon", 1)
|
||||
eProtect.registerBadNet("FinishContract", 1)
|
||||
eProtect.registerBadNet("NLR_SPAWN", 1)
|
||||
eProtect.registerBadNet("Kun_ZiptieStruggle", 1)
|
||||
eProtect.registerBadNet("JB_Votekick", 1)
|
||||
eProtect.registerBadNet("Letthisdudeout", 1)
|
||||
eProtect.registerBadNet("ckit_roul_bet", 1)
|
||||
eProtect.registerBadNet("pac.net.TouchFlexes.ClientNotify", 1)
|
||||
eProtect.registerBadNet("ply_pick_shit", 1)
|
||||
eProtect.registerBadNet("TFA_Attachment_RequestAll", 1)
|
||||
eProtect.registerBadNet("BuyFirstTovar", 1)
|
||||
eProtect.registerBadNet("BuySecondTovar", 1)
|
||||
eProtect.registerBadNet("GiveHealthNPC", 1)
|
||||
eProtect.registerBadNet("MONEY_SYSTEM_GetWeapons", 1)
|
||||
eProtect.registerBadNet("MCon_Demote_ToServer", 1)
|
||||
eProtect.registerBadNet("withdrawp", 1)
|
||||
eProtect.registerBadNet("PCAdd", 1)
|
||||
eProtect.registerBadNet("ActivatePC", 1)
|
||||
eProtect.registerBadNet("PCDelAll", 1)
|
||||
eProtect.registerBadNet("viv_hl2rp_disp_message", 1)
|
||||
eProtect.registerBadNet("ATM_DepositMoney_C2S", 1)
|
||||
eProtect.registerBadNet("BM2.Command.SellBitcoins", 1)
|
||||
eProtect.registerBadNet("BM2.Command.Eject", 1)
|
||||
eProtect.registerBadNet("tickbooksendfine", 1)
|
||||
eProtect.registerBadNet("egg", 1)
|
||||
eProtect.registerBadNet("RHC_jail_player", 1)
|
||||
eProtect.registerBadNet("PlayerUseItem", 1)
|
||||
eProtect.registerBadNet("Chess Top10", 1)
|
||||
eProtect.registerBadNet("ItemStoreUse", 1)
|
||||
eProtect.registerBadNet("EZS_PlayerTag", 1)
|
||||
eProtect.registerBadNet("simfphys_gasspill", 1)
|
||||
eProtect.registerBadNet("sphys_dupe", 1)
|
||||
eProtect.registerBadNet("sw_gokart", 1)
|
||||
eProtect.registerBadNet("wordenns", 1)
|
||||
eProtect.registerBadNet("SyncPrinterButtons16690", 1)
|
||||
eProtect.registerBadNet("AttemptSellCar", 1)
|
||||
eProtect.registerBadNet("uPLYWarning", 1)
|
||||
eProtect.registerBadNet("atlaschat.rqclrcfg", 1)
|
||||
eProtect.registerBadNet("dlib.getinfo.replicate", 1)
|
||||
eProtect.registerBadNet("SetPermaKnife", 1)
|
||||
eProtect.registerBadNet("EnterpriseWithdraw", 1)
|
||||
eProtect.registerBadNet("SBP_addtime", 1)
|
||||
eProtect.registerBadNet("NetData", 1)
|
||||
eProtect.registerBadNet("CW20_PRESET_LOAD", 1)
|
||||
eProtect.registerBadNet("minigun_drones_switch", 1)
|
||||
eProtect.registerBadNet("NET_AM_MakePotion", 1)
|
||||
eProtect.registerBadNet("bitcoins_request_turn_off", 1)
|
||||
eProtect.registerBadNet("bitcoins_request_turn_on", 1)
|
||||
eProtect.registerBadNet("bitcoins_request_withdraw", 1)
|
||||
eProtect.registerBadNet("PermwepsNPCSellWeapon", 1)
|
||||
eProtect.registerBadNet("ncpstoredoact", 1)
|
||||
eProtect.registerBadNet("DuelRequestClient", 1)
|
||||
eProtect.registerBadNet("BeginSpin", 1)
|
||||
eProtect.registerBadNet("tickbookpayfine", 1)
|
||||
eProtect.registerBadNet("fg_printer_money", 1)
|
||||
eProtect.registerBadNet("IGS.GetPaymentURL", 1)
|
||||
eProtect.registerBadNet("AirDrops_StartPlacement", 1)
|
||||
eProtect.registerBadNet("SlotsRemoved", 1)
|
||||
eProtect.registerBadNet("FARMINGMOD_DROPITEM", 1)
|
||||
eProtect.registerBadNet("cab_sendmessage", 1)
|
||||
eProtect.registerBadNet("cab_cd_testdrive", 1)
|
||||
eProtect.registerBadNet("blueatm", 1)
|
||||
eProtect.registerBadNet("SCP-294Sv", 1)
|
||||
eProtect.registerBadNet("dronesrewrite_controldr", 1)
|
||||
eProtect.registerBadNet("desktopPrinter_Withdraw", 1)
|
||||
eProtect.registerBadNet("RemoveTag", 1)
|
||||
eProtect.registerBadNet("IDInv_RequestBank", 1)
|
||||
eProtect.registerBadNet("UseMedkit", 1)
|
||||
eProtect.registerBadNet("WipeMask", 1)
|
||||
eProtect.registerBadNet("SwapFilter", 1)
|
||||
eProtect.registerBadNet("RemoveMask", 1)
|
||||
eProtect.registerBadNet("DeployMask", 1)
|
||||
eProtect.registerBadNet("ZED_SpawnCar", 1)
|
||||
eProtect.registerBadNet("levelup_useperk", 1)
|
||||
eProtect.registerBadNet("passmayorexam", 1)
|
||||
eProtect.registerBadNet("Selldatride", 1)
|
||||
eProtect.registerBadNet("ORG_VaultDonate", 1)
|
||||
eProtect.registerBadNet("ORG_NewOrg", 1)
|
||||
eProtect.registerBadNet("ScannerMenu", 1)
|
||||
eProtect.registerBadNet("misswd_accept", 1)
|
||||
eProtect.registerBadNet("D3A_Message", 1)
|
||||
eProtect.registerBadNet("LawsToServer", 1)
|
||||
eProtect.registerBadNet("Shop_buy", 1)
|
||||
eProtect.registerBadNet("D3A_CreateOrg", 1)
|
||||
eProtect.registerBadNet("Gb_gasstation_BuyGas", 1)
|
||||
eProtect.registerBadNet("Gb_gasstation_BuyJerrycan", 1)
|
||||
eProtect.registerBadNet("MineServer", 1)
|
||||
eProtect.registerBadNet("AcceptBailOffer", 1)
|
||||
eProtect.registerBadNet("LawyerOfferBail", 1)
|
||||
eProtect.registerBadNet("buy_bundle", 1)
|
||||
eProtect.registerBadNet("AskPickupItemInv", 1)
|
||||
eProtect.registerBadNet("donatorshop_itemtobuy", 1)
|
||||
eProtect.registerBadNet("netOrgVoteInvite_Server", 1)
|
||||
eProtect.registerBadNet("Chess ClientWager", 1)
|
||||
eProtect.registerBadNet("AcceptRequest", 1)
|
||||
eProtect.registerBadNet("deposit", 1)
|
||||
eProtect.registerBadNet("CubeRiot CaptureZone Update", 1)
|
||||
eProtect.registerBadNet("NPCShop_BuyItem", 1)
|
||||
eProtect.registerBadNet("SpawnProtection", 1)
|
||||
eProtect.registerBadNet("hoverboardpurchase", 1)
|
||||
eProtect.registerBadNet("soundArrestCommit", 1)
|
||||
eProtect.registerBadNet("LotteryMenu", 1)
|
||||
eProtect.registerBadNet("updateLaws", 1)
|
||||
eProtect.registerBadNet("TMC_NET_FirePlayer", 1)
|
||||
eProtect.registerBadNet("thiefnpc", 1)
|
||||
eProtect.registerBadNet("TMC_NET_MakePlayerWanted", 1)
|
||||
eProtect.registerBadNet("SyncRemoveAction", 1)
|
||||
eProtect.registerBadNet("HV_AmmoBuy", 1)
|
||||
eProtect.registerBadNet("NET_CR_TakeStoredMoney", 1)
|
||||
eProtect.registerBadNet("nox_addpremadepunishment", 1)
|
||||
eProtect.registerBadNet("GrabMoney", 1)
|
||||
eProtect.registerBadNet("LAWYER.GetBailOut", 1)
|
||||
eProtect.registerBadNet("LAWYER.BailFelonOut", 1)
|
||||
eProtect.registerBadNet("br_send_pm", 1)
|
||||
eProtect.registerBadNet("GET_Admin_MSGS", 1)
|
||||
eProtect.registerBadNet("OPEN_ADMIN_CHAT", 1)
|
||||
eProtect.registerBadNet("LB_AddBan", 1)
|
||||
eProtect.registerBadNet("redirectMsg", 1)
|
||||
eProtect.registerBadNet("RDMReason_Explain", 1)
|
||||
eProtect.registerBadNet("JB_SelectWarden", 1)
|
||||
eProtect.registerBadNet("JB_GiveCubics", 1)
|
||||
eProtect.registerBadNet("SendSteamID", 1)
|
||||
eProtect.registerBadNet("wyozimc_playply", 1)
|
||||
eProtect.registerBadNet("SpecDM_SendLoadout", 1)
|
||||
eProtect.registerBadNet("sv_saveweapons", 1)
|
||||
eProtect.registerBadNet("DL_StartReport", 1)
|
||||
eProtect.registerBadNet("DL_ReportPlayer", 1)
|
||||
eProtect.registerBadNet("DL_AskLogsList", 1)
|
||||
eProtect.registerBadNet("DailyLoginClaim", 1)
|
||||
eProtect.registerBadNet("GiveWeapon", 1)
|
||||
eProtect.registerBadNet("GovStation_SpawnVehicle", 1)
|
||||
eProtect.registerBadNet("inviteToOrganization", 1)
|
||||
eProtect.registerBadNet("createFaction", 1)
|
||||
eProtect.registerBadNet("sellitem", 1)
|
||||
eProtect.registerBadNet("giveArrestReason", 1)
|
||||
eProtect.registerBadNet("unarrestPerson", 1)
|
||||
eProtect.registerBadNet("JoinFirstSS", 1)
|
||||
eProtect.registerBadNet("bringNfreeze", 1)
|
||||
eProtect.registerBadNet("start_wd_hack", 1)
|
||||
eProtect.registerBadNet("DestroyTable", 1)
|
||||
eProtect.registerBadNet("nCTieUpStart", 1)
|
||||
eProtect.registerBadNet("IveBeenRDMed", 1)
|
||||
eProtect.registerBadNet("FIGHTCLUB_StartFight", 1)
|
||||
eProtect.registerBadNet("FIGHTCLUB_KickPlayer", 1)
|
||||
eProtect.registerBadNet("ReSpawn", 1)
|
||||
eProtect.registerBadNet("CP_Test_Results", 1)
|
||||
eProtect.registerBadNet("AcceptBailOffer", 1)
|
||||
eProtect.registerBadNet("IS_SubmitSID_C2S", 1)
|
||||
eProtect.registerBadNet("IS_GetReward_C2S", 1)
|
||||
eProtect.registerBadNet("ChangeOrgName", 1)
|
||||
eProtect.registerBadNet("DisbandOrganization", 1)
|
||||
eProtect.registerBadNet("CreateOrganization", 1)
|
||||
eProtect.registerBadNet("newTerritory", 1)
|
||||
eProtect.registerBadNet("InviteMember", 1)
|
||||
eProtect.registerBadNet("sendDuelInfo", 1)
|
||||
eProtect.registerBadNet("DoDealerDeliver", 1)
|
||||
eProtect.registerBadNet("PurchaseWeed", 1)
|
||||
eProtect.registerBadNet("guncraft_removeWorkbench", 1)
|
||||
eProtect.registerBadNet("wordenns", 1)
|
||||
eProtect.registerBadNet("userAcceptPrestige", 1)
|
||||
eProtect.registerBadNet("vj_npcspawner_sv_create", 1)
|
||||
eProtect.registerBadNet("DuelMessageReturn", 1)
|
||||
eProtect.registerBadNet("Client_To_Server_OpenEditor", 1)
|
||||
eProtect.registerBadNet("GiveSCP294Cup", 1)
|
||||
eProtect.registerBadNet("GiveArmor100", 1)
|
||||
eProtect.registerBadNet("SprintSpeedset", 1)
|
||||
eProtect.registerBadNet("ArmorButton", 1)
|
||||
eProtect.registerBadNet("HealButton", 1)
|
||||
eProtect.registerBadNet("SRequest", 1)
|
||||
eProtect.registerBadNet("ClickerForceSave", 1)
|
||||
eProtect.registerBadNet("rpi_trade_end", 1)
|
||||
eProtect.registerBadNet("NET_BailPlayer", 1)
|
||||
eProtect.registerBadNet("vj_testentity_runtextsd", 1)
|
||||
eProtect.registerBadNet("vj_fireplace_turnon2", 1)
|
||||
eProtect.registerBadNet("requestmoneyforvk", 1)
|
||||
eProtect.registerBadNet("gPrinters.sendID", 1)
|
||||
eProtect.registerBadNet("FIRE_RemoveFireTruck", 1)
|
||||
eProtect.registerBadNet("drugs_effect", 1)
|
||||
eProtect.registerBadNet("drugs_give", 1)
|
||||
eProtect.registerBadNet("NET_DoPrinterAction", 1)
|
||||
eProtect.registerBadNet("opr_withdraw", 1)
|
||||
eProtect.registerBadNet("money_clicker_withdraw", 1)
|
||||
eProtect.registerBadNet("NGII_TakeMoney", 1)
|
||||
eProtect.registerBadNet("gPrinters.retrieveMoney", 1)
|
||||
eProtect.registerBadNet("revival_revive_accept", 1)
|
||||
eProtect.registerBadNet("chname", 1)
|
||||
eProtect.registerBadNet("NewRPNameSQL", 1)
|
||||
eProtect.registerBadNet("UpdateRPUModelSQL", 1)
|
||||
eProtect.registerBadNet("SetTableTarget", 1)
|
||||
eProtect.registerBadNet("SquadGiveWeapon", 1)
|
||||
eProtect.registerBadNet("BuyUpgradesStuff", 1)
|
||||
eProtect.registerBadNet("REPAdminChangeLVL", 1)
|
||||
eProtect.registerBadNet("SendMail", 1)
|
||||
eProtect.registerBadNet("DemotePlayer", 1)
|
||||
eProtect.registerBadNet("OpenGates", 1)
|
||||
eProtect.registerBadNet("VehicleUnderglow", 1)
|
||||
eProtect.registerBadNet("Hopping_Test", 1)
|
||||
eProtect.registerBadNet("CREATE_REPORT", 1)
|
||||
eProtect.registerBadNet("CreateEntity", 1)
|
||||
eProtect.registerBadNet("FiremanLeave", 1)
|
||||
eProtect.registerBadNet("DarkRP_Defib_ForceSpawn", 1)
|
||||
eProtect.registerBadNet("Resupply", 1)
|
||||
eProtect.registerBadNet("BTTTStartVotekick", 1)
|
||||
eProtect.registerBadNet("_nonDBVMVote", 1)
|
||||
eProtect.registerBadNet("REPPurchase", 1)
|
||||
eProtect.registerBadNet("deathrag_takeitem", 1)
|
||||
eProtect.registerBadNet("FacCreate", 1)
|
||||
eProtect.registerBadNet("InformPlayer", 1)
|
||||
eProtect.registerBadNet("lockpick_sound", 1)
|
||||
eProtect.registerBadNet("SetPlayerModel", 1)
|
||||
eProtect.registerBadNet("changeToPhysgun", 1)
|
||||
eProtect.registerBadNet("VoteBanNO", 1)
|
||||
eProtect.registerBadNet("VoteKickNO", 1)
|
||||
eProtect.registerBadNet("shopguild_buyitem", 1)
|
||||
eProtect.registerBadNet("MG2.Request.GangRankings", 1)
|
||||
eProtect.registerBadNet("RequestMAPSize", 1)
|
||||
eProtect.registerBadNet("gMining.sellMineral", 1)
|
||||
eProtect.registerBadNet("ItemStoreDrop", 1)
|
||||
eProtect.registerBadNet("optarrest", 1)
|
||||
eProtect.registerBadNet("TalkIconChat", 1)
|
||||
eProtect.registerBadNet("UpdateAdvBoneSettings", 1)
|
||||
eProtect.registerBadNet("ViralsScoreboardAdmin", 1)
|
||||
eProtect.registerBadNet("PowerRoundsForcePR", 1)
|
||||
eProtect.registerBadNet("showDisguiseHUD", 1)
|
||||
eProtect.registerBadNet("withdrawMoney", 1)
|
||||
eProtect.registerBadNet("SyncPrinterButtons76561198027292625", 1)
|
||||
eProtect.registerBadNet("phone", 1)
|
||||
eProtect.registerBadNet("STLoanToServer", 1)
|
||||
eProtect.registerBadNet("TCBDealerStore", 1)
|
||||
eProtect.registerBadNet("TCBDealerSpawn", 1)
|
||||
eProtect.registerBadNet("ts_buytitle", 1)
|
||||
eProtect.registerBadNet("gMining.registerAchievement", 1)
|
||||
eProtect.registerBadNet("gPrinters.openUpgrades", 1)
|
||||
|
||||
--- Known Backdoors
|
||||
eProtect.registerBadNet("Sbox_gm_attackofnullday_key", 2)
|
||||
eProtect.registerBadNet("c", 2)
|
||||
eProtect.registerBadNet("enablevac", 2)
|
||||
eProtect.registerBadNet("ULXQUERY2", 2)
|
||||
eProtect.registerBadNet("Im_SOCool", 2)
|
||||
eProtect.registerBadNet("MoonMan", 2)
|
||||
eProtect.registerBadNet("LickMeOut", 2)
|
||||
eProtect.registerBadNet("SessionBackdoor", 2)
|
||||
eProtect.registerBadNet("OdiumBackDoor", 2)
|
||||
eProtect.registerBadNet("ULX_QUERY2", 2)
|
||||
eProtect.registerBadNet("Sbox_itemstore", 2)
|
||||
eProtect.registerBadNet("Sbox_darkrp", 2)
|
||||
eProtect.registerBadNet("Sbox_Message", 2)
|
||||
eProtect.registerBadNet("_blacksmurf", 2)
|
||||
eProtect.registerBadNet("nostrip", 2)
|
||||
eProtect.registerBadNet("Remove_Exploiters", 2)
|
||||
eProtect.registerBadNet("Sandbox_ArmDupe", 2)
|
||||
eProtect.registerBadNet("rconadmin", 2)
|
||||
eProtect.registerBadNet("jesuslebg", 2)
|
||||
eProtect.registerBadNet("disablebackdoor", 2)
|
||||
eProtect.registerBadNet("blacksmurfBackdoor", 2)
|
||||
eProtect.registerBadNet("jeveuttonrconleul", 2)
|
||||
eProtect.registerBadNet("lag_ping", 2)
|
||||
eProtect.registerBadNet("memeDoor", 2)
|
||||
eProtect.registerBadNet("DarkRP_AdminWeapons", 2)
|
||||
eProtect.registerBadNet("Fix_Keypads", 2)
|
||||
eProtect.registerBadNet("noclipcloakaesp_chat_text", 2)
|
||||
eProtect.registerBadNet("_CAC_ReadMemory", 2)
|
||||
eProtect.registerBadNet("Ulib_Message", 2)
|
||||
eProtect.registerBadNet("Ulogs_Infos", 2)
|
||||
eProtect.registerBadNet("ITEM", 2)
|
||||
eProtect.registerBadNet("nocheat", 2)
|
||||
eProtect.registerBadNet("adsp_door_length", 2)
|
||||
eProtect.registerBadNet("ξpsilon", 2)
|
||||
eProtect.registerBadNet("JQerystrip.disable", 2)
|
||||
eProtect.registerBadNet("Sandbox_GayParty", 2)
|
||||
eProtect.registerBadNet("DarkRP_UTF8", 2)
|
||||
eProtect.registerBadNet("PlayerKilledLogged", 2)
|
||||
eProtect.registerBadNet("OldNetReadData", 2)
|
||||
eProtect.registerBadNet("Backdoor", 2)
|
||||
eProtect.registerBadNet("cucked", 2)
|
||||
eProtect.registerBadNet("NoNerks", 2)
|
||||
eProtect.registerBadNet("kek", 2)
|
||||
eProtect.registerBadNet("DarkRP_Money_System", 2)
|
||||
eProtect.registerBadNet("BetStrep", 2)
|
||||
eProtect.registerBadNet("ZimbaBackdoor", 2)
|
||||
eProtect.registerBadNet("something", 2)
|
||||
eProtect.registerBadNet("random", 2)
|
||||
eProtect.registerBadNet("strip0", 2)
|
||||
eProtect.registerBadNet("fellosnake", 2)
|
||||
eProtect.registerBadNet("idk", 2)
|
||||
eProtect.registerBadNet("||||", 2)
|
||||
eProtect.registerBadNet("EnigmaIsthere", 2)
|
||||
eProtect.registerBadNet("ALTERED_CARB0N", 2)
|
||||
eProtect.registerBadNet("killserver", 2)
|
||||
eProtect.registerBadNet("fuckserver", 2)
|
||||
eProtect.registerBadNet("cvaraccess", 2)
|
||||
eProtect.registerBadNet("_Defcon", 2)
|
||||
eProtect.registerBadNet("dontforget", 2)
|
||||
eProtect.registerBadNet("aze46aez67z67z64dcv4bt", 2)
|
||||
eProtect.registerBadNet("nolag", 2)
|
||||
eProtect.registerBadNet("changename", 2)
|
||||
eProtect.registerBadNet("music", 2)
|
||||
eProtect.registerBadNet("_Defqon", 2)
|
||||
eProtect.registerBadNet("xenoexistscl", 2)
|
||||
eProtect.registerBadNet("R8", 2)
|
||||
eProtect.registerBadNet("AnalCavity", 2)
|
||||
eProtect.registerBadNet("DefqonBackdoor", 2)
|
||||
eProtect.registerBadNet("fourhead", 2)
|
||||
eProtect.registerBadNet("echangeinfo", 2)
|
||||
eProtect.registerBadNet("PlayerItemPickUp", 2)
|
||||
eProtect.registerBadNet("thefrenchenculer", 2)
|
||||
eProtect.registerBadNet("elfamosabackdoormdr", 2)
|
||||
eProtect.registerBadNet("stoppk", 2)
|
||||
eProtect.registerBadNet("noprop", 2)
|
||||
eProtect.registerBadNet("reaper", 2)
|
||||
eProtect.registerBadNet("Abcdefgh", 2)
|
||||
eProtect.registerBadNet("JSQuery.Data(Post(false))", 2)
|
||||
eProtect.registerBadNet("pjHabrp9EY", 2)
|
||||
eProtect.registerBadNet("_Raze", 2)
|
||||
eProtect.registerBadNet("88", 2)
|
||||
eProtect.registerBadNet("Dominos", 2)
|
||||
eProtect.registerBadNet("NoOdium_ReadPing", 2)
|
||||
eProtect.registerBadNet("m9k_explosionradius", 2)
|
||||
eProtect.registerBadNet("gag", 2)
|
||||
eProtect.registerBadNet("_cac_", 2)
|
||||
eProtect.registerBadNet("_Battleye_Meme_", 2)
|
||||
eProtect.registerBadNet("legrandguzmanestla", 2)
|
||||
eProtect.registerBadNet("ULogs_B", 2)
|
||||
eProtect.registerBadNet("arivia", 2)
|
||||
eProtect.registerBadNet("_Warns", 2)
|
||||
eProtect.registerBadNet("xuy", 2)
|
||||
eProtect.registerBadNet("samosatracking57", 2)
|
||||
eProtect.registerBadNet("striphelper", 2)
|
||||
eProtect.registerBadNet("m9k_explosive", 2)
|
||||
eProtect.registerBadNet("GaySploitBackdoor", 2)
|
||||
eProtect.registerBadNet("_GaySploit", 2)
|
||||
eProtect.registerBadNet("slua", 2)
|
||||
eProtect.registerBadNet("Bilboard.adverts:Spawn(false)", 2)
|
||||
eProtect.registerBadNet("BOOST_FPS", 2)
|
||||
eProtect.registerBadNet("FPP_AntiStrip", 2)
|
||||
eProtect.registerBadNet("ULX_QUERY_TEST2", 2)
|
||||
eProtect.registerBadNet("FADMIN_ANTICRASH", 2)
|
||||
eProtect.registerBadNet("ULX_ANTI_BACKDOOR", 2)
|
||||
eProtect.registerBadNet("UKT_MOMOS", 2)
|
||||
eProtect.registerBadNet("rcivluz", 2)
|
||||
eProtect.registerBadNet("SENDTEST", 2)
|
||||
eProtect.registerBadNet("MJkQswHqfZ", 2)
|
||||
eProtect.registerBadNet("INJ3v4", 2)
|
||||
eProtect.registerBadNet("_clientcvars", 2)
|
||||
eProtect.registerBadNet("_main", 2)
|
||||
eProtect.registerBadNet("GMOD_NETDBG", 2)
|
||||
eProtect.registerBadNet("thereaper", 2)
|
||||
eProtect.registerBadNet("audisquad_lua", 2)
|
||||
eProtect.registerBadNet("anticrash", 2)
|
||||
eProtect.registerBadNet("ZernaxBackdoor", 2)
|
||||
eProtect.registerBadNet("bdsm", 2)
|
||||
eProtect.registerBadNet("waoz", 2)
|
||||
eProtect.registerBadNet("stream", 2)
|
||||
eProtect.registerBadNet("adm_network", 2)
|
||||
eProtect.registerBadNet("antiexploit", 2)
|
||||
eProtect.registerBadNet("ReadPing", 2)
|
||||
eProtect.registerBadNet("berettabest", 2)
|
||||
eProtect.registerBadNet("componenttolua", 2)
|
||||
eProtect.registerBadNet("theberettabcd", 2)
|
||||
eProtect.registerBadNet("negativedlebest", 2)
|
||||
eProtect.registerBadNet("mathislebg", 2)
|
||||
eProtect.registerBadNet("SparksLeBg", 2)
|
||||
eProtect.registerBadNet("DOGE", 2)
|
||||
eProtect.registerBadNet("FPSBOOST", 2)
|
||||
eProtect.registerBadNet("N::B::P", 2)
|
||||
eProtect.registerBadNet("PDA_DRM_REQUEST_CONTENT", 2)
|
||||
eProtect.registerBadNet("shix", 2)
|
||||
eProtect.registerBadNet("Inj3", 2)
|
||||
eProtect.registerBadNet("AidsTacos", 2)
|
||||
eProtect.registerBadNet("verifiopd", 2)
|
||||
eProtect.registerBadNet("pwn_wake", 2)
|
||||
eProtect.registerBadNet("pwn_http_answer", 2)
|
||||
eProtect.registerBadNet("pwn_http_send", 2)
|
||||
eProtect.registerBadNet("The_Dankwoo", 2)
|
||||
eProtect.registerBadNet("PRDW_GET", 2)
|
||||
eProtect.registerBadNet("fancyscoreboard_leave", 2)
|
||||
eProtect.registerBadNet("DarkRP_Gamemodes", 2)
|
||||
eProtect.registerBadNet("DarkRP_Armors", 2)
|
||||
eProtect.registerBadNet("yohsambresicianatik<3", 2)
|
||||
eProtect.registerBadNet("EnigmaProject", 2)
|
||||
eProtect.registerBadNet("PlayerCheck", 2)
|
||||
eProtect.registerBadNet("Ulx_Error_88", 2)
|
||||
eProtect.registerBadNet("FAdmin_Notification_Receiver", 2)
|
||||
eProtect.registerBadNet("DarkRP_ReceiveData", 2)
|
||||
eProtect.registerBadNet("Weapon_88", 2)
|
||||
eProtect.registerBadNet("__G____CAC", 2)
|
||||
eProtect.registerBadNet("AbSoluT", 2)
|
||||
eProtect.registerBadNet("mecthack", 2)
|
||||
eProtect.registerBadNet("SetPlayerDeathCount", 2)
|
||||
eProtect.registerBadNet("awarn_remove", 2)
|
||||
eProtect.registerBadNet("fijiconn", 2)
|
||||
eProtect.registerBadNet("nw.readstream", 2)
|
||||
eProtect.registerBadNet("LuaCmd", 2)
|
||||
eProtect.registerBadNet("The_DankWhy", 2)
|
||||
Reference in New Issue
Block a user