Forum ViSiBLe

Bem Vindo
Se registrares neste fórum, podes fazer parte da nossa comunidade.Prezamos aqui pela participação ACTIVA de cada membro.


Atençao: Nao precisa Confirma a sua conta no hotmail (Basta Registrar e Começar a participar do forum.)
Precisamos de administradores e moderadores!! Clique Aqui!

Anuncio


    WPhx 2.1

    Compartilhe

    MrViSiBLe
    Fundador ViSiBLe
    Fundador ViSiBLe

    Número de Mensagens : 3688
    Idade : 24
    Localização : Cuiaba
    Agradecimentos Agradecimentos : 864
    Data de inscrição : 10/12/2008

    WPhx 2.1

    Mensagem por MrViSiBLe em 5/20/2012, 16:59

    Mesma coisa de antes, mas agora compativel com a nova versão do jogo

    Update 2:
    Aparentemente nao mudou muita coisa, mas a nivel de codigo é quase outro programa, é a versão mais completa até agora, com menos erros (acredito eu que nenhum, pelo menos não visivel. e olha que foi muito testado).
    Em breve também pretendo postar pacotes falsos aqui (modelos) como o do pacote de usar skill

    Por gentileza, leia tudo antes de ter qualquer duvida ou fazer qualqer comentário, o programa nao tem nada muito complexo para se entender mas... é sempre bom ler tudo =P

    [Você precisa estar registrado e conectado para ver esta imagem.]

    O programa permite que voce monitore o trafego de packets do WYD, fornecendo o conteudo do pacote (desencryptado), o ID, o tamanho e possivelmente informações adicionais (contidas na database do programa, que pode ser acessada em \WPhx_data\).

    O programa também permite o envio de pacotes falsos para o servidor. O pacote falso deve ser escrito byte por byte, em hexadecimal. O programa irá encryptar o pacote antes de envia-lo ao servidor, por isso nao ha razão para se preocupar com a encriptação.

    Como usar:
    1- Extraia todo o conteudo na pasta do WYD e substitua o conteudo existente (faça backup de todos os arquivos que serão substituidos antes caso queira retornar ao original posteriormente)
    2- Todas as dlls na pasta PLUGINS serão carregadas, mesmo que não sejam plugins do wphx (inclusive o tal whook). NOTA: o whook causa conflito com o wphx, impedindo-o de funcionar devidamente!
    3- Execute o wyd normalmente, o programa deve abrir junto

    Sinta-se livre para contribuir com a database (localizada no \WPhx_data\) os arquivos são .INI e extremamente faceis de voce entender, o nome do arquivo é o ID do pacote (em hexadecimal)

    Nota: Existem pacotes que o cliente recebe e os que ele envia, pacotes que voce recebe estão na pasta \WPhx_data\recv\ e os que envia \WPhx_data\send\

    Quaisquer bug/erro poste NESTA THREAD, não envie PMs porque elas serão recusadas

    Se voce deseja contribuir com a expansão da database, zipe a pasta \WPhx_data\ e envie para mim em forma de PM com o titulo "Database".
    Como esta versão esta sendo postada em publico, e poderá ir para outras comunidades, enviem a pasta para o email "vennom@gmx.com"

    2 notes:
    .Boa parte do codigo de compatibilidade com plugins por DLL foi re-escrito devido à alguns problemas de ineficacia e alguns erros, agora tudo funcional
    .Novas funções exportadas para plugins, export do Send_Packet agora nao necessariamente depende do export da dll, e pode ser importado pelo plugin como zSendPacket
    .Inicialização consertada para trabalhar com multiplos clients ao mesmo tempo
    .Nova api na unit do plugin ,função hStr()
    .Otimização do codigo do hook, agora mais estavel
    .Pequenos consertos/modificações na GUI
    .Alguns crashes resolvidos
    .Consertado erro relacionado ao sistema de log e o uso de varios clients simultaneos
    .Resolvido erro de plugins que usavam a função zSendPacket (Send_Packet) dentro dos hooks (hook_recv e hook_send)
    .Funções exportadas nao contém mais SEH

    2 notes:
    .Re-escrito o sistema de plugins com DLL (havia um erro que causava um loop infinito, agora consertado, sendo possivel enviar pacotes falsos sem erro direto do plugin)
    .Função de enviar pacotes falsos melhorada em diversos sentidos, ela agora aceita tambem uma sintaxe basica para adicionar BYTE, WORD, DWORD e alguns valores especiais como PLAYER.X, PLAYER.Y e CLIEND_ID (leia mais abaixo)
    .Pequenos trechos do codigo melhorados para melhor desempenho
    .Alguns bugs resolvidos (eram bugs? .-.)

    1.1b notes:
    .Re-escrito a forma a qual o programa indexa os buffers, tornando-o mais eficiente (gasta menos memoria, armazena mais informação)
    .Estabilidade quase que absoluta (antes, o programa mal conseguia capturar 5.000 packets sem crash, agora ele atinge 50.000 com facilidade sem erros)
    .Sistema de log modificado para detectar alguns bugs melhor
    .Pequenas modificações na janela do log
    .SEH separados para cada seção espefica
    .Uso de threads separadas para indexar itens na lista (isso tem pros e contras, mas em troca de informação eu optei por estabilidade)

    1.1 notes:
    .Todas as funções do programa são completamente funcionais agora
    .Varios bugs pequenos consertados, incluindo um relacionado ao envio de pacotes
    .Interface grafica modificada, adicionados componentes graficos novos para facilitar analises
    .Adicionado função de flood de pacotes falsos (totalmente funcional)
    .Sistema de plugins de DLL foi melhorado de diversas formas, adicionado uma nova função à dll para enviar pacotes falsos
    .Alinhamento de 16 bytes/linha (em hex, 2 digitos) na janela de hexadecimal, e 16 digitos ASCII na janela de texto
    .Sistema de log implementado (log do programa, com ele é possivel detectar possiveis erros que possam vir a ocorrer
    .Consertado um erro no precedimento de envio de pacotes falsos, agora a função está 100% funcional e foi testada exaustivamente

    Sobre a sintaxe na função de enviar pacotes falsos
    Agora é possivel usar palavras-chave especiais para designar valores dentro do pacote falso, antes só era aceito valores HEX, agora também são aceitos simbolos especiais, entre esses:
    #db valor byte
    #dw valor word
    #dd valor dword
    #px posição X do jogador (word)
    #py posição Y do jogador (word)
    #id Client ID

    Breve exemplo do uso desse sistema


    Código:00 00 00 00 9D 03 #id 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #px #py #px #py #id 00 00 FF 00 00 00 FF FF #db(SkillID) 00 #id FF FF 00 00
    Neste exemplo, o seu personagem vai usar a skill com id "SKILLID" (se voce nao modificar este valor para um ID valido de skill, nao vai dar certo... mas é sempre bom constatar o obvio)


    Sobre o sistema de plugins com DLL
    Todas as dlls na pasta PLUGINS é carregada pelo programa, e ele procura pelo export "hook_recv" e "hook_send", ambos são uma função do tipo procedure (Packet,Size:dword); STDCALL; (Documentação será adicionada depois, junto com exemplos e APIs especificas)

    Adicionado agora export no wphx.dll como zSendPacket(Buffer,Size:dword); stdcall;

    Função hStr adicionada à api dos plugins (hStr(PACKET , STRING)[Você precisa estar registrado e conectado para ver esta imagem.] capaz de transformar uma string em data dentro do buffer, exemplo:



    Código:hStr(MeuPacote,'00 00 00 00 66 06');
    Vai escrever a array de bytes 00 00 00 00 66 06 começando no endereço de MeuPacote em breve também aceitará a mesma sintaxe do packet hack (#id, #px, #py...)

    Também ha agora a função Send_Packet:Procedure (Buffer,Size:dword); stdcall; que pode ser usada para enviar pacotes falsos direto do plugin.

    Toda esta informação pode ser encontrada no plugin de exemplo contido no rar, mais funções podem ser encontradas no wphx.pas (várias funções pra deixar mais facil a manipulação dos pacotes)

    Foi feito um exemplo também em ASM, bem facil de entender, mas este não tem unit de suporte =P é só ver no TESTE.ASM na pasta do plugin_developing, a sintaxe usada é do FASM.

    Sobre o sistema de plugin INI
    O sistema nao tem nada de complexo, é bem intuitivo e eu adicionei ele pois nem todos os usuarios são programadores, tendo em vista isso, decidi criar um sistema que permitisse alteração dos packets (com detour/hook) sem que o usuario precisasse programar algo.
    O formato do ini é o seguinte:


    Código:[p0]
    packet_id=ID DO PACKET
    offset=OFFSET DA MUDANÇA
    size=TAMANHO DA MODIFICAÇÃO (pode ser 1,2 ou 4, respectivamente byte, word e dword)
    value=VALOR QUE SERA POSTO
    isrecv=0 se for SEND, 1 se for RECV (se a informação for ENVIADA para o servidor, é 0 se ela é recebida é 1, simples assim)
    [p0] <<< Identificação do HOOK, pode ser de p0 até p1000 (p1,p2,p3...p999,p1000)

    Exemplo de hook, para deixar minha senha em branco no processo de login


    Código:[p0]
    packet_id=$20D
    size=4
    offset=$C
    isrecv=0
    value=0
    [p1]
    packet_id=$20D
    size=4
    offset=$10
    isrecv=0
    value=0
    [p2]
    packet_id=$20D
    size=4
    offset=$14
    isrecv=0
    value=0
    Pacotes falsos
    Teleporte (testado e funcionando 100%)

    Código:00 00 00 00 6C 03 #id 00 00 00 00 #px #py 01 00 00 00 #db(3) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #dw(X) #dw(Y)Move


    Código:00 00 00 00 6C 03 #id 00 00 00 00 #px #py 00 00 00 00 #db(3) 00 00 00 38 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #dw(Destino_X) #dw(Destino_Y)


    Use skill (buff)


    Código:00 00 00 00 9D 03 #id 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 #px #py #px #py #id 00 00 FF 00 00 00 FF FF #db(Skill_ID) 00 #id FF FF 00 00


    Add stat


    Código:00 00 00 00 77 02 #id 00 00 00 00 #db(TIER) 00 #db(STAT) 00 00 00 00 00

    [Você precisa estar registrado e conectado para ver esta imagem.]
    Ex. se voce quer adicionar a stat DEX, o TIER é 0 e stat é 2



    A principio, este aplicativo foi postando na area premium, mas como este projeto é algo relativamente grande, e precisa de suporte, como um cético, vi que nao seria possivel tocar o projeto de uma area premium, então decidi disponibiliza-lo numa area publica, para que o proprio publico seja capaz de ajudar o desenvolvimento do programa.
    A versão final do programa, porém, deve ser destinada à premium do forum, mas isso é mais politica do que praticidade.


    Sintam-se livre para difundir o programa em outras comunidades se desejarem, quanto mais gente puder contribuir para o projeto, melhor no fim das contas =P
    Se algum programador desejar saber mais sobre o sistema de plugins por dll, mande-me uma PM, mas tenha em mente que NÃO VOU ENSINAR VOCE A PROGRAMAR, se voce não é um programador, nem tente...

    Update versão 2
    Download: Release.rar

    Nota: Foi consertado um erro meu grotesto no sistema de injetar a dll no jogo, e eu só percebi agora...

    [Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.]

    E pro dinossauro que falou que estava "patched" era só editar o INI com novos addresses que o programa voltava a funcionar, ignorancia é foda...


    _________________
    MrViSiBLe Gosto? agradeça. clique em [b]+ Ta Ai do lado Olha  >>>>>Nao Custa Nada[/b]
    [Você precisa estar registrado e conectado para ver esta imagem.]
    [Você precisa estar registrado e conectado para ver esta imagem.]
    [Você precisa estar registrado e conectado para ver esta imagem.]
    [Você precisa estar registrado e conectado para ver esta imagem.]

      Data/hora atual: 12/3/2016, 16:46