List of bRO bugs (and some solutions) | r7735

This place is for Unresolvable bug reports only. NOT for asking help!

Moderators: Moderators, Developers

Message
Author
iMikeLance
Moderators
Moderators
Posts: 208
Joined: 01 Feb 2010, 17:37
Noob?: No
Location: Brazil - MG
Contact:

List of bRO bugs (and some solutions) | r7735

#1 Post by iMikeLance »

bRO support in brazilian forums is chaotic nowadays. There are a few bugs that need to be fixed and edited before connecting using SVN version, and people are abusing this by putting malicious code after some members made tutorials teaching how to steal accounts using openkore. Now we have a new excellent forum (http://openkore.com.br/) and an excellent admin (KoreGhost).
We really need this in SVN version, so we can stop this.
So I made a list of what we already fixed, and what needs to be fixed.

Connection
After renewal, bRO changed it's IP, removed secureLogin, added charBlockSize 112 and changed it's sendPassword method to what fRO is using.

tables/servers.txt :

Code: Select all

[Brazil - bRO: Odin]
ip 200.229.50.36
port 6900
master_version 22
version 1
serverType bRO
secureLogin 0
secureLogin_type 0
secureLogin_requestCode
secureLogin_account 0
serverEncoding Western
gameGuard 2
storageEncryptKey 0x050B6F79, 0x0202C179, 0x0E20120, 0x04FA43E3, 0x0179B6C8, 0x05973DF2, 0x07D8D6B, 0x08CB9ED9
addTableFolders bRO
charBlockSize 112

[Brazil - bRO: Thor]
ip 200.229.50.3
port 6900
master_version 22
version 1
serverType bRO_Thor
secureLogin 0
secureLogin_type 0
secureLogin_requestCode
secureLogin_account 0
serverEncoding Western
gameGuard 2
storageEncryptKey 0x050B6F79, 0x0202C179, 0x0E20120, 0x04FA43E3, 0x0179B6C8, 0x05973DF2, 0x07D8D6B, 0x08CB9ED9
addTableFolders bRO
charBlockSize 112
src/Network/Send/bRO.pm
This is just copy/paste from fRO.pm. In brazilian forums, botters are changing serverType from bRO to fRO to make kore work. Heres the code:

Code: Select all

# copy from src/network/send/fro.pm
sub sendClientMD5Hash {
	my ($self) = @_;
	my $msg = pack('v H32', 0x0204, $masterServer->{clientHash});
	$self->sendToServer($msg);
}

sub sendMasterLogin {
	my ($self, $username, $password, $master_version, $version) = @_;
	# Little Hack by 'Technology'
	$self->sendClientMD5Hash() if ($masterServer->{clientHash} != '');
	my $key = pack('C24', (6, 169, 33, 64, 54, 184, 161, 91, 81, 46, 3, 213, 52, 18, 0, 6, 61, 175, 186, 66, 157, 158, 180, 48));
	my $chain = pack('C24', (61, 175, 186, 66, 157, 158, 180, 48, 180, 34, 218, 128, 44, 159, 172, 65, 1, 2, 4, 8, 16, 32, 128));
	my $in = pack('a24', $password);
	my $rijndael = Utils::Rijndael->new();
	$rijndael->MakeKey($key, $chain, 24, 24);
	$password = $rijndael->Encrypt($in, undef, 24, 0);
	# To get out local IP of our connection we need: $self->{net}->{remote_socket}->sockhost();
	my $ip = "3139322e3136382e322e3400685f4c40";
	# To get the MAC we need to use Net::ARPing or Net::Address::Ethernet or even Net::Ifconfig::Wrapper, that are not bundeled in Win Distro.
	my $mac = "31313131313131313131313100";				# May-be Get it from Network Connection?
	my $isGravityID = 0;
	my $msg = pack('v V a24 a24 C H32 H26 C', 0x02B0, version(), $username, $password, $master_version, $ip, $mac, $isGravityID);
	$self->sendToServer($msg);

}
Poseidon
bRO uses gameGuard and we need poseidon Server to be able to connect.
The problem is that botters are'nt using poseidon from SVN version, they're using a very old version (2.0.7 i think) from the original openkore.com.br(roger, illusion).
I was able to fix SVN poseidon by removing some lines, but there's another thing: we're using an old Ragexe.exe(pre-renewal i think, i'm using a backup i had) because LevelUp! changed charBlockSize to 128.
The problem can also be seen in this topic: http://forums.openkore.com/viewtopic.php?f=37&t=12596.
EternalHarvest posted a possible fix, and i don't know if it worked in pRO but it doesn't in bRO.

To make it work with old Ragexe.exe the patch below is needed
src/Poseidon/RagnarokServer.pm

Code: Select all

sub query {
	my ($self, $packet) = @_;
	my $clients = $self->clients();

	for (my $i = 0; $i < @{$clients}; $i++) {
		if ($clients->[$i]) {
			#if ($clients->[$i]{connectedToMap}) { # removed this line
                		$clients->[$i]->send($packet);
                		$self->{state} = 'requesting';
                		return;
			#}  # removed this line
		}
	}
	print "Error: no Ragnarok Online client connected.\n";
}
At the time of this post, bRO is at weekly maintenance. I am able to extract recvpackets and should add it, along with items.txt, to this post later.
Sorry for my bad english, and thanks for all those years for developing and supporting Openkore.

KoreGhost
Developers
Developers
Posts: 123
Joined: 28 Mar 2011, 12:48
Noob?: No
Location: Brazil
Contact:

Re: List of bRO bugs (and some solutions) | r7735

#2 Post by KoreGhost »

EternalHarvest post sent a PM for me asking on one mine and the correction of servertype for fRO. I explained for it that of this form it only obtains the connection in the server bRO exactly with release more current.

It seems that it was Mushroom that carried through the translation and sending of the packages in pt-br for kore correct? E it this half absentee of the world of the Kore after exelentes contributions for kore-br, maybe that they could not include plus some users with capacity for sending of these updates?

Sorry for english trash :lol:

EternalHarvest
Developers
Developers
Posts: 1798
Joined: 05 Dec 2008, 05:42
Noob?: Yes

Re: List of bRO bugs (and some solutions) | r7735

#3 Post by EternalHarvest »

Updated server information and bRO serverType (r7737).

As on Poseidon, let's try to fix it properly. PM me (as it may include private information) example of map login packet (after character selection screen, may be 0072, 0436 or other) of your client, and post here recvpackets.
KoreGhost wrote:maybe that they could not include plus some users with capacity for sending of these updates?
Ask kLabMouse for svn access.

User avatar
kLabMouse
Administrator
Administrator
Posts: 1301
Joined: 24 Apr 2008, 12:02

Re: List of bRO bugs (and some solutions) | r7735

#4 Post by kLabMouse »

Yep. We RLZ need Supporters for Official Server.
So Just Ask for SVN Access.
Just a few simple rules:
1) Have SF.net account so I can add you
2) Do not Abuse code, else I'll roule back and kick you from members
3) Inform Us when you want to quit or have a vacation and can't support the server entry.

Post Reply