Ir para conteúdo

Seja bem-vindo ao RageZone Brasil
Registre-se para obter acesso aos recursos do fórum. Ao se cadastrar e logar no fórum, você poderá criar e ler tópicos, responder em tópicos existentes, dar reputação, enviar mensagens privadas, postar atualizações de status, gerenciar seu perfil e deixar como quiser, e muito mais. Se você já tem uma conta, logue-se nesta tela mesmo, se não, clique aqui para se cadastrar gratuitamente!

Alternar chat Chat Abrir o chat em uma nova janela

Fiquem atentos as regras do chat, pois caso ocorra algo fora das regras, a ação será tomada sem aviso prévio.
 
Caso altere seu avatar mas o mesmo não mude no chat, recarregue a página utilizando o atalho CTRL + F5.
Se for novato, você precisará de 5 posts para usar o chat e as áreas de suporte.
@  Solk : (15 novembro 2018 - 08:22 GMT) Bom dia chars <3 https://youtu.be/zs1...8It837V36pbsK2H
@  RageZone Bot : (15 novembro 2018 - 04:00 GMT) Novo tópico Dragon Gunz 1.5 - Garante sua diversão ! postado em Gunz Zone por HungriaRDG
@  RageZone Bot : (14 novembro 2018 - 23:43 GMT) Novo tópico Bugs postado em GC [ Suporte/Dúvidas ] por lucasgc
@  Solk : (14 novembro 2018 - 21:55 GMT) Bora bahia
@  Solk : (14 novembro 2018 - 15:36 GMT) Não sei eu não sou dessa área :(
@  luuizhere : (14 novembro 2018 - 15:05 GMT) tem ou n?
@  luuizhere : (14 novembro 2018 - 15:05 GMT) ^^
@  Solk : (14 novembro 2018 - 15:04 GMT) https://youtu.be/l5OKbtQsA8c
@  luuizhere : (14 novembro 2018 - 14:55 GMT) Quando voce se torna vip, tem outras sources de mu disponivel?
@  TheCash : (14 novembro 2018 - 14:42 GMT) q
@  Solk : (14 novembro 2018 - 14:40 GMT) :confused:
@  luuizhere : (14 novembro 2018 - 14:05 GMT) Pessoal, comprando vip existem sources melhores nos subforuns vip?
@  Adriano Barros : (14 novembro 2018 - 10:54 GMT) Saudades quando esse fórum era o mais foda da internet... =/
@  RageZone Bot : (14 novembro 2018 - 07:34 GMT) Novo tópico Compra De script de Naruto postado em Suporte / Dúvidas / Pedidos por maxrbig
@  lucasgc : (13 novembro 2018 - 23:21 GMT) sim mais eu penssei que o cara tava falando das files tipo do GC histori que tao 100% funcional, me enganei ^_^
@  Cabra Chapada : (13 novembro 2018 - 22:58 GMT) Lucasgc procura na aba da Season V mano kk tão fácil procurar no fórum
@  RageZone Bot : (13 novembro 2018 - 22:54 GMT) Novo tópico [ERRO] Tela congelada postado em DDTank [ Tutoriais ] por magicsgo
@  lucasgc : (13 novembro 2018 - 21:26 GMT) cade essas files e db pra nos baixar ondeestao ?
@  RageZone Bot : (13 novembro 2018 - 21:19 GMT) Novo tópico Duvida de vip postado em Barzinho de Lorencia por luuizhere
@  angaro192 : (13 novembro 2018 - 21:17 GMT) Noite boia
@  angaro192 : (13 novembro 2018 - 21:17 GMT) tb
@  Solk : (13 novembro 2018 - 20:38 GMT) Só sei de que nada sei. Noite chars '-' https://www.youtube....h?v=oBSP4Kt3-Ik
@  Dr. Evil : (13 novembro 2018 - 19:26 GMT) nem de longe é completa
@  rugal : (13 novembro 2018 - 19:19 GMT) ....
@  angaro192 : (13 novembro 2018 - 19:19 GMT) isso eu ja sabia.
@  angaro192 : (13 novembro 2018 - 19:19 GMT) na verdade n, essa db conforme o propio topico diz, ta faltando muita coisa. mais é rodavel.
@  rugal : (13 novembro 2018 - 19:18 GMT) funcional
@  rugal : (13 novembro 2018 - 19:18 GMT) @angaro192 sim, db completa
@  angaro192 : (13 novembro 2018 - 19:18 GMT) ?
@  angaro192 : (13 novembro 2018 - 19:18 GMT) falando disso: http://ragezone.com....-ep1-corrigida/
@  rugal : (13 novembro 2018 - 19:17 GMT) só não tem tutorial de como ligar isso, pois poucas pessoas conseguiram ligar eu consegui
@  rugal : (13 novembro 2018 - 19:17 GMT) tá atrasado gfsdjkjkgagskj
@  rugal : (13 novembro 2018 - 19:17 GMT) oloco
@  rugal : (13 novembro 2018 - 19:17 GMT) @angaro192 vazou a db tbm
@  angaro192 : (13 novembro 2018 - 19:16 GMT) que o pessoal adptou uma db pra ela né
@  angaro192 : (13 novembro 2018 - 19:16 GMT) @rugal vc ta falando das files que não tem db?
@  rugal : (13 novembro 2018 - 19:15 GMT) ?????????
@  rugal : (13 novembro 2018 - 19:15 GMT) @angaro192 as files tbm wtf
@  angaro192 : (13 novembro 2018 - 19:15 GMT) @rugal vazado o emulador
@  rugal : (13 novembro 2018 - 19:09 GMT) wtf
@  rugal : (13 novembro 2018 - 19:09 GMT) já foi vazado faz tempo
@  rugal : (13 novembro 2018 - 19:09 GMT) @lucasgc tá em qual ano? 1930?
@  lucasgc : (13 novembro 2018 - 18:58 GMT) se liberarem as sv files do gc V só assim mesmo pra movimentar
@  angaro192 : (13 novembro 2018 - 18:54 GMT) É triste, mais é real.
@  angaro192 : (13 novembro 2018 - 18:54 GMT) A aréa de GC só se movimenta quando tem briga.
@  lucasgc : (13 novembro 2018 - 18:24 GMT) Mal velorio.....
@  Vosu : (13 novembro 2018 - 17:12 GMT) A área do GC tá bem apagada, o fórum tá bem desanimado também, tem nada demais
@  Solk : (13 novembro 2018 - 14:49 GMT) @bysegredo Vefique sua MP.
@  bysegredo : (13 novembro 2018 - 10:50 GMT) com quem falo sobre divulgação no forum ?
@  TheCash : (13 novembro 2018 - 02:08 GMT) ^_^
@  Solk : (12 novembro 2018 - 23:10 GMT) :oh:
@  jonatasgoku2 : (12 novembro 2018 - 22:52 GMT) hay boa noite gente manda um salve ai pra o video hauahau to gravado um vidinho pra ajuda o dio com todas dicas que aprendi com vc @solk k bjs seus dcclinha e um abraço pra vcs 2 ainda meus mestres zig e the cash @the cash
@  angaro192 : (12 novembro 2018 - 22:03 GMT) Noite boa
@  Solk : (12 novembro 2018 - 21:46 GMT) Noite chars '=' https://www.youtube....h?v=6JnGBs88sL0
@  bysegredo : (12 novembro 2018 - 17:09 GMT) Responsável por BANNER dv?
@  Solk : (12 novembro 2018 - 13:45 GMT) :confused:
@  TheCash : (12 novembro 2018 - 12:17 GMT) que
@  TheSoldier : (12 novembro 2018 - 10:23 GMT) Galera, voces conhecem algum portal que tenha o painel de login, e quando logado apareça o avatar dele na pagina?
@  RageZone Bot : (12 novembro 2018 - 06:09 GMT) Novo tópico [SOURCE]MUnique OpenMU C# Season 6.3 ENG postado em Sources por fos83
@  Solk : (11 novembro 2018 - 19:31 GMT) @mvssbezerra vc pode encontrar na quick list da área.

Foto

[Dúvida] Estrutura dos packets de login

- - - - - packets

  • Este tópico está fechado Este tópico está fechado
10 respostas neste tópico

#1
OFFLINE   SyntaxDev

SyntaxDev

    Membro ativado

  • Membro Ativado
  • 34 posts
    • Tempo online: 18d 13h 13m 25s

Bom dia, pessoal
 
Faz um tempo que eu venho trabalhando com os packets do Grand Chase através de um emuladorzinho que fiz junto com a minha library. Até agora, dá pra chegar na tela de login normalmente. A questão é na hora de fazer o login. Os dois primeiros packets que o servidor envia ao client, logo após este ter enviado o login e a senha (em forma de hash MD5), são normais: seguem a estrutura geral dos packets do jogo. Entretanto, os packets seguintes são diferentes: os primeiros bytes não correspondem ao tamanho dos dados do packet e apenas o primeiro desses de packets diferentes possui IV (Initialization Vector). (

Please Login HERE or Register HERE to see this link!

)

 

Gostaria que alguém me desse uma luz pra entender a estrutura desses pacotes, obrigado.


Editado por SyntaxDev, 09 outubro 2016 - 07:34 .




#2
OFFLINE   Idiot

Idiot

    Membro

  • Membro VIP
  • 122 posts
    • Tempo online: 16d 17h 54m 5s

Zlib compressed data:

7c9WJbt.png

 

Non-Zlib compressed data:

MLjngdq.png

 

Note that my PacketBuffer Send() method fixes the size (adds the packet-divisible-by-8 padding to the end of the packet) automatically.

 

Good luck!


  • Asher e SyntaxDev curtiram isso

#3
OFFLINE   SyntaxDev

SyntaxDev

    Membro ativado

  • Membro Ativado
  • 34 posts
    • Tempo online: 18d 13h 13m 25s

Zlib compressed data:

7c9WJbt.png

 

Non-Zlib compressed data:

MLjngdq.png

 

Note that my PacketBuffer Send() method fixes the size (adds the packet-divisible-by-8 padding to the end of the packet) automatically.

 

Good luck!

Thank you for the reply, but I'm talking about those huge packets that the server sends after the login request. Their structure seems not to follow the others (size ~ prefix ~ IV ~ encrypted data ~ hmac hash). As I said, some of them don't even contains the 8 byte IV, lol


Editado por SyntaxDev, 09 outubro 2016 - 09:13 .


#4
OFFLINE   Idiot

Idiot

    Membro

  • Membro VIP
  • 122 posts
    • Tempo online: 16d 17h 54m 5s

Thank you for the reply, but I'm talking about those huge packets that the server sends after the login request. Their structure seems not to follow the others (size ~ prefix ~ IV ~ encrypted data ~ hmac hash). As I said, some of them don't even contains the 8 byte IV, lol

Do you mean user login (login screen to server list)? This is not a problem in my emulator.

Edit: Are you sniffing from GC History?



#5
OFFLINE   igort

igort

    Membro

  • Ragezoner
  • 192 posts
    • Tempo online: 35d 3h 39m 18s

Thank you for the reply, but I'm talking about those huge packets that the server sends after the login request. Their structure seems not to follow the others (size ~ prefix ~ IV ~ encrypted data ~ hmac hash). As I said, some of them don't even contains the 8 byte IV, lol

 

Todos os packets devem conter o IV, se não contem, tem alguma coisa errada com seu programa.

Talvez o problema que você esteja tendo é que quando o packet é muito grande, ele vem dividido, você teria que fazer com que seu programa consiga esperar o restante do packet quando receba um packet quebrado.


Editado por igort, 10 outubro 2016 - 07:57 .

  • Asher e SyntaxDev curtiram isso

#6
OFFLINE   SyntaxDev

SyntaxDev

    Membro ativado

  • Membro Ativado
  • 34 posts
    • Tempo online: 18d 13h 13m 25s

Do you mean user login (login screen to server list)? This is not a problem in my emulator.

Edit: Are you sniffing from GC History?

Yes, the login request after the username and password input. BTW, I am sniffing the packets from GCReborn.

 

 

Todos os packets devem conter o IV, se não contem, tem alguma coisa errada com seu programa.

Talvez o problema que você esteja tendo é que quando o packet é muito grande, ele vem dividido, você teria que fazer com que seu programa consiga esperar o restante do packet quando receba um packet quebrado.

Dei uma olhada rápida aqui e parece que é isso mesmo, estão fragmentados, realmente não tinha me tocado. Quando rolar um tempinho eu resolvo isso e vejo se eu consigo entrar na tela de servidores, muito obrigado.


  • Idiot curtiu isso

#7
OFFLINE   tDarkFall

tDarkFall

    Desenvolvedor

  • Fundador





  • 2.522 posts
    • Tempo online: 188d 2h 31m 52s

Prêmios do membro

                     

Não sei se o servidor de GrandChase faz isso, mas utilizando soquetes, tem algumas maneiras de gerenciar o recebimento de pacotes:

  • Lendo o tamanho do buffer, e em seguida, esperando que a leitura se complete (para isso, utilize uma variável com o total de dados retornados pela leitura).
  • Lendo um buffer de tamanho fixo (mesmo que menor, o pacote nunca passará disso).
  • Lendo byte a byte até o fim do laço, podendo ter uma flag (não recomendado, vendo que está usando bytes, porém pode ler chunks de 4 bytes, usando flags com números inteiros), ou um tamanho fixo.

Existem outros métodos que ainda não estudei, espero que este post seja útil.

Por fim, uma dica que dou é que verifiquem se o retorno do método de recebimento é menor ou igual a zero, pois caso seja, ocorreu algum problema que fez o cliente desconectar.


  • SyntaxDev curtiu isso

CPU: AMD FX™-6100 Six-Core Processor
CPU Cooler: Evercool Buffalo
GPU: nVidia GeForce GT 630
MB: ASUS MSA78L-M LX3
RAM: Kingston HyperX FURY 8GB 2008.8MHz

 

 


#8
OFFLINE   SyntaxDev

SyntaxDev

    Membro ativado

  • Membro Ativado
  • 34 posts
    • Tempo online: 18d 13h 13m 25s

Não sei se o servidor de GrandChase faz isso, mas utilizando soquetes, tem algumas maneiras de gerenciar o recebimento de pacotes:

  • Lendo o tamanho do buffer, e em seguida, esperando que a leitura se complete (para isso, utilize uma variável com o total de dados retornados pela leitura).
  • Lendo um buffer de tamanho fixo (mesmo que menor, o pacote nunca passará disso).
  • Lendo byte a byte até o fim do laço, podendo ter uma flag (não recomendado, vendo que está usando bytes, porém pode ler chunks de 4 bytes, usando flags com números inteiros), ou um tamanho fixo.

Existem outros métodos que ainda não estudei, espero que este post seja útil.

Por fim, uma dica que dou é que verifiquem se o retorno do método de recebimento é menor ou igual a zero, pois caso seja, ocorreu algum problema que fez o cliente desconectar.

Obrigado pela resposta tDarkFall. Eu implementei um gerenciamento pra isso: se o tamanho dos dados recebidos for menor do que o indicado pelos primeiros bytes do packet, o servidor aguarda pelo packet seguinte e soma ele ao buffer já existente e faz essa checagem até o tamanho do buffer ser igual ou menor ao definido pelos primeiros bytes. Quando o tamanho do buffer é igual ou menor ao size definido pelo packet, um loop manipula todos os packets presentes no buffer e assim por diante.

 

 

PS: Já consegui passar pra tela de servidores tranquilamente, obrigado a todos que ajudaram aí. :D

Spoiler


  • Idiot e tDarkFall curtiram isso

#9
OFFLINE   tDarkFall

tDarkFall

    Desenvolvedor

  • Fundador





  • 2.522 posts
    • Tempo online: 188d 2h 31m 52s

Prêmios do membro

                     

Entendido, parabéns por ter conseguido :)

Caso queira que o tópico seja trancado só avisar. Mas queria aproveitar para lhe fazer uma pergunta:

- De alguma forma, o tamanho do pacote recebido somado ao tamanho anterior pode extrapolar o dos bytes? Caso isso aconteça você já manipula isso? Caso não acho que é uma boa dica \0


CPU: AMD FX™-6100 Six-Core Processor
CPU Cooler: Evercool Buffalo
GPU: nVidia GeForce GT 630
MB: ASUS MSA78L-M LX3
RAM: Kingston HyperX FURY 8GB 2008.8MHz

 

 


#10
OFFLINE   Idiot

Idiot

    Membro

  • Membro VIP
  • 122 posts
    • Tempo online: 16d 17h 54m 5s

se o tamanho dos dados recebidos for menor do que o indicado pelos primeiros bytes do packet, o servidor aguarda pelo packet seguinte e soma ele ao buffer já existente e faz essa checagem até o tamanho do buffer ser igual ou menor ao definido pelos primeiros bytes

Awesome, remind me to send some malformed packets to your server :)



#11
OFFLINE   SyntaxDev

SyntaxDev

    Membro ativado

  • Membro Ativado
  • 34 posts
    • Tempo online: 18d 13h 13m 25s

Entendido, parabéns por ter conseguido :)

Caso queira que o tópico seja trancado só avisar. Mas queria aproveitar para lhe fazer uma pergunta:

- De alguma forma, o tamanho do pacote recebido somado ao tamanho anterior pode extrapolar o dos bytes? Caso isso aconteça você já manipula isso? Caso não acho que é uma boa dica \0

Bom, a verdade é que esse mini-emulador aí é realmente grosseiro e bem mau estruturado kkk. O tamanho do buffer tá setado pra 0xFFFF (*desperdício de memória*), então, naturalmente,  acho que não teria jeito de extrapolar isso. O meu objetivo por enquanto é estudar as necessidades de uma packet lib. pra completar meu projeto do GCNet. Se por algum acaso eu fosse começar a trabalhar em um emulador de verdade, iria ser bem diferente. Mas se eu fosse fazer esse emulador agora... eu não teria uma boa ideia pra esse problema aí, eu teria que procurar uma solução realmente efetiva.

 

Quanto ao tópico, se não tiver mais nenhuma questão pra levantar, fica à vontade pra fechar.

 

 

Edit: @Idiot don't worry, as I pointed before, it's just a mini-emulator and I'm aware of its lack of security, stability and so on. It does not have ANY appropriate buffer handling method because this one is supposed to be a simple local server.  ^_^


Editado por SyntaxDev, 11 outubro 2016 - 10:36 .

  • Idiot e codelesss curtiram isso




0 usuário(s) está(ão) lendo este tópico

0 membros, 0 visitantes, 0 membros anônimos