[Sharing] Kiss Rank Packets sniff.

05/10/2013 18:26 abdoumatrix#1
Hey all.

somehow i handled to be in the Kiss rank (New Server:D).

So i sniff the rank to try to make it and i decided to share my sniffing so it could help someone :D

PHP Code:
50 00 7F 04 02 00 00 00 12 C5 C9 01 00 00 00 00 01 00 00 00 00 00 00 00 37 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 CA 63 0F 00 CA 63 0F 00 41 62 64 F4 B5 4D 61 86 AE 69 78 00 00 00 00 00 41 62 64 F4 B5 4D 61 86 AE 69 78 00 00 00 00 00 

PHP Code:
48 02 7F 04 01 00 00 00 12 C5 C9 01 37 00 00 00 0A 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0C 00 00 00 00 00 00 00 F7 48 0F 00 F7 48 0F 00 7C B0 95 2E 5A E2 68 A5 6D EB AE 2E 95 B0 7C 00 7C B0 95 2E 5A E2 68 A5 6D EB AE 2E 95 B0 7C 00 02 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 D1 52 0F 00 D1 52 0F 00 21 7E 2E A7 41 6E 54 6F A7 2E 7E 21 00 00 00 00 21 7E 2E A7 41 6E 54 6F A7 2E 7E 21 00 00 00 00 03 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 D0 5D 0F 00 D0 5D 0F 00 73 74 6F 70 2A 61 6E 61 2A 61 6C 2A 74 6F 70 00 73 74 6F 70 2A 61 6E 61 2A 61 6C 2A 74 6F 70 00 04 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 15 43 0F 00 15 43 0F 00 44 65 61 74 68 2E 61 6E 67 65 6C 00 00 00 00 00 44 65 61 74 68 2E 61 6E 67 65 6C 00 00 00 00 00 05 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 03 53 0F 00 03 53 0F 00 4F 72 6E 73 74 65 69 6E 00 00 00 00 00 00 00 00 4F 72 6E 73 74 65 69 6E 00 00 00 00 00 00 00 00 06 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 25 56 0F 00 25 56 0F 00 56 69 72 FC 73 00 00 00 00 00 00 00 00 00 00 00 56 69 72 FC 73 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 8F 42 0F 00 8F 42 0F 00 50 65 6E 67 61 72 6F 6F 00 00 00 00 00 00 00 00 50 65 6E 67 61 72 6F 6F 00 00 00 00 00 00 00 00 08 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 44 4B 0F 00 44 4B 0F 00 3E 53 63 F4 72 69 70 F4 6E EB 3C 00 00 00 00 00 3E 53 63 F4 72 69 70 F4 6E EB 3C 00 00 00 00 00 09 00 00 00 00 00 00 00 03 00 00 00 00 00 00 00 66 53 0F 00 66 53 0F 00 41 7C 65 58 00 00 00 00 00 00 00 00 00 00 00 00 41 7C 65 58 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 B2 46 0F 00 B2 46 0F 00 79 6F 75 73 73 69 66 5F 24 24 99 24 00 00 00 00 79 6F 75 73 73 69 66 5F 24 24 99 24 00 00 00 00 

PHP Code:
50 00 7F 04 04 00 00 00 32 71 CB 01 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 0F 00 00 00 00 00 00 00 C6 4F 0F 00 C6 4F 0F 00 41 73 74 72 61 65 61 00 00 00 00 00 00 00 00 00 41 73 74 72 61 65 61 00 00 00 00 00 00 00 00 00 
i wish if it help someone.:o
05/11/2013 18:50 Mero.El.Omda#2
make analyse it and share to save our time
05/11/2013 23:36 abdoumatrix#3
Quote:
Originally Posted by Mero.El.Omda View Post
make analyse it and share to save our time
i think it is the same just like chi rank.
put i think i missed another thing in my sturucture to be done. :D

i think this could be right.
PHP Code:
 public static byte[] BuildPacketRankKiss(Client.GameState clientuint uidushort pagenumber)
        {

            
MemoryStream strm = new MemoryStream();
            
BinaryWriter wtr = new BinaryWriter(strm);
            
wtr.Write((ushort)0);
            
wtr.Write((ushort)1151);
            
wtr.Write((uint)1);
            
wtr.Write((uint)uid);
            
wtr.Write((ushort)0x64);
            
wtr.Write((ushort)pagenumber);
            if (
uid == 30000402)//1c9c512
                
wtr.Write((uint)(Math.Min(xxChi.Dragonss.Count10)));
            if (
uid == 30000502)//notsure
                
wtr.Write((uint)(Math.Min(xxChi.Phnixss.Count10)));
            if (
uid == 30000602)//notsure
                
wtr.Write((uint)(Math.Min(xxChi.Tigerss.Count10)));
            if (
uid == 30000702)//notsure
                
wtr.Write((uint)(Math.Min(xxChi.Turtless.Count10)));
            
wtr.Write((uint)0);
            
#region Dragon
            
if (uid == 30000402)
            {
                for (
int b = (int)pagenumber 10<= pagenumber 10 Math.Min(10xxChi.Dragonss.Count) - 1b++)
                {
                    if (
pagenumber == 1)
                    {
                        if (
xxChi.Dragonss.Count 11)
                        {
                            break;
                        }
                    }
                    if (
pagenumber == 2)
                    {
                        if (
xxChi.Dragonss.Count 21)
                        {
                            break;
                        }
                    }
                    if (
pagenumber == 3)
                    {
                        if (
xxChi.Dragonss.Count 31)
                        {
                            break;
                        }
                    }
                    if (
pagenumber == 4)
                    {
                        if (
xxChi.Dragonss.Count 41)
                        {
                            break;
                        }
                    }
                    if (
pagenumber == 5)
                    {
                        if (
xxChi.Dragonss.Count 51)
                        {
                            break;
                        }
                    }
                    
wtr.Write((uint)xxChi.Dragonss[b].rank);
                    
wtr.Write((uint)0);
                    
wtr.Write((uint)xxChi.Dragonss[b].dragons);
                    
//  wtr.Write((uint)(client.Entity.hpdro + client.Entity.strikdro + client.Entity.pstrikdro + client.Entity.pattackdro));
                    
wtr.Write((uint)0);
                    
// wtr.Write((uint)uid2);
                    //  wtr.Write((uint)uid2); 
                    
wtr.Write((uint)client.UID);
                    
wtr.Write((uint)client.UID);


                    for (
int s 016s++)
                    {
                        if (
xxChi.Dragonss[b].name.Length)
                        {
                            
wtr.Write((byte)xxChi.Dragonss[b].name[s]);
                        }
                        else
                            
wtr.Write((byte)0);
                    }
                    for (
int s 016s++)
                    {
                        if (
xxChi.Dragonss[b].name.Length)
                        {
                            
wtr.Write((byte)xxChi.Dragonss[b].name[s]);
                        }
                        else
                            
wtr.Write((byte)0);

                    }
                }
            }
            
#endregion Dragon            
            
int packetlength = (int)strm.Length;
            
strm.Position 0;
            
wtr.Write((ushort)packetlength);
            
strm.Position strm.Length;
            
wtr.Write(ASCIIEncoding.ASCII.GetBytes("TQServer"));
            
strm.Position 0;
            
byte[] buf = new byte[strm.Length];
            
strm.Read(buf0buf.Length);
            
wtr.Close();
            
strm.Close();
            return 
buf;
        } 
[Only registered and activated users can see links. Click Here To Register...]
05/12/2013 08:50 MrCaSpR#4
Quote:
Originally Posted by abdoumatrix View Post
i think it is the same just like chi rank.
put i think i missed another thing in my sturucture to be done. :D

i think this could be right.

[Only registered and activated users can see links. Click Here To Register...]
Gratz My bro To make it You know i like Rank Kiss and i tell you more To make It :p:)
05/12/2013 12:49 abdoumatrix#5
this is one the structure u have to code the first sniff
where offest 4 = 2.
05/12/2013 15:28 -Shunsui-#6
Packet is the same for Chi Ranking & Flower Ranking,

Code:
public class DynamicRankingPacket
    {
        private Byte[] mData;
        private Int32 Offset = 24;
        public static implicit operator Byte[](DynamicRankingPacket d) { return d.mData; }

        public DynamicRankingPacket()
        {
            mData = new Byte[32];
            PacketConstructor.Write((UInt16)mData.Length, 0, mData);
            PacketConstructor.Write((UInt16)1151, 2, mData);
        }
        public DynamicRankingPacket(Byte[] d)
        {
            this.mData = new Byte[d.Length];
            d.CopyTo(this.mData, 0);
        }
        public DynamicRankingType Type
        {
            get { return (DynamicRankingType)BitConverter.ToUInt32(mData, 4); }
            set { PacketConstructor.Write((UInt32)value, 4, mData); }
        }
        public ChiGate ChiGate
        {
            get { return (ChiGate)mData[8]; }
            set { mData[8] = (Byte)value; }
        }
        public DynamicRankingSType SecondaryType
        {
            get { return (DynamicRankingSType)BitConverter.ToUInt32(mData, 8); }
            set { PacketConstructor.Write((UInt32)value, 8, mData); }
        }

        public UInt32 Max//Max?
        {
            get { return BitConverter.ToUInt32(mData, 12); }
            set { PacketConstructor.Write((UInt32)value, 12, mData); }
        }

        public UInt32 Count
        {
            get { return BitConverter.ToUInt32(mData, 16); }
            set { PacketConstructor.Write((UInt32)value, 16, mData); }
        }

        public void Append(UInt32 Ranking, UInt32 Amount, UInt32 Identifier, String Name)
        {
            Byte[] tmp = new Byte[mData.Length];
            mData.CopyTo(tmp, 0);

            mData = new Byte[tmp.Length + 56];
            Buffer.BlockCopy(tmp, 0, mData, 0, tmp.Length);

            PacketConstructor.Write((UInt16)mData.Length, 0, mData);

            Count++;
            PacketConstructor.Write((UInt32)Ranking, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)0, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Amount, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)0, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Identifier, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Identifier, Offset, mData); Offset += 4;
            PacketConstructor.WriteNoLength(Name, Offset, mData); Offset += 16;
            PacketConstructor.WriteNoLength(Name, Offset, mData); Offset += 16;
        }
    }
05/12/2013 15:59 abdoumatrix#7
Quote:
Originally Posted by -Shunsui- View Post
Packet is the same for Chi Ranking & Flower Ranking,

Code:
public class DynamicRankingPacket
    {
        private Byte[] mData;
        private Int32 Offset = 24;
        public static implicit operator Byte[](DynamicRankingPacket d) { return d.mData; }

        public DynamicRankingPacket()
        {
            mData = new Byte[32];
            PacketConstructor.Write((UInt16)mData.Length, 0, mData);
            PacketConstructor.Write((UInt16)1151, 2, mData);
        }
        public DynamicRankingPacket(Byte[] d)
        {
            this.mData = new Byte[d.Length];
            d.CopyTo(this.mData, 0);
        }
        public DynamicRankingType Type
        {
            get { return (DynamicRankingType)BitConverter.ToUInt32(mData, 4); }
            set { PacketConstructor.Write((UInt32)value, 4, mData); }
        }
        public ChiGate ChiGate
        {
            get { return (ChiGate)mData[8]; }
            set { mData[8] = (Byte)value; }
        }
        public DynamicRankingSType SecondaryType
        {
            get { return (DynamicRankingSType)BitConverter.ToUInt32(mData, 8); }
            set { PacketConstructor.Write((UInt32)value, 8, mData); }
        }

        public UInt32 Max//Max?
        {
            get { return BitConverter.ToUInt32(mData, 12); }
            set { PacketConstructor.Write((UInt32)value, 12, mData); }
        }

        public UInt32 Count
        {
            get { return BitConverter.ToUInt32(mData, 16); }
            set { PacketConstructor.Write((UInt32)value, 16, mData); }
        }

        public void Append(UInt32 Ranking, UInt32 Amount, UInt32 Identifier, String Name)
        {
            Byte[] tmp = new Byte[mData.Length];
            mData.CopyTo(tmp, 0);

            mData = new Byte[tmp.Length + 56];
            Buffer.BlockCopy(tmp, 0, mData, 0, tmp.Length);

            PacketConstructor.Write((UInt16)mData.Length, 0, mData);

            Count++;
            PacketConstructor.Write((UInt32)Ranking, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)0, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Amount, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)0, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Identifier, Offset, mData); Offset += 4;
            PacketConstructor.Write((UInt32)Identifier, Offset, mData); Offset += 4;
            PacketConstructor.WriteNoLength(Name, Offset, mData); Offset += 16;
            PacketConstructor.WriteNoLength(Name, Offset, mData); Offset += 16;
        }
    }
aha i know

but what is the difference if i use somethin like this


and something like my codes