List of bRO bugs (and some solutions) | r7735
Posted: 25 May 2011, 09:13
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 :
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:
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
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.
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
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);
}
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";
}
Sorry for my bad english, and thanks for all those years for developing and supporting Openkore.