OpenKore / openkore

A free/open source client and automation tool for Ragnarok Online
http://openkore.com
Other
1.28k stars 1.04k forks source link

"friend's packets" could freeze XKore2 #3331

Open c4c1n6kr3m1 opened 3 years ago

c4c1n6kr3m1 commented 3 years ago

------------------ Openkore Issues Template ------------------

may be you knew it

guild_members_list doesn't send name friend_list doesn't send name friend_logon send name

<< Received packet: 0201 - Friend List [20 bytes] Dec 27 16:38:23 2020 0> 01 02 14 00 7A 8A 1E 00 17 57 02 00 EB 8D 1E 00 ....z....W...... 16> D6 59 02 00 .Y.. [Dec 27 16:38:23 2020.77] Received packet: 0201 Handler: friend_list [Dec 27 16:38:23 2020.78] ================================================ << Received packet: 0206 - Friend In/Out [35 bytes] Dec 27 16:38:23 2020 0> 06 02 EB 8D 1E 00 D6 59 02 00 00 4B 68 75 6D 65 .......Y...FUCKO 16> 69 72 61 00 00 00 00 00 00 00 00 00 00 00 00 00 FFF............. 32> 00 00 00

ya4ept commented 3 years ago

i think the problem is only in the friend_list package: 01 02 - heading 14 00 7A 8A - accountID 1E 00 17 57 - charID 02 00 EB 8D 1E 00 D6 59 02 00 -name, should be 24 bytes long, but there are only 10..

need a test account

c4c1n6kr3m1 commented 3 years ago

no https://github.com/rathena/rathena/blob/master/src/map/clif.cpp 01 02 14 00 length 7A 8A 1E 00
17 57 02 00 EB 8D 1E 00 D6 59 02 00

2 friends on list

sub send_friends_list use old packets style structure , the problem is to make it work for both old and new structure, (both use same header)

client could freeze while trying to connect to Xkore2

c4c1n6kr3m1 commented 3 years ago

create variable on config....hmm... i am thinking to use 0206 length from recvpacket as differentiator since this 0206 only for 1 name.

ya4ept commented 3 years ago

Yes you are right. We do not know how to extract information from a package:

0201 <packet len>.W { <account id>.L <char id>.L }*

i think we can add function "friend_list" to server type "RagexeRE_2018_02_21a"

What serverType are you using? Can you send the settings to the server?

alisonrag commented 3 years ago

Need to convert friend list from hardcoded to reconstruct in xkore2.pm and add "friend_list ID" to packet handler in the correct servertype

alisonrag commented 3 years ago

Not just friend list, actor_list, and some other packets that changed throughout the time