Neler yeni

KO Paket Yapısı

delitay

Yönetici
Katılım
10 Ağu 2023
Mesajlar
434
Çözümler
5
Puanları
176
Konum
kayseri
Kredi
28
Öncelikle belirteyim açıklama pentagram arkadaşımızdan alıntıdır bende bu paket olayını çözmeye çalışıyorum güzel bir kaynak

Paket, knight online sunucusu ve istemcisi arasındaki veri alışverişinde kullanılan veri parçalarına verilen addır. Oyun, MMORPG türünde bir oyun olduğu için, oyunun kalbi sunucu programında yatmaktadır. Yani, oyun içerisinde yaptığınız bütün işlemler sizin bilgisayarınız tarafından değil, sunucu bilgisayarı tarafından hesaplanmakta, işlenmekte ve çevrenizdeki oyunculara ve size bu verinin aktarılması sağlanmaktadır. Aklınıza gelebilecek her türlü aktivite(oyuna giriş, sunucu seçimi, karakter seçimi, karakter yaratma, büyü kullanma, envanterde eşya konumu değiştirme ve binlercesi), istemci tarafından bir 'istek' haline getirilerek sunucuya iletiliir. Bu işleme basit bir açıdan yaklaşalım ve oyuna giriş sistemini inceleyelim.

Öncelikle, oyuna girişin gerçekleşebilmesi için sunucunun istemciden iki bilgi edinmesi gerekir. Birincisi, kullanıcı adınız, ikincisi ise parolanız. Bu iki bilgi, bir işlem kodu(opcode) ile birleştirilerek, aşağıdakine benzer bir formda sunucuya iletilir. İşlem kodu, sunucunun ve istemcinin paketin hangi işlem için gönderildiğini anlamasına yarar. Yani, her işlemin (oyuna giriş, karakter seçme vs.) kendine özgü eşsiz bir kodu vardır. Oyuna giriş için bu kod 0xF3'tür. İşlem kodlarının tam listesine shared\packets.h dosyasını açarak erişebilirsiniz.




Yukarıdaki paket, verinin ağ üzerinde iletilen halidir. Verimize, knight online protokolünün gereksinimi olan HEADER, SIZE ve TAIL verileri eklenmiş durumda. Şimdi bu paketi ayıklayalım, yani içerisindeki asıl veriyi okuyalım.

paket.jpg





Örnek olarak, bir paket oluşturalım.


 
Moderatör tarafında düzenlendi:
Öncelikle belirteyim açıklama pentagram arkadaşımızdan alıntıdır bende bu paket olayını çözmeye çalışıyorum güzel bir kaynak

Paket, knight online sunucusu ve istemcisi arasındaki veri alışverişinde kullanılan veri parçalarına verilen addır. Oyun, MMORPG türünde bir oyun olduğu için, oyunun kalbi sunucu programında yatmaktadır. Yani, oyun içerisinde yaptığınız bütün işlemler sizin bilgisayarınız tarafından değil, sunucu bilgisayarı tarafından hesaplanmakta, işlenmekte ve çevrenizdeki oyunculara ve size bu verinin aktarılması sağlanmaktadır. Aklınıza gelebilecek her türlü aktivite(oyuna giriş, sunucu seçimi, karakter seçimi, karakter yaratma, büyü kullanma, envanterde eşya konumu değiştirme ve binlercesi), istemci tarafından bir 'istek' haline getirilerek sunucuya iletiliir. Bu işleme basit bir açıdan yaklaşalım ve oyuna giriş sistemini inceleyelim.

Öncelikle, oyuna girişin gerçekleşebilmesi için sunucunun istemciden iki bilgi edinmesi gerekir. Birincisi, kullanıcı adınız, ikincisi ise parolanız. Bu iki bilgi, bir işlem kodu(opcode) ile birleştirilerek, aşağıdakine benzer bir formda sunucuya iletilir. İşlem kodu, sunucunun ve istemcinin paketin hangi işlem için gönderildiğini anlamasına yarar. Yani, her işlemin (oyuna giriş, karakter seçme vs.) kendine özgü eşsiz bir kodu vardır. Oyuna giriş için bu kod 0xF3'tür. İşlem kodlarının tam listesine shared\packets.h dosyasını açarak erişebilirsiniz.


*** Hidden text: cannot be quoted. ***


Yukarıdaki paket, verinin ağ üzerinde iletilen halidir. Verimize, knight online protokolünün gereksinimi olan HEADER, SIZE ve TAIL verileri eklenmiş durumda. Şimdi bu paketi ayıklayalım, yani içerisindeki asıl veriyi okuyalım.

paket.jpg



*** Hidden text: cannot be quoted. ***


Örnek olarak, bir paket oluşturalım.

*** Hidden text: cannot be quoted. ***

süper içerik teşekkürler
 
Kişi Yorumladı
Öncelikle belirteyim açıklama pentagram arkadaşımızdan alıntıdır bende bu paket olayını çözmeye çalışıyorum güzel bir kaynak

Paket, knight online sunucusu ve istemcisi arasındaki veri alışverişinde kullanılan veri parçalarına verilen addır. Oyun, MMORPG türünde bir oyun olduğu için, oyunun kalbi sunucu programında yatmaktadır. Yani, oyun içerisinde yaptığınız bütün işlemler sizin bilgisayarınız tarafından değil, sunucu bilgisayarı tarafından hesaplanmakta, işlenmekte ve çevrenizdeki oyunculara ve size bu verinin aktarılması sağlanmaktadır. Aklınıza gelebilecek her türlü aktivite(oyuna giriş, sunucu seçimi, karakter seçimi, karakter yaratma, büyü kullanma, envanterde eşya konumu değiştirme ve binlercesi), istemci tarafından bir 'istek' haline getirilerek sunucuya iletiliir. Bu işleme basit bir açıdan yaklaşalım ve oyuna giriş sistemini inceleyelim.

Öncelikle, oyuna girişin gerçekleşebilmesi için sunucunun istemciden iki bilgi edinmesi gerekir. Birincisi, kullanıcı adınız, ikincisi ise parolanız. Bu iki bilgi, bir işlem kodu(opcode) ile birleştirilerek, aşağıdakine benzer bir formda sunucuya iletilir. İşlem kodu, sunucunun ve istemcinin paketin hangi işlem için gönderildiğini anlamasına yarar. Yani, her işlemin (oyuna giriş, karakter seçme vs.) kendine özgü eşsiz bir kodu vardır. Oyuna giriş için bu kod 0xF3'tür. İşlem kodlarının tam listesine shared\packets.h dosyasını açarak erişebilirsiniz.


*** Hidden text: cannot be quoted. ***


Yukarıdaki paket, verinin ağ üzerinde iletilen halidir. Verimize, knight online protokolünün gereksinimi olan HEADER, SIZE ve TAIL verileri eklenmiş durumda. Şimdi bu paketi ayıklayalım, yani içerisindeki asıl veriyi okuyalım.

paket.jpg



*** Hidden text: cannot be quoted. ***


Örnek olarak, bir paket oluşturalım.

*** Hidden text: cannot be quoted. ***

Teşekkürler
 
Kişi Yorumladı
首先,我要声明的是,该解释是来自我们的朋友 Pentagram 的引用,我正在尝试解决这个包问题,这是一个很好的来源。

数据包是 Knight Online 服务器与其客户端之间数据交换中使用的数据片段的名称。由于游戏是一款MMORPG游戏,所以游戏的核心就在于服务器程序。换句话说,你在游戏中进行的所有交易都是由服务器计算机而不是你的计算机计算和处理的,并且这些数据会传输给你周围的玩家和你自己。您能想到的任何活动(进入游戏、服务器选择、角色选择、角色创建、使用咒语、更改库存中的物品位置等等)都会被客户端转换为“请求”并传输到服务器。让我们从一个简单的角度来看待这个过程并检查游戏输入系统。

首先,为了登录游戏,服务器必须从客户端获取两条信息。第一个是您的用户名,第二个是您的密码。这两个信息与操作码组合在一起,以类似于下面的形式传输到服务器。事务代码帮助服务器和客户端了解数据包是为哪个操作而发送的。也就是说,每个动作(进入游戏、选择角色等)都有自己独特的代码。进入游戏的代码是0xF3。您可以通过打开shared\packets.h 文件来访问事务代码的完整列表。


*** 隐藏文本:无法引用。 ***


上面的数据包就是通过网络传输的数据。 Knight Online 协议所需的 HEADER、SIZE 和 TAIL 数据已添加到我们的数据中。现在我们来提取这个数据包,即读取其中的实际数据。

paket.jpg



*** 隐藏文本:无法引用。 ***


作为示例,让我们创建一个包。

*** 隐藏文本:无法引用。 ***

这个
 
Kişi Yorumladı
Öncelikle belirteyim açıklama pentagram arkadaşımızdan alıntıdır bende bu paket olayını çözmeye çalışıyorum güzel bir kaynak

Paket, knight online sunucusu ve istemcisi arasındaki veri alışverişinde kullanılan veri parçalarına verilen addır. Oyun, MMORPG türünde bir oyun olduğu için, oyunun kalbi sunucu programında yatmaktadır. Yani, oyun içerisinde yaptığınız bütün işlemler sizin bilgisayarınız tarafından değil, sunucu bilgisayarı tarafından hesaplanmakta, işlenmekte ve çevrenizdeki oyunculara ve size bu verinin aktarılması sağlanmaktadır. Aklınıza gelebilecek her türlü aktivite(oyuna giriş, sunucu seçimi, karakter seçimi, karakter yaratma, büyü kullanma, envanterde eşya konumu değiştirme ve binlercesi), istemci tarafından bir 'istek' haline getirilerek sunucuya iletiliir. Bu işleme basit bir açıdan yaklaşalım ve oyuna giriş sistemini inceleyelim.

Öncelikle, oyuna girişin gerçekleşebilmesi için sunucunun istemciden iki bilgi edinmesi gerekir. Birincisi, kullanıcı adınız, ikincisi ise parolanız. Bu iki bilgi, bir işlem kodu(opcode) ile birleştirilerek, aşağıdakine benzer bir formda sunucuya iletilir. İşlem kodu, sunucunun ve istemcinin paketin hangi işlem için gönderildiğini anlamasına yarar. Yani, her işlemin (oyuna giriş, karakter seçme vs.) kendine özgü eşsiz bir kodu vardır. Oyuna giriş için bu kod 0xF3'tür. İşlem kodlarının tam listesine shared\packets.h dosyasını açarak erişebilirsiniz.


*** Hidden text: cannot be quoted. ***


Yukarıdaki paket, verinin ağ üzerinde iletilen halidir. Verimize, knight online protokolünün gereksinimi olan HEADER, SIZE ve TAIL verileri eklenmiş durumda. Şimdi bu paketi ayıklayalım, yani içerisindeki asıl veriyi okuyalım.

paket.jpg



*** Hidden text: cannot be quoted. ***


Örnek olarak, bir paket oluşturalım.

*** Hidden text: cannot be quoted. ***

teşekkurlker
 
Kişi Yorumladı
Geri
Üst