Ir para conteúdo
Facebook Whatsapp Twitter Youtube

Os Melhores

Conteúdo popular

Mostrando conteúdo com a maior reputação em 01/26/25 in todas as áreas

  1. Boa tarde, estou limpando meu computador e vou anexar algumas coisas interessantes que fui fazendo ao longo dos anos para facilitar meu trabalho de desenvolvimento. Essa ferramenta eu usei na minha versão 1.5.5 para trabalhar com mapas. Complementando o tutorial: Além de você conseguir o tamanho correto dos mapas base_region e local_region, você conseguirá unificar os minimaps para usar em ferramentas como: editor de region, precinct, path, npcgen e afins. A ferramenta transforma isso: Em isso: A ferramenta é em python, e não fiz uma interface, você precisa ter o python instalado em seu PC (só dar um google). E instalar a lib pillow: Use alguma dessas opções: Depois basta configurar: Na própria imagem tem as descrilções. Se você perceber cada minimapa (surfaces/minimaps) tem 256x256 pixels, Para saber o tamanho do mapa, você precisará multiplicar 256 pela quantidade de imagens até a borda do mapa, isso você poderá fazer visualmente com base na imagem do ingame. No meu caso no a106 foram 8 horizontal, e 8 na vertical, então ficou 8x256² = 2048x2048, mas se for 512x512 você coloca ali, se for 1024x1024.. assim por diante. Salve e dê o comando usando CMD do windows: ou Pronto, sua imagem estará pronta, dai você conseguirá usar nos programas que informei acima. Basta você configurar como o exemplo que dei acima no arquivo de configuração xml. Nota que o meu mapa está -2000, porque mapas acima de 1024 eu costumo usar 1000, 2000 e afins, para tirar um pouco a borda do mapa. Mas você pode sim usar -2048, porque é o limite do mapa. Baixar a ferramenta: unify.py
    5 pontos
  2. 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.rar
    2 pontos
  3. Download: [Conteúdo Oculto] Para abrir o jogo sem precisar do launcher: elementclient.zip Post original (ragezone) Vídeo meu falando sobre:
    2 pontos
  4. "Fala, gurizada! Tudo certo? 😄tradutor.exetradutor.exe Quero compartilhar minha contribuição com a comunidade! Sabemos que o Google Tradutor e outros sistemas possuem limites de caracteres para traduzir determinados arquivos, o que pode ser bem frustrante em algumas situações. Pensando nisso, desenvolvi um sisteminha básico em Python que resolve esse problema. Com ele, você pode abrir arquivos de texto em qualquer idioma, e o programa traduzirá todo o conteúdo, sem restrições de tamanho. É super útil, não apenas para Perfect World, mas também para outras finalidades, como decifrar longas linhas de erros em logs, entre outras aplicações. Espero que seja útil para vocês!" Este sistema traduz arquivos de texto no formato .txt ( EM BREVE DISPONIBILIZAREI UMA ATUALIZAÇÃO PARA ARQUIVOS EM OUTROS FORMATOS) Sistema atualizado, com suporte de leitura em outros formatos. HTML, .LOG, e outros. LINK:[Conteúdo Oculto]
    2 pontos
  5. somente trocar os arquivos server e client, lembrando que o dds vc encontra na surface não tem segredo, postei isso pq não vi isso aqui e quero agregar algo ao grupo é isso padawns ! nw 2 nações 1.5.5.rar
    2 pontos
  6. Se seu RAE Editor de Elements não abre por nada, utilize este link: RAE_2023.zip
    1 ponto
  7. Fala guys, esses plugins estão perdidos por ai, muito difícil achar até em outros fóruns vou postar pra vocês :D Angelica2_Plugins_3ds_Max.rar
    1 ponto
  8. 1 ponto
  9. Ascensão Sombria.psd Bônus de Pré-Registro.psd
    1 ponto
  10. 1 ponto
  11. video da instalação do .ova para servidor de pw 155 no ubuntu.. vai com script lua e sistema de logs.
    1 ponto
  12. O iweb é o programa nativo para administrar o servidor, com o tempo foi substituido pelo painel do Alex. Com a source você pode consertar e implementar novas funções. Exige alto conhecimento de java para fazer correções ou implementações. ##iweb ## = representa as letras usadas para identificar o jogo. [Conteúdo Oculto]
    1 ponto
  13. Bom galera, estou compartilhando os files que nosso querido @miguelzera disponibilizou um tempo atrás. Arquivo 1 – script de instalação CentOS7 Arquivo 2 – PWServer, Cliente [email protected], libs e SQL Arquivo 3 – Tutorial CPW Arquivo 4 – Tutorial iptables Vídeo instalando pacotes centOS7 Créditos @miguelzera Assim que tiver tempo posto um vídeo. Imagem do vbox pronta, só importar para seu vbox. Acesso ao phpmyadmin – [Conteúdo Oculto] Senhas 123456789 Contem registro básico [Conteúdo Oculto] Download ova Download Cliente
    1 ponto
  14. 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.rar
    1 ponto
  15. NpcGen Editor by Luka 1.2.6~1.7.6.rar
    1 ponto
  16. Olá bom dia a todos, Eu pedi autorização ao Segment para trazer essa ferramenta pra vocês, principalmente para quem está utilizando a versão 1.5.5 que foi construída por ele. Recomendado para quem tem o mínimo possível de conhecimento com programação, pois, qualquer alteração indevida, ela pode não funcionar mais, então, antes de qualquer alteração salve sempre um backup da ultima versão funcional. E principalmente utilize para gerar ainda mais conhecimento, pois esse é o intuito do fórum. Eu não tenho créditos nenhum por essa ferramenta, pois quando foi construída eu não conhecia o Segment ainda. Todos os créditos são absolutamente para ele, inclusive por deixar compartilhar isso com vocês. Tlgram: @segment32 (Ele aluga a versão 1.6.2, se quiser uma versão mais atual) Eu tenho muita coisa ainda, mas vamos com calma =) Com essa ferramenta e muita vontade, você consegue melhorar e muito seu servidor de Perfect World. Então, façam bom uso da ferramenta. Talvez em breve eu traga o código de algumas deamons para ampliar ainda mais. Só queria pedir para que não compartilhassem essa ferramenta fora do fórum suportegm, pois foi autorizado a trazer pra vocês no Brasil, pra que eu possa continuar trazendo conteúdos (não só dele, mas meu também,). Façam bom uso: 155dl source.rar
    1 ponto
  17. Primeira versão do nick colorido 1.5.5 que usei no pw tiger 2018~2019 disponibilizo sem edições, confira a data .data 155nick.rar
    1 ponto
  18. import Foundation import Security // 生成RSA密钥对 func generateRSAKeyPair() throws -> SecKey { let parameters: [String: Any] = [ kSecAttrKeyType as String: kSecAttrKeyTypeRSA, kSecAttrKeySizeInBits as String: 2048 ] var error: Unmanaged<CFError>? guard let privateKey = SecKeyCreateRandomKey(parameters as CFDictionary, &error) else { throw error!.takeRetainedValue() as Error } return privateKey } // 使用公钥RSA加密文件 func encryptFile(withPublicKey publicKey: SecKey, inputFile: URL, outputFile: URL) throws { let inputData = try Data(contentsOf: inputFile) let encryptedData = SecKeyCreateEncryptedData(publicKey, .rsaEncryptionOAEPSHA512, inputData as CFData, nil)! try encryptedData.write(to: outputFile) } // 使用私钥RSA解密文件 func decryptFile(withPrivateKey privateKey: SecKey, inputFile: URL, outputFile: URL) throws { let encryptedData = try Data(contentsOf: inputFile) let decryptedData = SecKeyCreateDecryptedData(privateKey, .rsaEncryptionOAEPSHA512, encryptedData as CFData, nil)! try decryptedData.write(to: outputFile) } // 生成RSA密钥对 let privateKey = try generateRSAKeyPair() let publicKey = SecKeyCopyPublicKey(privateKey)! // 指定输入和输出文件路径 let inputURL = URL(fileURLWithPath: "elements.data") let encryptedOutputURL = URL(fileURLWithPath: "encrypted_elements.data") let decryptedOutputURL = URL(fileURLWithPath: "decrypted_elements.data") // 使用公钥RSA加密文件 do { try encryptFile(withPublicKey: publicKey, inputFile: inputURL, outputFile: encryptedOutputURL) print("文件已成功加密!") } catch { print("加密文件时发生错误:\(error.localizedDescription)") } // 使用私钥RSA解密文件 do { try decryptFile(withPrivateKey: privateKey, inputFile: encryptedOutputURL, outputFile: decryptedOutputURL) print("文件已成功解密!") } catch { print("解密文件时发生错误:\(error.localizedDescription)") }
    1 ponto
  19. WinPCK v1.33.0.3 – Atualizado ChangeLog: Leitura de arquivos .cup, o WinPCK fará a decodificação do cup. Instalação no registro do Windows com .cup Leitura de arquivos .pck com .pkx maiores que 2GB Leitura de arquivos .pck com .pkx1 Tradução para o inglês Atualizado para C++20 Atualizado para o Visual Studio 2022 Codigo Fonte: [Conteúdo Oculto] Binarios: [Conteúdo Oculto]/releases v1.33.0.3 - Release.rar v1.33.0.3 - Release-static.rar
    1 ponto
  20. 1 ponto
  21. 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
  22. Recentemente um usuário do grupo de devs com nick de "Alien" disponibilizou algumas alterações que ele fez em sua src gratuitamente. Então eu estou vindo aqui divulga-las e disponibilizar o arquivo que ele nos enviou pois são simplesmente muito boas! Ps: precisa saber o que está fazendo para poder implementar, eu precisei criar alguns getters para o código funcionar. Prints da minha implementação abaixo: edits.txt
    1 ponto
  23. As vezes preciso e muita das vezes me pedem, segue uma database limpa pw.sql.zip
    1 ponto
  24. [Conteúdo Oculto] Créditos: Matheus Araujo
    1 ponto
  25. Olá a todos, estou buscando trazer tutoriais de coisas mais complexas, para que desenvolvedores que estão começando a pouco tempo, possa crescer ainda mais seu conhecimento. Vim trazer algo que poucos tem conhecimento e também tiveram curiosidade de saber, sobre mapas e sobre fixação de mapas. Quando eu construi o New History em 2018, eu customizei ele ao máximo e com isso eu aprendi bastante a trabalhar com mapas e me foi despertado muita curiosidade sobre. Hoje trabalhando com as novas versões, eu tive que adicionar na minha build mais de 25 mapas e vim ensinar vocês como adicionar novos mapas no servidor da forma correta (gs.conf). Lembrando, que todo o sistema de exportação e downgrade não precisa ser ensinado, pois há uma ferramenta perfeita para esse trabalho do Steve Langley (Skype: narrowengineer), o AngelicaMapEditor. Só deixando um adendo, a ferramenta não gera npcgen.data, path.sev e arquivos de configuração dos mapas (Sem esses, os mapas não ligam), então recomendo antes de tudo, clonar um existente (Limpo) e adicionar os novos arquivos exportados. Agora vamos para o que interessa! Vou usar como exemplo o mapa:a101 (is101). Você precisará abrir o arquivo instance.txt (element/configs.pck/instance.txt) e gs.conf (PWServer/gamed/gs.conf) Estando com os dois abertos, você irá pesquisar no instance.txt: "a101" Estará mais ou menos assim: ////////////////////////////////////////////////////////////// "北陆-蜃渊雪国遗址" { 91 "a101" // path "loading/a101" // loading background 2,2 // row, column 0 "r0_0-c1_1-l0.cfg" {} 0 } ////////////////////////////////////////////////////////////// Somente disso que precisaremos. Informações que iremos precisar para o servidor: 91 = ID do mapa (tag) “a101” = nome do mapa 2,2 = Row / Colum Sempre bom lembrar que esses valores podem alterar dependendo de qual mapa você irá utilizar, então não se apegue a isso. Agora vamos para o gs.conf Ensinamento básico, se você reparar: São 2 tipos de mapas: world_servers e instance_servers. O que você precisa definir primeiro é isso, se será um mapa aberto (world_servers), ou se será uma dungeon ( quando desmonta o grupo todo mundo é expulso e ela reseta) instance_servers. Bem, escolhendo isso, você irá definir como vamos solicitar esse mapa depois do último mapa definido em world_servers ou instance_servers, ficando assim: world_servers = gs01;/*imagine vários mapas definidos*/;is101; Então você percebeu que vamos chamar nosso mapa de is101, mas você pode colocar qualquer nome (nessa etapa e nas demais definições), exemplos: zd411, ab587, z57… Como você é inteligente e já percebeu, eu defini meu mapa como um mapa aberto, ou seja, um world_server. Agora você vai terminar de configurar seu mapa, no final do arquivo gs.conf. Estarei explicando logo após o código. ;----------------------------------------------------------------------------------------------------- [World_is101] ;-------- Se o seu mapa é um world_servers World_Nome, caso contrário Instance_Nome ----- index = 126 tag = 91 base_path = a101/ limit = allow-root; grid = {80,80,25,-1000.0,-1000.0} base_region = {-1024.0,-1024.0} , {1024,1024.0} local_region = {-1024.0,-1024.0} , {1024,1024.0} cid = 0,2,13 [Terrain_is101] ;-------- Mude o Nome ----- szMapPath = map nAreaWidth = 512 nAreaHeight = 512 nNumAreas = 4 ;----- Normalmente é uma soma de Cols + Rows (Salvo exceções) nNumCols = 2 ;----- Numero de Columns no instance.txt nNumRows = 2 ;----- Numero de Rows no instance.txt vGridSize = 2.0f vHeightMin = 0.0f vHeightMax = 800.0f [MsgReceiverTCP_is101] ;-------- Mude o Nome ----- type = tcp listen_addr = INSTANCE101:12009 ;-------- Caso seja localhost, declare, mas lembre sempre de alterar a porta por exemplo 12010,12011.. ----- so_sndbuf = 16384 so_rcvbuf = 16384 tcp_nodelay = 1 listen_backlog = 10 [MsgReceiverUNIX_is101] ;-------- Mude o Nome ----- type = unix listen_addr = /tmp/gssock_is101 ;-------- Mude o Nome ----- so_sndbuf = 16384 so_rcvbuf = 16384 listen_backlog = 10 ;----------------------------------------------------------------------------------------------------- Bem, essa é a configuração do mapa a101. Tudo dependerá do tamanho do row e da column que pegamos na instance.txt Primeiro de tudo, você terá que adicionar um Index, lembrando, esse valor não pode ser igual outro mapa existente (dará conflito e os dois serão desligados), então use um valor depois do último mapa configurado, lembre-se também, que esse valor não pode passar de 128 (na 1.5.5), caso contrário, os monstros e npcs afundam no mapa. ( Usei 126). você terá que adicionar o id (Tag) para o ID do mapa no instance.txt, se o ID tiver errado (diferente do client), você toma disconnect ao tentar acessar o mapa. ( Usei 91). base_path é o caminho onde está o seu mapa, nesse caso, você altera apenas o nome ( Usei a101/ ). limit são variáveis de liberações do mapa, segue os exemplos em um fórum externo: [Conteúdo Oculto] Grid ( Como definir o valor ): O valor de Grid dependerá do seu Row / Column. Exemplos: Se o mapa for 2 / 2: 80,80,25,-1000,-1000 Se o mapa for 3 / 3 120,120,25,-1500,-1500 Se o mapa for 4 / 4: 160,160,25,-2000.-2000 Os exemplos acima são bem explicativos, caso não entendeu, basicamente: Você vai multiplicar o valor de grid x 25, ele dará o resultado total, ou seja: 80 x 25 = 2000. 2000 / 2 = 1000, então nesse caso: -1000, -1000. 120 x 25 = 3000. 3000 / 2 = 1500, então nesse caso: -1500, -1500. Assim por diante. base_region e local_region, você consegue esse valor através do AngelicaMapEditor. Os demais valores importantes de serem configurados eu deixei comentário no exemplo acima. Em caso de dúvidas fique à vontade em perguntar.
    1 ponto
  26. Bom uso a todos! Version: Python 3.13 Install: python3 -m pip install scapy #Notes Update Rate Limiting 03-01-25 Traffic Anomaly Detection 03-01-25 Packet Filtering 03-01-25 Add SSH monitoring 28-12-24 Config.txt # Configurações gerais de monitoramento e proteção # Defina as portas para monitoramento (exemplo: HTTP, SSH) PORTS_TO_MONITOR=80,7777,2106 # Se o bloqueio por HWID deve ser ativado BLOCK_HWID=true # Limites de pacotes MAX_PACKET_SIZE=1024 MAX_CONNECTIONS=100 CONNECTION_TIME_WINDOW=10 # Em segundos # Limitações de pacotes TCP e UDP MAX_TCP_PACKETS=500 MAX_UDP_PACKETS=300 # Configurações para proteção SSH SSH_PORT=22 SSH_BLOCK_THRESHOLD=5 # Número de tentativas antes de bloquear SSH_BLOCK_DURATION=3600 # Duração do bloqueio (em segundos) SSH_LOCKDOWN_THRESHOLD=10 # Número de tentativas excessivas antes de lockdown SSH_LOCKDOWN_DURATION=86400 # Duração do lockdown (1 dia) SSH_IP_ATTEMPTS_WINDOW=60 # Janela de tempo (em segundos) para tentativas de login SSH # Limitação de taxa de pacotes para evitar DDoS RATE_LIMIT_THRESHOLD=1000 # Limite de pacotes por IP DDoS_DETECTION_WINDOW=10 # Janela de tempo para detectar DDoS DDoS_CONNECTION_THRESHOLD=500 # Limite de conexões simultâneas que aciona a detecção de DDoS main.py import os import time import hashlib import uuid import platform import json import re from scapy.all import sniff, TCP, UDP, IP from collections import defaultdict from threading import Thread # Словари для хранения данных трафика и блокировок traffic_data = defaultdict(lambda: {"timestamps": [], "tcp_count": 0, "udp_count": 0, "packet_count": 0}) blocked_hwids = set() # Множество заблокированных HWID blocked_ips = defaultdict(lambda: {"block_time": None, "attempts": 0, "block_duration": 0}) # Блокировка IP # Стандартные настройки config = { "MAX_PACKET_SIZE": 1024, "MAX_CONNECTIONS": 100, "CONNECTION_TIME_WINDOW": 10, "PORTS_TO_MONITOR": [80, 7777, 2106], "MAX_TCP_PACKETS": 500, "MAX_UDP_PACKETS": 300, "BLOCK_HWID": True, "SSH_PORT": 22, "SSH_BLOCK_THRESHOLD": 5, # Порог для неудачных попыток входа SSH "SSH_BLOCK_DURATION": 3600, # Длительность блокировки SSH "SSH_LOCKDOWN_THRESHOLD": 10, # Количество чрезмерных попыток перед блокировкой "SSH_LOCKDOWN_DURATION": 86400, # Длительность блокировки (1 день) "SSH_IP_ATTEMPTS_WINDOW": 60, # Временное окно для попыток входа SSH "RATE_LIMIT_THRESHOLD": 1000, # Порог пакетов на IP "DDoS_DETECTION_WINDOW": 10, # Временное окно для обнаружения DDoS "DDoS_CONNECTION_THRESHOLD": 500 # Порог одновременных подключений } LOG_FILE = "logs.json" # Функция для загрузки конфигурации из файла def load_config(): global config if not os.path.exists("config.txt"): print("[INFO] Файл config.txt не найден. Используются настройки по умолчанию.") return with open("config.txt", "r") as file: for line in file: line = line.strip() if not line or line.startswith("#"): continue key, value = line.split("=") key = key.strip() value = value.split("#")[0].strip() if key in ["PORTS_TO_MONITOR"]: config[key] = list(map(int, value.split(","))) elif key in ["BLOCK_HWID"]: config[key] = value.lower() == "true" elif key in ["SSH_PORT", "SSH_BLOCK_THRESHOLD", "SSH_BLOCK_DURATION", "MAX_PACKET_SIZE", "MAX_CONNECTIONS", "CONNECTION_TIME_WINDOW", "MAX_TCP_PACKETS", "MAX_UDP_PACKETS", "RATE_LIMIT_THRESHOLD", "DDoS_DETECTION_WINDOW", "DDoS_CONNECTION_THRESHOLD", "SSH_LOCKDOWN_THRESHOLD", "SSH_LOCKDOWN_DURATION", "SSH_IP_ATTEMPTS_WINDOW"]: config[key] = int(value) else: config[key] = value # Функция для записи статистики def log_statistics(ip, hwid, reason, data): log_entry = { "timestamp": time.strftime("%Y-%m-%d %H:%M:%S"), "ip": ip, "hwid": hwid, "reason": reason, "tcp_count": data["tcp_count"], "udp_count": data["udp_count"] } try: with open(LOG_FILE, "r+") as f: logs = json.load(f) logs.append(log_entry) f.seek(0) json.dump(logs, f, indent=4) except Exception as e: print(f"[ERROR] Ошибка при сохранении в лог: {e}") # Функция для генерации уникального HWID def get_hwid(): mac_address = get_mac_address() system_uuid = get_system_uuid() unique_string = f"{mac_address}-{system_uuid}-{platform.system()}" return hashlib.sha256(unique_string.encode()).hexdigest() # Функция для получения MAC-адреса def get_mac_address(): try: mac = uuid.getnode() mac_address = ':'.join(("%012X" % mac)[i:i + 2] for i in range(0, 12, 2)) return mac_address except Exception: return "UNKNOWN_MAC" # Функция для получения UUID системы def get_system_uuid(): try: if platform.system() == "Linux": with open('/sys/class/dmi/id/product_uuid', 'r') as f: return f.read().strip() elif platform.system() == "Windows": import subprocess result = subprocess.check_output('wmic csproduct get uuid', shell=True).decode() return result.split('\n')[1].strip() return platform.node() except Exception: return "UNKNOWN_UUID" # Функция для мониторинга пакетов def monitor_packet(packet): if packet.haslayer(IP): src_ip = packet[IP].src current_time = time.time() hwid = get_hwid() # Инициализация данных трафика data = traffic_data[src_ip] if current_time not in data["timestamps"]: data["timestamps"].append(current_time) # Удаление меток времени, выходящих за пределы окна data["timestamps"] = [ ts for ts in data["timestamps"] if current_time - ts <= config["CONNECTION_TIME_WINDOW"] ] # Ограничение скорости: подсчет пакетов, полученных от IP data["packet_count"] += 1 # Обнаружение DDoS: ограничение пакетов на IP за определенный период времени if data["packet_count"] > config["RATE_LIMIT_THRESHOLD"]: print(f"[ALERT] IP {src_ip} отправляет слишком много пакетов. Возможная атака DDoS!") blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Превышен лимит пакетов", data) # Блокировка по TCP/UDP пакетам if packet.haslayer(TCP): data["tcp_count"] += 1 elif packet.haslayer(UDP): data["udp_count"] += 1 if data["tcp_count"] > config["MAX_TCP_PACKETS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество TCP пакетов", data) print(f"[ALERT] Избыточное количество TCP пакетов: {src_ip}") elif data["udp_count"] > config["MAX_UDP_PACKETS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество UDP пакетов", data) print(f"[ALERT] Избыточное количество UDP пакетов: {src_ip}") elif len(data["timestamps"]) > config["MAX_CONNECTIONS"]: blocked_hwids.add(hwid) log_statistics(src_ip, hwid, "Избыточное количество соединений", data) print(f"[ALERT] Избыточное количество соединений: {src_ip}") # Функция для мониторинга трафика SSH def monitor_ssh_traffic(): print("[INFO] Мониторинг трафика SSH...") try: sniff(filter=f"tcp port {config['SSH_PORT']}", prn=process_ssh_packet, store=False) except KeyboardInterrupt: print("[INFO] Мониторинг SSH прерван.") except Exception as e: print(f"[ERROR] Ошибка мониторинга SSH: {e}") # Функция для обработки пакетов SSH def process_ssh_packet(packet): if packet.haslayer(IP) and packet.haslayer(TCP): src_ip = packet[IP].src handle_ssh_attempt(src_ip) # Функция для обработки попыток входа SSH def handle_ssh_attempt(ip): current_time = time.time() data = blocked_ips[ip] # Если IP был заблокирован на более длительный период if data["block_time"] and current_time - data["block_time"] < data["block_duration"]: return # Увеличиваем счетчик попыток входа SSH data["attempts"] += 1 if data["attempts"] > config["SSH_BLOCK_THRESHOLD"]: block_ip(ip) data["block_time"] = current_time data["block_duration"] = config["SSH_BLOCK_DURATION"] # Длительность блокировки if data["attempts"] > config["SSH_LOCKDOWN_THRESHOLD"]: lockdown_ip(ip) data["block_time"] = current_time data["block_duration"] = config["SSH_LOCKDOWN_DURATION"] # Длительность блокировки # Функция для блокировки IP def block_ip(ip): print(f"[INFO] IP {ip} заблокирован за слишком много попыток входа SSH.") # Функция для применения блокировки для IP def lockdown_ip(ip): print(f"[INFO] IP {ip} попал в блокировку за слишком много попыток входа SSH.") # Функция для разблокировки IP после истечения срока блокировки def unblock_expired_ips(): current_time = time.time() for ip in list(blocked_ips.keys()): if current_time - blocked_ips[ip]["block_time"] > config["SSH_BLOCK_DURATION"]: print(f"[INFO] IP {ip} разблокирован.") del blocked_ips[ip] # Функция для начала мониторинга def start_monitoring(): print(f"[INFO] Мониторинг портов: {config['PORTS_TO_MONITOR']}") try: ports_filter = " or ".join([f"tcp port {port} or udp port {port}" for port in config["PORTS_TO_MONITOR"]]) sniff(filter=ports_filter, prn=monitor_packet, store=False) except KeyboardInterrupt: print("[INFO] Мониторинг прерван.") except Exception as e: print(f"[ERROR] Ошибка мониторинга: {e}") if __name__ == "__main__": load_config() # Запуск мониторинга SSH в отдельном потоке ssh_thread = Thread(target=monitor_ssh_traffic, daemon=True) ssh_thread.start() start_monitoring()
    1 ponto
  27. Abrir o editor AngelicaMapEditor. Obter as coordenadas iniciais (X.Y.Z) no modelo 3D. Mover o modelo 3D para uma nova posição e, em seguida, obter as novas coordenadas (X.Y.Z). Clicar em "Calcular" para gerar os seguintes resultados: Direção do Vetor: DirX = 1.0000 DirY = 0.0000 DirZ = 0.0000 Vetor Up: UpX = 0.0000 UpY = 1.0000 UpZ = 0.0000 Fix de seleção.rar
    1 ponto
  28. Bom creio que todos já sabem da os comandos, porém vou postar assim mesmo, já vir que tem até scripts ai que faz todo preparo da maquina para instalação de PWserv, porém eu sou a moda antiga ainda gosto de aplicar manualmente. ========================================================== Esses comandos serve para maquinas da OVH e CentoS Google: Nos quais você não tem acesso ao root e sim ao usuário fornecido. Com esses comando você vai consegue acessa ROOT. sudo passwd root su root yum install nano Hora: timedatectl set-timezone America/Sao_Paulo ========================================================== Preparando a maquina yum update sudo yum install httpd sudo service httpd start yum -y install mariadb-server mariadb systemctl start mariadb systemctl enable mariadb yum install unzip sudo mysql_secure_installation (Esse vai pedir senha, você só aperta enter, que vai ter a opção de escolher senha nova) sudo yum install php php-mysql sudo chkconfig httpd on sudo yum install epel-release sudo yum install phpmyadmin yum install nano sudo nano /etc/httpd/conf.d/phpMyAdmin.conf (aqui onde tiver 127.0.0.1, você coloca o ip do seu pc) service httpd restart yum install -y java-1.6.0-openjdk.x86_64 sudo yum install java-1.7.0-openjdk yum install libstdc++.i686 libstdc++-devel.i686 ln -s /usr/lib/libstdc++.so.6.0.19 /usr/lib/libstdc++-libc6.1-1.so.2 yum install libxml2.so.2 yum install libstdc++.so.5 yum install libgtk2.0-0:i386 libpangox-1.0-0:i386 libpangoxft-1.0-0:i386 libidn11:i386 gstreamer0.10-pulseaudio:i386 gstreamer0.10-plugins-base:i386 gstreamer0.10-plugins-good:i386 Tutorial para instalação do winrar yum install wget cd /usr/local/src wget [Conteúdo Oculto] tar zxvf rarlinux-x64-5.2.1.tar.gz cp rar/unrar /usr/local/bin Comando para Desativa firewalld sudo systemctl disable firewalld systemctl stop firewalld systemctl status firewalld desativa selinux service iptables stop
    1 ponto
  29. pwAdmin~1.rarpwAdmin do Alien com ums fix ServerpwAdmin.rar testado no Debian 12 lembrando a src e do Alien Se estiver com erro quando abrir o pw amd verifique as .data o erro pode esta nelas pequenos fix apenas para evitar o fechamento do ,exe
    1 ponto
  30. da uma conferida no readme, agora só não compila quem não tiver vontade
    1 ponto
  31. Nesse vídeo eu ensino como instalar um servidor privado de Perfect World em uma maquina linux VPS sistema centos 7 Todos os arquivos usado na aula para baixar CLIQUE AQUI
    1 ponto
  32. Esse vídeo vai lhe ensina como criar um novo npc, onde colocar, criar missão e adicionar requisitos como matar mobs e boos, e adicionar uma premiação. Download da missão diária: Clique Aqui
    1 ponto
  33. 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.rar
    1 ponto
  34. Aqui um breve tutorial basico sobre aipolicy Não sou bom com tutoriais por isso nunca criei algo a respeito. aqui o link do video: [Conteúdo Oculto] Servidores VPS BR [Conteúdo Oculto] Quer ajudar no pix? kk [email protected] Se tiverem dúvidas sobre posta sua dúvida que tentarei criar vídeos futuros!
    1 ponto
  35. Achei esse painel que fiz em 2015 😮 Por ter sido feito usando MySQLi deve funcionar hoje em dia normalmente, aconselho usar para estudos 😉 projeto2015.zip
    1 ponto
  36. Nova atualização v176.1 - Corrigido Leitura do ElementClient X86 - Agora, se você abrir o editor, com o Rae Aberto, o carregamento do elements.data não será necessário. Source Code: [Conteúdo Oculto] NpcGen.v176.1.updated.by.Haly.rar
    1 ponto
  37. 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: NpcGen.v176.updated.by.Haly.rar
    1 ponto
  38. 1 ponto
  39. 1 ponto
  40. Valor para versão Mensal R$: 45,00. Cupom para desconto: FromKabal Valor para versão Anual R$: 390,00. Valor para versão Permanente R$: 690,00. Para estrangeiros versão Permanente R$: 745,00.
    1 ponto
  41. Abre todas as versões, eu recompilei e traduzi essa é a ultima versão disponível, funciona em multiplos jogos Angelica. Testado em : PW , FW , SSO. criado por : [Conteúdo Oculto] Release.7z
    1 ponto
  42. Removido da tela de criação de Personagem a Raça Sombrio Necessário remover no server também. elementclient.exe --------------------------------------------------------------------------------------------- PS: te ajudei? então manda aquele pix do coração para incentivar meus posts. PIX: [email protected] --------------------------------------------------------------------------------------------- Precisa de ajuda em particular? Entra em contato comigo tenho otimos preços.
    1 ponto
  43. 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 20
    1 ponto
  44. authd-base64.zip Configura usuário e senha mysql em authd/table.xml Comando para ligar: cd pwserver/authd/; ./authd start >pwserver/logs/authd.log & Caso fica dando erro de Connection Failed pegue o conteudo de authd/authd_old.conf e coloque em authd/authd.conf ou pega o authd.conf de alguma auth que já esteja funcionando em seu servidor
    1 ponto
  45. Instalador do cliente beta level up. [Conteúdo Oculto]
    1 ponto
  46. [Repost] Estava desenvolvendo este Painel do Jogador, para um PW que iria lançar, mas acabou não dando certo, então quem tive interesse entra em contato. [VENDA ÚNICA PARA UMA PESSOA/SERVIDOR] Este é um dos painel mais completo que fiz, ainda está em construção, mas as funções principais já está pronto Você escolhe entre entregar gold ou item na parte doações Suporte os gateway Pix Boleto PicPay Mercado Pago PagSeguro Paypal Entrega de Gold ou Item de forma automática e instantânea (com/sem aviso dentro do jogo) Junto ao sistema de doação, possui um sistema de presentes, onde o jogador pode enviar o gold/item para um amigo Tem um painel do administrador completo, com todas as funções de um PWAdmin & Iweb (Você pode gerenciar seu servidor de qualquer lugar ou dispositivo)
    1 ponto

Suporte GM

Comunidade de Perfect World do Brasil

Copyright © 2023-2024 SuporteGM Powered by Invision Community
Поддержка Invision Community в России

Links

×
×
  • Criar Novo...