Register for your free account! | Forgot your password?

You last visited: Today at 13:32

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



0x3013 packet problem!

Discussion on 0x3013 packet problem! within the SRO Private Server forum part of the Silkroad Online category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2016
Posts: 289
Received Thanks: 67
0x3013 packet problem!

hello epvpers!
How can i skip Read Item part in 3013 packet!
I want to read Skill in Slotbar (F1~F4) step by step but i only get it after parse anything in pck 0x3013 bcs they in end of 3013 packet.
!!!
Thank's
hoangphan7 is offline  
Old 06/26/2019, 21:39   #2

 
sarkoplata's Avatar
 
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
There are no offsets to jump, you have to go by parsing.
You can use a few cheats, which I do not recommend, for example get the uniqueID from 0x3020. Search the entire packet for the unique ID to get where it's located. I dont know where the Slotbar info is (I didn't even know it was in 3013) but you may use something like this.
sarkoplata is offline  
Old 06/26/2019, 22:15   #3
 
Isoline*'s Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 667
Received Thanks: 348
Quote:
Originally Posted by hoangphan7 View Post
hello epvpers!
How can i skip Read Item part in 3013 packet!
I want to read Skill in Slotbar (F1~F4) step by step but i only get it after parse anything in pck 0x3013 bcs they in end of 3013 packet.
!!!
Thank's
There is no reason why you should skip the item Inventory parsing part.
May i ask why do you want to read the f1-f4 slot bars?
As far as i can recall its at the end of the packet, there are a few things you could do to "jump" to it, but..idk...yikes:S
Isoline* is offline  
Old 06/26/2019, 22:56   #4
 
elite*gold: 0
Join Date: Apr 2016
Posts: 289
Received Thanks: 67
Quote:
Originally Posted by Isoline* View Post
There is no reason why you should skip the item Inventory parsing part.
May i ask why do you want to read the f1-f4 slot bars?
As far as i can recall its at the end of the packet, there are a few things you could do to "jump" to it, but..idk...yikes:S
i want to make small bot (ingame feature). read skill in slotbar (without reading inventory item...).
SomePeople, they dont like using Bot (maybe they dont know using bot because of knowledge other language, machine...etc)
i want to make it easily. put skill to F1/F2 (att F1, buff F2). Go to train place then type !auto on and auto will start .

Quote:
Originally Posted by sarkoplata View Post
There are no offsets to jump, you have to go by parsing.
You can use a few cheats, which I do not recommend, for example get the uniqueID from 0x3020. Search the entire packet for the unique ID to get where it's located. I dont know where the Slotbar info is (I didn't even know it was in 3013) but you may use something like this.
How can i Jump to CharUniqueID in 0x3013
i only know read sequence from start to finish @@
hoangphan7 is offline  
Old 06/27/2019, 03:51   #5
 
Isoline*'s Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 667
Received Thanks: 348
Quote:
Originally Posted by hoangphan7 View Post
i want to make small bot (ingame feature). read skill in slotbar (without reading inventory item...).
SomePeople, they dont like using Bot (maybe they dont know using bot because of knowledge other language, machine...etc)
i want to make it easily. put skill to F1/F2 (att F1, buff F2). Go to train place then type !auto on and auto will start .



How can i Jump to CharUniqueID in 0x3013
i only know read sequence from start to finish @@
You can "cheat" by searching your UniqueID in the 0x3013 byte array and start an index from there, calculate whatever you want, but thats ill-advised.
Isoline* is offline  
Old 06/27/2019, 05:03   #6
 
elite*gold: 0
Join Date: Apr 2016
Posts: 289
Received Thanks: 67
Quote:
Originally Posted by Isoline* View Post
You can "cheat" by searching your UniqueID in the 0x3013 byte array and start an index from there, calculate whatever you want, but thats ill-advised.
i already saw UniqueID in 3013 but Can you write some line to continue reading from (Character Unique ID) index? i can't visualization which i do @@~
hoangphan7 is offline  
Old 06/27/2019, 05:23   #7
 
Isoline*'s Avatar
 
elite*gold: 0
Join Date: May 2006
Posts: 667
Received Thanks: 348
Quote:
Originally Posted by hoangphan7 View Post
i already saw UniqueID in 3013 but Can you write some line to continue reading from (Character Unique ID) index? i can't visualization which i do @@~
Get your unique ID from 0x3020, get the 0x3013 packet dump in a byte[]
write a function that finds a byte[] pattern within another byte[] and returns an int (position index), once you have the position you can simply calculate and go from there.

Personally i would tell you to parse the entire packet like i did, but this is up to you.

I will fairly warn you that this is based on a fixed amount of bytes and if you dare to use this method even a single byte change would screw up your byte reading.
Isoline* is offline  
Thanks
1 User
Old 06/27/2019, 07:01   #8
 
JellyBitz's Avatar
 
elite*gold: 0
Join Date: Sep 2018
Posts: 423
Received Thanks: 953
You have all source and all data... why no start reading from character name? It's closer to the end. And it's more trusty worth than unique ID. Again you will need to read previously his character name selected from client 0x7001.

You are asking for a little push, some of code right? something fast but clean :
PHP Code:
public int FindBytes(byte[] data,byte[] pattern)
{
    
// just in case
    
if(data.Length pattern.Length)
        return -
1;
    
// keep data to compare
    
byte[] temp = new byte[pattern.Length];
    
// read byte per byte
    
int maxBytes data.Length pattern.Length 1;
    for (
int i 0maxBytes i++)
    {
        
// first byte found!
        
if(temp[i] == data[i]){
            
bool found true;
            
// move all bytes and compare rigth there
            
for (int t 1temp.Lengtht++)
            {
                
temp[t] = data[i];
                if (
temp[t] != pattern[t])
                {
                    
found false;
                    break;
                }
            }
            
// exactly the same?
            
if (found)
                return 
i;
        }
    }
    return -
1;

Then using like :
PHP Code:
// data : bytes taken from 0x3013
int pos FindBytes(data,Encoding.ASCII.GetBytes("Jelly"));
if(
pos != -1)
{
    
// consider two bytes from length string
    
pos -= 2;
    
// Continue reading :)

JellyBitz is offline  
Thanks
1 User
Old 06/27/2019, 13:34   #9
 
elite*gold: 0
Join Date: Apr 2016
Posts: 289
Received Thanks: 67
Quote:
Originally Posted by JellyBitz View Post
You have all source and all data... why no start reading from character name? It's closer to the end. And it's more trusty worth than unique ID. Again you will need to read previously his character name selected from client 0x7001.

You are asking for a little push, some of code right? something fast but clean :
PHP Code:
public int FindBytes(byte[] data,byte[] pattern)
{
    
// keep data to compare
    
byte[] temp = new byte[pattern.Length];
    
// read byte per byte
    
for (int i 0data.Lengthi++)
    {
        
bool found true;
        
// move all bytes and compare rigth there
        
for (int t 0temp.Length && data.Lengtht++)
        {
            if (
temp[t] != pattern[t])
            {
                
found false;
            }
            
temp[t] = data[i];
        }
        
// exactly the same?
        
if (found)
            return 
i;
    }
    return -
1;

Then using like :
PHP Code:
// data : bytes taken from 0x3013
int pos FindBytes(data,Encoding.ASCII.GetBytes("Jelly"));
if(
pos != -1)
{
    
// consider two bytes from length string
    
pos -= 2;
    
// Continue reading :)


Yeah. Good idea
Thank's all <3 Now i will try
hoangphan7 is offline  
Old 06/28/2019, 02:02   #10

 
sarkoplata's Avatar
 
elite*gold: 166
Join Date: Apr 2009
Posts: 2,339
Received Thanks: 2,661
You can use BoyerMoore algorithm for a fast search, doubt it's required/good for an array of this size though.
sarkoplata is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
0x3013 mhtc packet
10/04/2017 - SRO Coding Corner - 1 Replies
Well atm im trying to get the full structure. I stuck at inventory stuff. Is there a way to separate item types? (Renttype). I remember renttypes exist in vsro chardata. But not in ecsro/mhtc. Or do i miss smthing? chartype =1907 charname_length =9 CharName =875 volume =17 curlevel =3
Parsing Quests in 0x3013 (vSRO 188)
06/29/2015 - SRO Coding Corner - 3 Replies
Hello, I'm stuck somewhere in 0x3013 parsing (self-spawn packet). I reached the quests part and I couldn't parse it correctly. There is a "completed quests" part which is just a WORD and a for loop with DWORD for each one, but what comes next is the "Active/Accepted quests". Does anyone have any clue about that part? Part of my code : ushort CompletedQuestCount = PacketItem.ReadUInt16(); for (int q = 0; q < CompletedQuestCount;q++...
Understanding the Packet System - Basics of a Packet explained
11/03/2012 - Cabal Online - 30 Replies
Read the advice first... *****************UPDATED 12/11/2011********************************* **** ADDED VB6 PROXY BOT SOURCE-CODE, WORKING EXAMPLE OF PROXY BOT****** ************************************************* ***************** The following CONSTANTS have been flagged, this means they appear in EVERY Packet exchange from client to server and server to client Red = Packet Id - Each packet has a unique ID number, in this case AA02, Each Packet id Relates to a specific...
[Request] Packet Structure for CharData Packet
05/16/2011 - Silkroad Online - 4 Replies
can someone tell me which structure the CharData packet has? i would really appreciate this, since im still noob in such things. its just too high for me/ too much information for my head. :handsdown: S->C(3013)...
[Question] Packet data , packet editing ??
10/13/2009 - 9Dragons - 2 Replies
I would like to know : What is packet data? How do i get the address for hacking a item in game? How to use it ??



All times are GMT +1. The time now is 13:33.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.