TankShield-Net6
1.0.0
dotnet add package TankShield-Net6 --version 1.0.0
NuGet\Install-Package TankShield-Net6 -Version 1.0.0
<PackageReference Include="TankShield-Net6" Version="1.0.0" />
paket add TankShield-Net6 --version 1.0.0
#r "nuget: TankShield-Net6, 1.0.0"
// Install TankShield-Net6 as a Cake Addin #addin nuget:?package=TankShield-Net6&version=1.0.0 // Install TankShield-Net6 as a Cake Tool #tool nuget:?package=TankShield-Net6&version=1.0.0
TankShield Standard
TankShield Standard é uma pequena biblioteca que pode ser usada para evitar ataques no jogo DDTank para .NET Standard.
Veja TankShield Legacy para .NET Framework 4.8
Instalação
- Instale a biblioteca a partir do NuGet.
Install-Package TankShield
Ou a partir do .NET CLI.
dotnet add package TankShield
- Altere o "SO de Destino" do seu projeto para
Windows
.
Para alterar pelo Visual Studio, clique com o botão direito no seu projeto e vá em Propriedades (Alt + Enter).
Para alterar por código, abra o arquivo com extensão .csproj
do seu projeto e adicione -windows
após a versão do
framework, dentro da tag <TargetFramework/>
. Exemplo:
<TargetFramework>net8.0</TargetFramework>
<TargetFramework>net8.0-windows</TargetFramework>
Como usar
Bloquear ataques por endereço de IP
Usando IPAddressAttackMgr
é possível bloquear ataques ao jogo por endereço de IP.
Cada vez que IPAddressAttackMgr.AddIPAddress(IPAddress ipAddress, int blockInCount = 5)
é chamado, o endereço de IP
especificado é guardado e ao atingir a quantidade especificada no parâmetro blockInCount
o IP é bloqueado no Firewall
do Windows.
Exemplo de uso:
var ipAddress = IPAddress.Parse("127.0.0.1");
// Neste exemplo, na 5ª adição o endereço de IP 127.0.0.1 será bloqueado.
IPAddressAttackMgr.AddIPAddress(ipAddress, blockInCount: 5);
Implementação recomendada
Em PacketProcessor.HandlePacket(GSPacketIn packet)
, procure pela chamada packetHandler.HandlePacket(Client, packet)
,
note que junto dele terá uma condição (if
) semelhante a abaixo:
if (packet.Code is 1 || Client.Player is not null)
{
packetHandler.HandlePacket(Client, packet);
}
Adicione um else
para bloquear ataques com pacotes aleatórios enviados para o serviço do jogo:
if (packet.Code is 1 || Client.Player is not null)
{
packetHandler.HandlePacket(Client, packet);
}
// Adicione um código semelhante ao abaixo.
else
{
string ipAddressWithoutPort = Client.TcpEndpoint.Split(':').First();
IPAddressAttackMgr.AddIPAddress(IPAddress.Parse(ipAddressWithoutPort));
s_log.Error($"O pacote de código '{packet.Code}' não tem um jogador. TcpEndpoint: " +
$"{Client.TcpEndpoint} - {ipAddressWithoutPort}.");
}
Autores
- KempDec - Mantedora do projeto de código aberto.
- Vinícius Lima - Desenvolvedor .NET C#.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0-windows7.0 is compatible. net7.0-windows was computed. net8.0-windows was computed. net9.0-windows was computed. |
-
net6.0-windows7.0
- KempDec.NetWindowsFirewall-Net6 (>= 1.3.2)
- log4net (>= 2.0.15)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 170 | 3/6/2025 |