Jump to content

Help Needed: Identifying Structure of Packet 0x0D00 After Character Selection (PACKETVER 20230302)


Recommended Posts


  • Group:  Members
  • Topic Count:  3
  • Topics Per Day:  0.25
  • Content Count:  3
  • Reputation:   0
  • Joined:  06/03/25
  • Last Seen:  

안녕하세요 rAthena 커뮤니티 여러분,

현재 rAthena 기반 서버(PACKETVER 20230302)용 Unity 클라이언트를 개발 중인데, 캐릭터 선택 후 알 수 없는 패킷을 발견했습니다.

다음은 캐릭터 서버에서 성공적으로 구문 분석한 패킷 시퀀스입니다.
1. 로그인 및 인증 패킷(예: 0x0065 응답)
2. 문자 슬롯 정보(예: 0x082D)
3. 문자 목록 데이터(0x006B) - 성공적으로 구문 분석되었으며, 문자 세부 정보가 정확합니다.
4. 문자 목록 페이지 정보(0x09A0) - 성공적으로 구문 분석되었습니다.

0x09A0 패킷을 처리한 직후, 클라이언트는 ID가 `0x0D00`인 패킷을 수신합니다.
클라이언트 로그에는 이 `0x0D00` 패킷에 대한 다음과 같은 정보가 기록되어 있습니다.
- 패킷 ID: `0x0D00`
- 선언된 총 길이(패킷의 2~3바이트): `29` (0x001D)
- 이는 데이터 페이로드(2바이트 ID와 2바이트 길이 필드 제외)가 `25` 바이트임을 의미합니다.

이 25바이트 데이터 페이로드의 HEX 덤프는 다음과 같습니다.
`0F 00 00 0F 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00`

rAthena 서버 소스 파일(`char_clif.c`, `mmo.h`, `packets.hpp` 등)을 검색했지만, 이 특정 길이와 페이로드로 문자 선택 후 문자 서버에서 클라이언트로 전송되는 ID가 `0x0D00`인 패킷에 대한 명시적 정의나 사용법을 찾을 수 없습니다.

이 `0x0D00` 패킷에는 맵 서버 연결에 중요한 정보(예: 맵 서버의 선택된 캐릭터 ID, 맵 서버 IP, 포트, 세션/인증 키)가 포함되어 있을 것으로 예상됩니다. 하지만 패킷의 구조를 모르니 제대로 분석할 수 없습니다. 25바이트 페이로드를 사용하는 일반적인 맵 서버 정보 구조를 기반으로 분석하려고 시도했지만, 예상치 못한 값(예: 맵 IP 15.0.0.0, 포트 0)이 생성되었습니다.

문자 선택 후 전송되는 25바이트 페이로드를 가진 `0x0D00` 패킷의 구조를 파악하는 데 도움을 주실 수 있을까요? 구체적으로, 이 25바이트는 무엇을 나타내는 걸까요?
이 패킷은 특정 `PACKETVER`(제 서버는 `20230302`입니다)에 대한 표준 rAthena 패킷인가요, 아니면 사용자 지정 패킷일까요?

관련 소스 코드 섹션에 대한 통찰력이나 지침을 제공해 주시면 감사하겠습니다.

감사합니다!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...