EMO Style ForumPro - Hos Geldiniz
Understanding the Knight Online TBL format Uyeols10

Join the forum, it's quick and easy

EMO Style ForumPro - Hos Geldiniz
Understanding the Knight Online TBL format Uyeols10
EMO Style ForumPro - Hos Geldiniz
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Giriş yap

Şifremi unuttum

Istatistikler
Toplam 203 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: crayzboy76

Kullanıcılarımız toplam 1186 mesaj attılar bunda 862 konu
Tarıyıcı
 Kapı
 Indeks
 Üye Listesi
 Profil
 SSS
 Arama
Arama
 
 

Sonuç :
 


Rechercher çıkıntı araştırma

RSS akısı


Yahoo! 
MSN 
AOL 
Netvibes 
Bloglines 


Anahtar-kelime

pointer  loot  kutu  

Kimler hatta?
Toplam 18 kullanıcı online :: 0 Kayıtlı, 0 Gizli ve 18 Misafir

Yok

[ Bütün listeye bak ]


Sitede bugüne kadar en çok 217 kişi C.tesi Tem. 29, 2017 1:46 am tarihinde online oldu.
En son konular
» İnternetten Para Kazandıran Oyun ! Ödeme Alt Limiti Yok ! DEV KONU
Understanding the Knight Online TBL format I_icon_minitimeCuma Ağus. 29, 2014 8:33 am tarafından Hello EMO

» goldenchase.net maden yaparak para kazanma
Understanding the Knight Online TBL format I_icon_minitimeCuma Ağus. 29, 2014 8:18 am tarafından Hello EMO

» etichal hacker görsel egitim seti
Understanding the Knight Online TBL format I_icon_minitimeÇarş. Ağus. 06, 2014 4:57 am tarafından Hello EMO

» KO TBL Source C#
Understanding the Knight Online TBL format I_icon_minitimePtsi Ara. 09, 2013 6:36 am tarafından Hello EMO

» x86 Registers
Understanding the Knight Online TBL format I_icon_minitimeC.tesi Ağus. 24, 2013 5:02 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de WYD
Understanding the Knight Online TBL format I_icon_minitimeÇarş. Tem. 10, 2013 7:25 am tarafından Hello EMO

» [Tutorial] Pegando Address, Pointers de CS Metodo²
Understanding the Knight Online TBL format I_icon_minitimeÇarş. Tem. 10, 2013 7:23 am tarafından Hello EMO

» [Tutorial] Aprendendo basico deASM OLLYDBG
Understanding the Knight Online TBL format I_icon_minitimeÇarş. Tem. 10, 2013 7:22 am tarafından Hello EMO

» Basic C# DLL injector
Understanding the Knight Online TBL format I_icon_minitimePtsi Tem. 08, 2013 7:48 am tarafından Hello EMO

Reklam

Understanding the Knight Online TBL format

Aşağa gitmek

Understanding the Knight Online TBL format Empty Understanding the Knight Online TBL format

Mesaj tarafından Hello EMO Çarş. Şub. 23, 2011 8:24 am

[quote name='twostars' timestamp='1296849756' post='1831']
The general KO TBL format's actually pretty simple.
A TBL is comprised of columns, and rows. That's a table - nothing complex there, so let's take a look at the header of an unencrypted TBL and see what we can pull from it.

1.298 item_org_us.tbl:
Understanding the Knight Online TBL format TBL

The first byte you'll see is 0x25, or in decimal: 37.
As you'll find with any TBL editor, there's 37 columns in the 1.298 TBLs, which brings us to the (somewhat assumptive, but otherwise correct) correct notion that the first byte is the column count. Actually, it's a DWORD/int, so it's 4 bytes - so it includes the following 3 0x00 bytes.

Typically, when it declares a count, what follows will be a series of bytes, the number of which dependant on the count, so with that in mind, let's look at the following bytes (which seem to be in a pattern):
Understanding the Knight Online TBL format TBL2

You'll note I've gone through and selected 37 (our column count!) groups of 4 bytes which, you can see, lead up to the next section (pattern changes).
These groups of 4 bytes, or again, DWORDS/ints are the column's data-types. Each data-type is represented by a DWORD, they're represented as follows:

1 - signed byte
2 - unsigned byte
3 - signed short
4 - unsigned short
5 - signed int
6 - unsigned int
7 - string (string length defined by prefixed int)
8 - float

These needs to be stored when attempting to interpret the data, otherwise from here on out things will get very tricky.

So, for this TBL, following these rules our columns are:

6 - unsigned int (4 bytes)
2 - unsigned byte (1 byte)
7 - string (length = 4 bytes + the string's actual length, which will be what those prefixed 4 bytes are defined as)
7 - string (length = 4 bytes + the string's actual length, which will be what those prefixed 4 bytes are defined as)
6 - unsigned int (4 bytes)
2 - unsigned byte (1 byte)
6 - unsigned int (4 bytes)
6 - unsigned int (4 bytes)
6 - unsigned int (4 bytes)
6 - unsigned int (4 bytes)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
4 - unsigned short (2 bytes)
4 - unsigned short (2 bytes)
4 - unsigned short (2 bytes)
4 - unsigned short (2 bytes)
4 - unsigned short (2 bytes)
5 - signed int (4 bytes)
5 - signed int (4 bytes)
4 - unsigned short (2 bytes)
2 - unsigned byte (1 byte)
6 - unsigned int (4 bytes)
6 - unsigned int (4 bytes)
1 - signed byte (1 byte)
1 - signed byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)
2 - unsigned byte (1 byte)

Okay, so, so far the structure is:
* int - column count
* int - (for each column) column's data-type

The next bit is just as easy. It's exactly the same. The TBL needs to know how many rows there are, so the next part is obviously.. the row count (again, a DWORD/int [4 bytes]):
Understanding the Knight Online TBL format TBL3

As you can see, the first 4 bytes there are the row count (1198). The same deal with the columns, there will be that many rows to follow. They will obviously follow the column structure, otherwise they wouldn't be a table! Razz

So, let's go through the row as a demonstration:
Understanding the Knight Online TBL format TBL4

unsigned int (4 bytes) = 30 25 90 06 = 110110000
unsigned byte (1 byte) = 00 = 0

string (length = 4 bytes + the string's actual length, which will be what those prefixed 4 bytes are defined as)
= length = 06 00 00 00 = 6
= string (6 bytes long) = 44 61 67 67 65 72 = Dagger

string (length = 4 bytes + the string's actual length, which will be what those prefixed 4 bytes are defined as)
= length = 00 00 00 00 = 0
= string (0 bytes long) = (no string)

unsigned int (4 bytes) = 00 00 00 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned int (4 bytes) = B8 03 A8 00 = 11011000
unsigned int (4 bytes) = B8 03 A8 00 = 11011000
unsigned int (4 bytes) = 0E 00 00 00 = 14
unsigned int (4 bytes) = 2D 01 00 00 = 301
unsigned byte (1 byte) = 0B = 11
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned short (2 bytes) = 06 00 = 6
unsigned short (2 bytes) = 6D 00 = 109
unsigned short (2 bytes) = 0A 00 = 10
unsigned short (2 bytes) = 14 00 = 20
unsigned short (2 bytes) = A0 0F = 4000
signed int (4 bytes) = 7F 01 00 00 = 383
signed int (4 bytes) = 00 00 00 00 = 0
unsigned short (2 bytes) = 00 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned int (4 bytes) = 00 00 00 00 = 0
unsigned int (4 bytes) = 00 00 00 00 = 0
signed byte (1 byte) = 08 = 8
signed byte (1 byte) = 63 = 99
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 42 = 66
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = 00 = 0
unsigned byte (1 byte) = C9 = 201
unsigned byte (1 byte) = 01 = 1

..and we're done!

Take a look at the same file in a TBL editor:
Understanding the Knight Online TBL format TBL5

As you can't see it all in that screenshot, here's the row:
110110000 0 Dagger 0 0 11011000 11011000 14 301 11 0 0 0 0 6 109 10 20 4000 383 0 0 0 0 0 8 99 0 0 0 0 66 0 0 201 1

... you can see that we definitely got it! Razz

The rows are the last part of the TBL's structure, it really is that simple!

The final structure (it's really complex isn't it?!!):

* int - column count
* int - (for each column) column's data-type
* int - row count
* (each row following the column structure defined above)

It's really pretty straightforward. Smile
[/quote]
Hello EMO
Hello EMO
EMO Team
EMO Team

Cinsiyet : Erkek
Burçlar : Yay
Yılan
Mesaj Sayısı : 935
Puan : 384443
Rep Puanı : 18
Doğum tarihi : 28/11/89
Kayıt tarihi : 21/07/09
Yaş : 34
Nerden : EMO WorlD
İş/Hobiler : RCE Student / Game Hacking / Learn Beginner C#,C++,Delphi
Lakap : EMO

https://emostyle.yetkinforum.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz