Sie sind auf Seite 1von 19

RF 2.2.3.

2 local server setup guide


Introduction:
What follows is a method (determined by internet searching and trial and error) to setup an RF Online 2.2.3.2 server for a local network. What worked for this system may not work for others. This is by no means a definitive guide; there will most likely be better options in setting up the server. There will be security and stability errors that should not be exposed to the internet without testing and correction. If errors are encountered, search appropriate forums and try manually troubleshooting; all trial and error was completed using the tools in the Recommended tools for modifying/debugging: list. Do not pass up the opportunity to broaden knowledge. Feel free to modify this guide, just maintain a list of editors.

System:
The system was configured to use a VMware Workstation virtual machine to run the RF server, with a PlayRF.com client (modified launcher) running on the host. This way Wireshark could be used to troubleshoot.

Host:
Windows 7 Ultimate x64 Intel i7 920 12GB RAM 30GB free HDD space

Guest OS (running RF server):


2 core processor 5.5GM RAM Windows Server 2008 R2 x64 with updates applied + vmware tools 20GB HDD (this can be reduced if paging is disabled) Network IP:10.53.1.182

Server files:
RF Online 2.2.3.2 GU - Xtreme Server Files FIXED H4TE

Recommended tools for modifying/debugging:


Notepad++ Wireshark TCPView A Hex editor with search & replace functionality Hex Workshop was used A file search utility with binary search functionality PowerGREP 4 was used AnjLab SQLProfiler The Tracing option in ODBC

RF Server installation:
Dependencies:
Follow the default install options unless otherwise noted. dotNet2.0: included in OS vc2005: x64vc2005sp1 Account & RFDepend packages from RF server package/ RF Dependency/ SQL server: MSSQL 2008 R2 x64 Express W/ Tools

MSSQL 2008 R2 x64 Express with tools installation options Server Configuration: Service Accounts: SQL Server Browser: Startup Type -> Automatic

Database Engine Configuration: Authentication Mode -> Mixed mode; specify password (SA1password)

MSSQL configuration
Configure MSSQL2008 R2 Express for network access: Open SQL Server Configuration Manager Enable TCP/IP: SQL Server Network Configuration: Protocols for SQLEXPRESS Named Pipes -> Enabled TCP/IP -> Enabled

Restart the MSSQL server: SQL Server Services: Right click SQL Server (SQLEXPRESS); click restart.

Server file extraction


Create the folder for the RF server and extract the server files into it: C:\RF_server_2.2.3.2\

MSSQL database setup


Setup the databases: Open SQL Server Management Studio Login to 127.0.0.1\SQLEXPRESS with sa:SA1password

Create the databases Right click Databases, select New Database.

Create 3 new databases named: RF_World, RF_User and BILLING

Restore the databases Right click RF_world; Tasks; Restore; Database

From Device

File; Add (select backup file: RF_WORLD.bak)

Check restore

Options; Overwrite the existing database

OK (repeat for RF_User & Billing)

Set up the new users

name:rf

SQL server authentication: pass: rfpass.

uncheck enforce

User mapping: all options excluding denys: for rf: all RF Databases, for rfrusaccount, only database: RF_User, for rfrusworld, only database: RF_World.

Also create the accounts: rfrusaccount:#rf%rusaccount and rfrusworld:#rf%rusworld (These are hardcoded into the AccountServer and ZoneServer respectively and they change with country code; if a different country is used (not RU), use ODBC trace and AnjSql Profiler to determine the user, then hex search user in AccountServerSD.exe to find user & pass)

Allow the appropriate users execute permissions New Query: run this SQL (execute) USE RF_User GRANT EXECUTE TO rfrusaccount, rf USE RF_World GRANT EXECUTE TO rf, rfrusworld USE BILLING GRANT EXECUTE TO rf

Create the ODBC connections:


Open ODBC Data Source Add: SQL server native: Finish

Name:RF_User. Server:127.0.0.1\SQLEXPRESS

sql server authentication: rf:rfpass

Change default database to: RF_User

Next:Finish:Test. If OK: OK. repeat for RF_World & BILLING, using RF_World and BILLING as the default database respectively.

ODBC Data Sources:

Server configuration modification (see appendix for this servers configuration files)
Setup RF ini (Account and Login\RF_Bin\Initialize\[Account|Billing|Login]System.ini, ZoneServer\WorldInfo\WorldInfo.ini, ZoneServer\RF_Bin\Initialize\WorldSystem.ini, rfacc.ini change IPs change database details change WorldInfo.ini servertype to 0. Note the HBK & History path: create these directories.

change WorldSystem.ini comment out Ver_Check.... -> ;Ver_Check.... change Login_Filter_Dev.ini for GM accounts change rfacc.ini (2 files) -> DBSTR = Driver={SQL Server Native Client 10.0};Server=127.0.0.1\SQLEXPRESS;Database=BILLING;Uid=rf;Pwd=rfpass; (Modify this string according to your database server; see Connection Stings (ODBC) for other options)

10

Testing
(All server executable must be run as administrator; it is easiest to set this in compatibility options)

Start the AccountServer and LoginServer


enter /open in the login server.

11

Note, (this version of) LoginServer uses port 10001 (use tcpview to confim)

Allow programs through (computer) firewall


(LoginServer, ZoneServer) or appropriate ports (through (or turn off (not recommended on a computer connected to the internet)) Windows firewall)

12

Try to login
RF client should produce a "Wrong Account input" error message (there are not yet any accounts on the server) on attempting to connect.

Add (normal) user


test:test to RF_User.rfaccount INSERT INTO RF_USER.dbo.tbl_rfaccount (Id,Password,accounttype,email,birthdate) VALUES ((CONVERT (binary(16),'test')),(CONVERT (binary(24),'test')),'1','test@mailinator.com','01/01/1980')

13

Then try to login on client with this account

RF Client should give login, and display the server as closed.

Start the ZoneServer Add a GM account to ini configuration and MSSQL


USE RF_User Insert Into tbl_StaffAccount (ID,PW,Grade,Depart,RealName,SubGrade,Birthday,ComClass) Values (Convert(binary,'!teste'),convert(binary,'teste'),'2','none','teste','4','01/01/1991','GM') Add the GM information to Login_Filter_Dev.ini. Restart the Login and Account server.

Try to login as GM
Note:GM ID in RF Client uses !name. Example:!teste

14

Success (check free memory)

15

Modifying launcher
If you do not have or can't find a suitable client, you must modify an original client. Use wireshark to identify which address the client is obtaining updates (only) from (the launcher page content is not important for now). Investigate how the update process works then build or modify an emulator that provides an LPServerInfo.dat with the IP for your LoginServer and set up a web server

How to modify the update server (need web emulator)


Investigation Start capture in wireshark, start the RF Client, wait for it to update, stop wireshark. RF Client calls update.dll on a remote server. Apply a filter in wireshark to find these packets: tcp contains update.dll

Find the Host in each packet.

HEX search for these addresses in the client and modify them to your launch server

This client: the hosts are: launcherupdate.playrf.com, launcherconfig.playrf.com and rfonlinepatch.gscdn.com:10007 Find out what port RF Client is calling the LoginServer on using TCPView try to login to a non-existent account and watch the RF Client on TCPView. 16

This client uses 27780. Modification Search for the launcher and update text values in the client using a hex editor (not rfonline-patch).

Overwrite these with the IP of your update server (make sure not to change the length of the file)

17

Search & Replace (6) instances of the login port with the appropriate login port (10001)

Save the modified launcher under a new name. Web emulator This emulator only supplies a new login IP for the RF Client. If you have problems, use wireshark to troubleshoot. Using AppServer: Install appserver Modify Apache configuration httpd.conf Change the listen section so it reads: Listen 80 Listen 8080 Listen 10007

Create the rf-server.conf (modify the IP, DocumentRoot, Log and directory values to suit) file in the apache conf directory and add this include at the end of the Apache httpd.cond: Include conf/rfinfo.conf Modify the update.dll (2) LPServerInfo.dat and ServerConfig.dat to point to you patch and login servers. Restart the apache service. Try to login with your update and port modified client.

18

Extensions
To connect PHP with MSSQL, ntwdblib.dll (version 2000.80.194.0) must be placed in the apache and php bin folders, and the extension loaded in the php.ini configuration. Web registration: DAFA RF GameCP can be used as a registration script with simple modifications (add a birthday field and use the correct table)

Thanks:
RageZone 2.2.3.2 Initial release by: Alankratos/madhatter Fixed release by: H4TE Video guides by baltais99 Anybody who has every answered someones query :) Maindev.ru RF_223_php_Emulation

Version:
1 2011-12-03 bov.

19

Das könnte Ihnen auch gefallen