rswiki-book/src/Category-RS2.md

54 lines
2.2 KiB
Markdown

== Introduction ==
The RuneScape Protocol is the language in which the RuneScape client and
server communicate. The protocol changes for every version.
The entire protocol is generally separated into two different
categories:
- Login Protocol
- Game Protocol
== Login Protocol ==
The Login Protocol is the protocol that is used to log a player into
RuneScape. This protocol contains information that sets up the
encryption for the entire session, using the ISAAC algorithm. The "login
block" is encrypted using RSA to prevent third party programs from
packet-sniffing the ISAAC cipher keys and breaking the session
encryption for the purpose of monitoring, injecting, and generally
sniffing packets.
== Game Protocol ==
The Game Protocol is the protocol in which game action information is
transmitted. The opcodes are encrypted using ISAAC in order to prevent
third party programs from tampering with the stream. The game protocol
is made up of packets that are structured like so:
<pre>
For fixed-size packets:
opcode, payload[size]
For variable-sized packets:
opcode, size, payload[size]
</pre>
The ''opcode'' of a game packet is basically an identifier for the type
of game action that the packet represents. The ''size'' of the packet is
the amount of bytes that the payload of the packet carries, and the
''payload'' is an array of bytes that holds the actual data
(information) of the packet.
A ''fixed-size'' packet is a packet whose payload size does never
change, and the size for the specified opcode is already known between
both client and server. A ''variable-sized'' packet is a packet whose
payload size changes according to the situation of the game session.
<!-- DO NOT EDIT BELOW THIS LINE, OR CHANGE THIS COMMENT, CODE AUTOMATICALLY GENERATED BY category.sh -->
== '''Pages in category "RS2"''' == The following 15 pages are in this
category. \* \[\[194 Protocol\]\] \* \[\[289 Protocol\]\] \* \[\[317
Protocol\]\] \* \[\[357 Protocol\]\] \* \[\[377 Protocol\]\] \* \[\[443
Protocol\]\] \* \[\[464 Protocol\]\] \* \[\[468 Protocol\]\] \* \[\[474
Protocol\]\] \* \[\[508 Protocol\]\] \* \[\[634 Protocol\]\] \* \[\[666
Protocol\]\] \* \[\[668 Protocol\]\] \* \[\[718 Protocol\]\] \* \[\[742
Protocol\]\]