Os Melhores
Conteúdo popular
Mostrando conteúdo com a maior reputação em 04/15/24 in todas as áreas
-
Extrator de PCK foi postado na ragezone por Luka o criador da ferramenta é Jolan que deu consentimento, muito boa essa ferramenta já usei bastante. PCK Module.rar2 pontos
-
2 pontos
-
2 pontos
-
AUIEditor2.1 Como usar: Locale Emulator: Abra o programa "Locale Emulator" executando o arquivo chamado LEGUI.exe. Altere a localização para Chinês Simplificado. Não se esqueça de salvar as configurações depois de fazer a mudança. Utilize um extractor de PCK para extrair os arquivos do tipo "interface.pck , surface.pck ,config.pck , Coloque os arquivos extraídos nas pastas correspondentes. "configs.pck".= "configs" . Agora, abra o AUIEditor2. Basta clicar com o botão direito do mouse no arquivo executável e selecionar a opção Locale Emulator selecionar a opção para abrir. O meu Chinês Simplificado. esta em (wwww) Animações GFX (Opcional gfx.pck , shaders.pck" para carregar as animações . Coloque os arquivos extraídos nas pastas correspondentes. "gfx.pck".= "gfx". Locale.Emulator.zipAUIEditor (interfaces).rar configs.rar Atalho para AUIEditor2 bat para AUIEditor2+Locale.Emulator .cmd >>1.00<< 2024-03-23 23-01-52.mp41 ponto
-
Boa tarde, estou trazendo hoje aqui um pacote contendo 50 mapas. para você usar como você quiser, use a sua imaginação… todos os mapas contém as duas partes. tanto cliente-side/server-side. não postei fotos por conta de ser 50 mapas. mas há tempos ele roda na mão de um pessoal, porém ate hoje não disponibilizaram então resolvi trazer para vocês! Link de Download: [Conteúdo Oculto] Link de Download opção 2 : [Conteúdo Oculto] Quem for testando o mapa e quiser postar fotos no comentário será otimo.1 ponto
-
1 ponto
-
Npcgen Data editor by Luka O Editor de NPCGen teve uma atualização Adicionado Offsets para 1.7.2 x64 e 1.7.6 x64 Agora o editor tem suporte a API do RAE, para funcionar corretamente, deve estar com o Rody Angelica Editor aberto com o elements carregado. NetFramework 4.8.1 Adicionado o projeto HelperProcess, devido a API do RAE somente estar disponível em x86, para que consiga pegar coordenadas de endereços x64 do elementclient. Compile em x86 para funcionar corretamente com a RAE API. Source Code: [Conteúdo Oculto] Screenshots: codigo fonte: [Conteúdo Oculto] binarios: [Conteúdo Oculto]/releases NpcGen v174 by Luka updated by Haly.rar NpcGen.v176.updated.by.Haly.rar1 ponto
-
Editor fácil de usar. Como começar com a interface: 1) Extrair os arquivos e interfaces.pck surfaces.pck 2) Definir no editor onde o diretório raiz dos arquivos descompactados 3) Editar elementos da interface UIEdit (pdev).rar1 ponto
-
Estou deixando todos os instaladores num unico link, é só escolher qual você precisa e baixar. Conforme eu encontrar mais instaladores eu adiciono na pasta. Todos os clients tem um print da tela inicial, em alguns deles tem o nome da expansão. ADM por favor fechar meus tópicos dos outros instaladores eu agradeço. Diferenças: Client aberto = você não tem como saber se tem arquivos editados. Instalador = client original [Conteúdo Oculto] Se alguém tiver algum instalador que não esteja listado, por favor me envie no privado que eu espelho ele aqui.1 ponto
-
1 ponto
-
Créditos @xDarK 1. **Acesso ao Servidor:** - Use um cliente SSH ou FTP para se conectar ao servidor. 2. **Localize o Arquivo:** - Navegue até o diretório `/home/gamed`. 3. **Abra o Arquivo `script.lua`:** - Use um editor de texto, como Nano ou Vim: ``` nano /home/gamed/script.lua ``` 4. **Adicione o Código:** - Cole o seguinte código acima da linha `mylogfunc("LUA_OTHER_EDITOR: --OK-- ")`: --Refino Máximo local refino_max = 12 --Refino 1 Click basta colocar o mesmo valor do refino_max no refino por_click local refino_por_click = 1 -- Valor permitido 1 á 12 --Não editar abaixo disso if refino_max < refino_por_click then refino_por_click = refino_max end CharTable(0x08292348, refino_max -1) IntTable(0x0829259A, refino_por_click) IntTable(0x082925CC, refino_por_click) 5. **Salve e Feche o Arquivo:** - No Nano, pressione `Ctrl + O` para salvar e `Ctrl + X` para sair. ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Tempo de duração itens no chão IntTable(0x811A32E,300) -- Tempo de duração do drop em segundos ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Hiper Exaustão de Exp IntTable(0x08208DBD,3686400) --Tempo em segundos IntTable(0x08208DC9,3686400) --Tempo em segundos ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Hyper ativação CharTable(0x08209358,10)--Valor 10 e Padrão ativação do hyper so muda valor CharTable(0x08208C05,9)--Valor 9 e Padrão ativação do hyper so muda valor sempre -1 ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ soltar a daimon -- Tempo para soltar a daimon IntTable(0x82DFE97,86400) -- Editar esse valor de 86400 para o tempo desejado ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ Adicionado para enviar mensagem de sistema atualizado colar diretamente acima da linha mylogfunc("EventOnReloadScript: --OK-- ") no arquivo script.lua: game__BroadcastChat(-1, string.char(9), 'Sistema Atualizado')1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Preço - Mensalidade: R$ 100 - Venda: a negociar Algumas funções interessantes que o painel possui: - Visualizador de inventário dos personagens e informações dos itens. - Envio de emblema de clã com update 100% automático para launcher do alex ou cpw. - Sistema de metas de donate, com recompensa em itens/cash, podendo ser de resgate único ou diário. - Missão diária (compartilhe e ganhe) - Full meridiano - Full títulos - Gerenciador para controlar os parâmetros do servidor (sutra, proibir correio e etc.) - Enviar item em massa - Enviar cash em massa - Rastrear item em todos os personagens do jogo (mochila, banqueiro e equipamentos) de forma otimizada - Ver personagens online - Ativar/Desativar trigger em qualquer mapa - Listar/ver todos os personagens do servidor - Listar/ver todas as guilds do servidor com contagem de ips únicos - Resgate do item de lance para TW apenas para guilds predefinidas - Resgate de Contato Imediato e Chamado Urgente para Marechais de clã, semanalmente - Remover senha do banqueiro com confirmação de email - Teletransportar personagem (várias cidades disponíveis) - Proibir criação de contas com alias ([email protected]) - Limitar provedores de email permitidos ao criar conta - Permitir jogadores verem logs dos seus próprios personagens ingame pelo painel - Sistema de pré registro - Proibir login de jogadores no painel com aviso. (útil para quando o servidor ainda está para lançar) - Sistema de permissões para administradores do painel - Adicionar GM a uma conta podendo escolher suas permissões - Códigos promocionais com sistema de cashback para o dono - Permitir o usuário aplicar 2 cupons em uma única doação (as porcentagens somam) - Escolher entre doação por pacotes pré definidos ou preço definido pelo usuário - Gráfico de doações mensais - Gráfico de doações mensais individual para cada usuário - Sistema de Pincode - Preencher dados do item via XML do RAE ao enviar itens - Buscar contas por IP de login1 ponto
-
1 ponto
-
Ativador meridiano completo dentro do game digitando !meridiano no chat global :D [Conteúdo Oculto]1 ponto
-
#!/bin/bash # Define as variaveis de cores RED='\e[91m' GREEN='\e[92m' YELLOW='\e[93m' RESET='\e[0m' # Atualiza o sistema echo -e "${YELLOW}Atualizando o sistema...${RESET}" sudo apt-get update -y >/dev/null 2>&1 echo -e "${GREEN}Sistema atualizado.${RESET}" # Verifica se o sistema está executando Ubuntu 20.04 if [ "$(lsb_release -rs)" != "20.04" ]; then echo -e "${RED}Este script so pode ser executado no Ubuntu 20.04.${RESET}" exit 1 fi # Função para verificar se um pacote está instalado package_installed() { dpkg -s "$1" >/dev/null 2>&1 && return 0 || return 1 } # Função para instalar um pacote install_package() { if dpkg --print-architecture | grep -q "i386"; then PACKAGE="$1:i386" else PACKAGE="$1" fi if package_installed "$PACKAGE"; then echo -e "${GREEN}O pacote $PACKAGE ja esta instalado.${RESET}" else echo -e "${YELLOW}Instalando o pacote $PACKAGE...${RESET}" if sudo apt-get install -y "$PACKAGE" >/dev/null 2>&1; then echo -e "${GREEN}O pacote $PACKAGE foi instalado com sucesso.${RESET}" else echo -e "${RED}Falha ao instalar o pacote $PACKAGE.${RESET}" exit 1 fi fi } # Função para configurar mariadb e criar um novo usuario configure_mariadb() { echo -e "${YELLOW}Configurando MariaDB...${RESET}" # Gera uma senha aleatoria PASSWORD=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 13 ; echo '') # Executa comandos SQL sudo mysql -u root <<-EOF >/dev/null 2>&1 CREATE USER 'admin'@'%' IDENTIFIED BY '$PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%'; FLUSH PRIVILEGES; EOF echo -e "${GREEN}Usuario 'admin' criado.${RESET}" # Salva o usuario e senha em um arquivo na pasta raiz do linux echo "Usuario: admin" | sudo tee /root/mariadb_admin_credentials.txt >/dev/null 2>&1 echo "Senha: $PASSWORD" | sudo tee -a /root/mariadb_admin_credentials.txt >/dev/null 2>&1 echo -e "${GREEN}O usuario e a senha foram salvos em /root/mariadb_admin_credentials.txt.${RESET}" # Configura mariadb para permitir conexoes remotas echo "bind-address = 0.0.0.0" | sudo tee -a /etc/mysql/mariadb.conf.d/50-server.cnf >/dev/null 2>&1 sudo service mariadb restart echo -e "${GREEN}MariaDB configurado para permitir conexoes remotas.${RESET}" } # Lista de pacotes a serem instalados system_tools=("htop" "curl" "wget" "ipset" "net-tools" "tzdata" "ntpdate") development=("make" "gcc" "g++" "libssl-dev" "libcrypto++-dev" "libpcre3" "libpcre3-dev" "libtesseract-dev" "libx11-dev" "gcc-multilib" "libc6-dev" "build-essential" "gcc-multilib" "g++-multilib" "libtemplate-plugin-xml-perl" "libxml2-dev" "libxml2") java_mono=("openjdk-11-jre" "mono-complete") archive_tools=("p7zip-full") libraries=("libpcap-dev") database=("mariadb-server" "mariadb-client") php_apache=("apache2" "php7.4" "php-cli" "php-common" "php-curl" "php-gd" "php-mbstring" "php-mysql" "php-xml" "php-xmlrpc" "php-soap" "php-intl" "php-zip" "php-bcmath" "php-json" "php-tidy") # Instala ferramentas do sistema for package in "${system_tools[@]}"; do install_package "$package" done # Instala ferramentas de desenvolvimento for package in "${development[@]}"; do install_package "$package" done # Instala Java e Mono for package in "${java_mono[@]}"; do install_package "$package" done # Instala ferramentas de arquivo for package in "${archive_tools[@]}"; do install_package "$package" done # Instala bibliotecas for package in "${libraries[@]}"; do install_package "$package" done # Instala banco de dados for package in "${database[@]}"; do install_package "$package" done # Instala PHP e Apache for package in "${php_apache[@]}"; do install_package "$package" done # Configura MariaDB e cria um novo usuario configure_mariadb service apache2 restart echo -e "${GREEN}Instalacao concluida!${RESET}" install-ubuntu20.04.sh1 ponto
-
Bom, como devem saber, esses arquivos ai já vazaram tem um bom tempo e até hoje eu vejo gente querendo tirar vantagem e cobrar por esses arquivos ou para alterar algo neles. Tudo que você vai precisar substituir dos arquivos da Server Side: GS e GLINKD. Tudo que você vai precisar substituir dos arquivos do Client Side: elementclient.exe e adicionar o arquivo 155.dll na pasta element. Detalhes importantes ! Para funcionamento dos atalhos no inventário é necessário que você puxe os ícones e chame as funções na sua interfaces.pck ou se preferir pode usar uma interfaces que já tenha isso, todas são a mesma coisa só tem alterações visuais em algumas. Para funcionamento da lojinha OFF, é necessário adicionar o botão também na interfaces.pck com a função e um item no inventário com o ID: 65532. Possui mais algumas funções também como: Ganhar chi ao meditar, reset de DG pelo botão, nick colorido entre outros ai, faz tempo que não uso esses arquivos então não me recordo bem de todas as funções que tem. No mais é isso, caso tenha alguma dúvida ou eu tenha esquecido de algo, me corrige ai ou me chama ai no pv ou no discord: ScroL#6530 FILES 155 COM ATALHOS E MAIS.rar1 ponto
-
1 ponto
-
INTERFACE ESMERALDA 1.5.5 EDITADA, CONTEM SOMENTE 3 RAÇAS NA CRIAÇÃO . INTERFACE ESMERALDA SEM CLASSES.zip1 ponto
-
1 ponto
-
1 ponto
-
Tchow! Há algum tempo, postei este script em um canal que eu tinha no YouTube. No entanto, perdi esse canal e agora vou disponibilizá-lo aqui para aqueles que estão começando e ainda têm dificuldades na configuração do CentOS 7. O script realiza a instalação dos pacotes necessários para o funcionamento do PWServer e do CPW. Além disso, ele gera aleatoriamente o nome da pasta modificada do phpMyAdmin e também cria automaticamente a senha do MySQL, além de desativar o SELinux. O objetivo do script é deixar a máquina, seja ela uma VPS, dedicado ou uma VirtualBox, pronta para receber o servidor do jogo, bastando apenas colocar o PWServer, as libs e importar o banco de dados “pw” via phpMyAdmin. Como executar o script? Coloque-o na pasta home, dê permissão 0777 e, em seguida, execute o seguinte comando pelo PuTTY: "./Install-centos7.sh". Pronto, agora é só aguardar a conclusão e, no final, você verá uma tela semelhante à que está nesse link : Video aula Install-centos7.sh1 ponto
-
pw-web originalmente feito por tomirons/hulu que foi lançado no ragezone, está abandonado no momento. alguns meses atrás, ele encontrou um erro no qual você não pode instalá-lo devido à indisponibilidade de um pacote, então decidi corrigi-lo para torná-lo utilizável novamente. As instruções sobre como instalar o painel estão no github. [Conteúdo Oculto] pw-web-master.zip1 ponto
-
Boa tarde galera, hj eu vim contribuir no fórum. Ultimamente estou estudando bastante as coisinhas do servidor, e ontem peguei pra arrumar o inventário com atalhos que postaram aqui no fórum. Ele ficou assim: Pra colocar ele basta ter os arquivos que colocaram aqui no forum. Depois baixe: E por fim, coloquei eles no seu interfaces.pck Pronto. Creditos : @Fulano (Que me ajudou a entender como isso funciona). @scrol (Por disponibilizar os arquivos com atalhos no forum) inventory_f.xml inventory_m.xml1 ponto
-
1 ponto
-
Baixei pra dar uma olhada e sinceramente tem bastante coisa errada. Primeiro: não está enviando gold, está só gerando log Segundo: $OnlineGM ao invés de retornar apenas o ID do personagem, está retornando também o “chl”. Terceiro: mesmo que a função de enviar gold estivesse correta, não funcionaria pois precisa do ID da conta, e não do personagem.. Quarto: Mesmo que a pessoa configure a quantidade de gold enviada na config.php, o arquivo pw_chatbonus.php não está puxando da config.php, então tem que alterar lá também. Correções básicas, mas que faz com que o script não funcione. Tirando os erros básicos, parabéns por disponibilizar o script. Dá pra fazer bastante coisa, inclusive adicionar envio de correio, deixar pra usar apenas 1x por conta, etc. Segue o arquivo pw_chatbonus.php corrigido: pw_chatbonus.php1 ponto
-
1 ponto
-
1 ponto
-
Eu coloquei no meu servidor de pw pq só tinha visto em um servidor no ano passado, o servidor fechou e nenhum outro servidor estava utilizando, mas já que vai lançar um servidor que aparentemente gostou do estilo, vou deixar livre aqui para que mais pessoas possam utilizar. Créditos iniciais ao @scrol pq peguei do servidor que ele tinha no ano passado. O uso é intuitivo, o que ta dentro de interfaces tu coloca na interfaces.pck, o que ta dentro de surfaces tu coloca em surfaces.pck fashion.rar1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Segue confirmação de quest editado pela a minha pessoa, o padrão do jogo só exibe até 9 opções. Corrigido também a posição do nome “Informações da Missão”. Já este que eu editei exibe até 21 opções para confirmação de quest. substituir o questdone.xml no interfaces.pck Comparativo entre o padrão e o editado.1 ponto
-
no pwadmin: pwserver/pwadmin/pwadmin.conf shellAdd = LD_PRELOAD=libtask.so %s1 ponto
-
offsets.txt Offsets com algumas a mais que tenho por aqui (Adicionei as que tem no seu arquivo)1 ponto
-
1 ponto
-
Esse sistema foi feito pelo Leo B2host é só criar um cron em php e seja feliz. <?php /** ** Programado por Leandro Hermes - [Conteúdo Oculto] **/ $config = array ( // Configs 'host' => '127.0.0.1', // Host 'port' => '29300', // Port // Chat ID: [0] - Common; [1] - World; [2] - Group; [3] - Faction; // Chat ID: [4] - Private; [6] - Info; [7] - TRADE; [9] - System; [10]- NoChat; [12] - Horn 'chatid1' => '9', // Chat ID #1 // Role ID in Message to Chat 'roleid1' => '', // Role ID #1 | You can empty ID | ID -1 = : // Message to Chat 'message1' => "mensagem que sera falado no chat GM" , // Message #1 | No Message - Do not go ); function socketsend($data, $ip,$port) { if(!@$sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) {throw new Exception("Erro ao conectar no servidor do pw"); exit();} socket_connect($sock,$ip,$port); socket_set_block($sock); socket_send($sock, $data, 8192, 0); socket_recv($sock, $buf, 8192, 0); socket_set_nonblock($sock); socket_close($sock); return $buf; } function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("i", $data)); } function PackString($data) { $data = iconv("UTF-8", "UTF-16LE", $data); return cuint(strlen($data)).$data; } function PackOctet($data) { $data = pack("H*", $data); return cuint(strlen($data)).$data; } function gameChat($user,$msg,$chan,$host,$port) { $System = pack("C*",$chan); $Emotion = pack("C*",0); $Char = pack("N*",$user); $Message = PackString($msg); $data = PackOctet(''); $Packet = $System.$Emotion.$Char.$Message.$data; $Data = cuint(120).cuint(strlen($Packet)).$Packet; socketsend($Data, $host,$port); } // comment out what you dont use gameChat($config['roleid1'],$config['message1'],$config['chatid1'],$config['host'], $config['port']); ?> avisoBroadcast-unico.php1 ponto
-
1 ponto
-
1 ponto
-
1 ponto
-
Win_Character (Exemplo): <LABEL Name="Txt_Value1" x="185" y="329"> <!-- Nome do campo --> <Text String="Missões" FontName="方正细黑一简体" FontSize="10" Color="255,203,74,255" OutlineColor="0,0,0,0" TextUpperColor="0,0,0,0" TextLowerColor="0,0,0,0"/> </LABEL> <LABEL Name="Lab_Value1" x="258" y="329"> <!-- O segredo está aqui, adicionar valores até o final do foreach --> <Text String="0000" FontName="方正细黑一简体" FontSize="10" OutlineColor="0,0,0,0" TextUpperColor="0,0,0,0" TextLowerColor="0,0,0,0"/> </LABEL> Win_Inventory (Exemplo): <STILLIMAGEBUTTON Name="btn_asm_bank" x="125" y="250" Width="34" Height="25" Command="asm_bank"> <!-- Você solicita por aqui o comando asm_ --> <Hint String="^ffcb4aAbrir o sistema de armazém"/> <Text FontName="方正细黑一简体" FontSize="12"/> <Resource> <FrameUpImage FileName="icon.bmp"/> <FrameDownImage FileName="icon.bmp"/> <FrameOnHoverImage FileName="icon.bmp"/> </Resource> </STILLIMAGEBUTTON>1 ponto
-
Funcionou com esses: Comando pra mostrar as regras: iptables -L --line-numbers Comando para remover as regras: iptables -D INPUT e coloque o numero da regra exemplo: iptables -D INPUT 201 ponto
-
@GabrielGG vou deixa o link abaixo da interfaces , surfaces com as parada no inventario e o botão na lojinha offline [Conteúdo Oculto] Qualquer coisa só chama no Discord: Notoryu#86591 ponto
-
@GabrielGG só adicionar esse arquivo abaixo no elements.data e deixar ele o item no inventario Dados de Material da Tarefa, Item 65532.aeitems1 ponto
-
#!/usr/bin/perl use strict; use warnings; use POSIX ":sys_wait_h"; use Socket; use IO::Handle; my $limite_conexoes = 50; my $tempo_bloqueio = 4 * 3600; my %conexoes_por_ip; my $arquivo_ban = "ban.txt"; system("iptables -F"); system("iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT"); system("iptables -A INPUT -j DROP"); system("iptables -A INPUT -p tcp --syn -m connlimit --connlimit-above $limite_conexoes -j REJECT --reject-with tcp-reset"); my $socket; socket($socket, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or die ": $!"; setsockopt($socket, SOL_SOCKET, SO_REUSEADDR, 1) or die ": $!"; my $endereco = sockaddr_in(0, INADDR_ANY); bind($socket, $endereco) or die ": $!"; listen($socket, SOMAXCONN) or die ": $!"; while (1) { my $cliente = accept(NOVACONEXAO, $socket); my ($porta_cliente, $endereco_cliente) = sockaddr_in($cliente); my $ip_cliente = inet_ntoa($endereco_cliente); $conexoes_por_ip{$ip_cliente}++; if ($conexoes_por_ip{$ip_cliente} > $limite_conexoes) { bloquear_ip($ip_cliente); } print "Conexão de $ip_cliente na porta $porta_cliente aceita.\n"; close(NOVACONEXAO); } close($socket); sub bloquear_ip { my $ip = shift; open(my $ban_fh, '>>', $arquivo_ban) or die "Não foi possível abrir o arquivo $arquivo_ban: $!"; print $ban_fh "$ip\n"; close($ban_fh); system("iptables -A INPUT -s $ip -j DROP"); print "IP $ip bloqueado por $tempo_bloqueio segundos.\n"; sleep($tempo_bloqueio); system("iptables -D INPUT -s $ip -j DROP"); print "IP $ip desbloqueado.\n"; } DDOS Simulado com a ferramenta:Unicorn is a Win32 UDP flooding/DoS (Denial of Service)0 pontos
-
0 pontos
-
0 pontos