|
You last visited: Today at 22:25
Advertisement
[Release] Spoofed download server (reverse engineering)
Discussion on [Release] Spoofed download server (reverse engineering) within the SRO PServer Guides & Releases forum part of the SRO Private Server category.
03/27/2017, 16:37
|
#1
|
elite*gold: 50
Join Date: Mar 2017
Posts: 40
Received Thanks: 5
|
[Release] Spoofed download server (reverse engineering)
Hi,
So, you have a filter and DDoS protection but forgot to spoof download server and do not want to edit or mess with your executable files or CERT, this is the perfect option for you if you want to spoof your download server and hide your real server IP from all your players.
Working on
How it works
- Prevent download packet to be sent to client
- Read necessary information like (Files to patch)
- Re-writing the packet and the information and replaces the IP&PORT
- Sending the new packet to client, containing protected IP:PORT.
- Client receives the packet and see the protected IP:PORT.
Whats needed
- A SSA Filter.
- A TCP proxy for download server, examples below
- HaProxy, or C# proxy.
S->C (Reverse engineering)
PHP Code:
#region 0xA100_DOWNLOAD_SPOOF if(_pck.Opcode == 0xA100) { byte result = _pck.ReadUInt8(); if (result == 0x02) { byte ErrorCode = _pck.ReadUInt8(); if (ErrorCode == 0x02) { string ip = _pck.ReadAscii(); // ServerIP ushort port = _pck.ReadUInt16(); // ServerPort UInt32 version = _pck.ReadUInt32(); // Version byte flag = _pck.ReadUInt8(); // Flag
Packet spoof = new Packet(0xA100, false, true); spoof.WriteUInt8(result); spoof.WriteUInt8(ErrorCode); spoof.WriteAscii("127.0.0.1"); // Spoofing part spoof.WriteUInt16("15881"); // Spoofing part spoof.WriteUInt32(version); // Version spoof.WriteUInt8(flag); while (flag == 0x01) { UInt32 FileID = _pck.ReadUInt32(); string FileName = _pck.ReadAscii(); string FilePath = _pck.ReadAscii(); UInt32 FileLen = _pck.ReadUInt32(); byte unk = _pck.ReadUInt8(); // Packed, no idea. flag = _pck.ReadUInt8();
spoof.WriteUInt32(FileID); spoof.WriteAscii(FileName); spoof.WriteAscii(FilePath); spoof.WriteUInt32(FileLen); spoof.WriteUInt8(unk); spoof.WriteUInt8(flag); } m_LocalSecurity.Send(spoof); Send(false); continue; } } } #endregion
Credit goes to
Ace
and...

There is no backdoor in this code, Kappa 
|
|
|
03/27/2017, 17:11
|
#2
|
elite*gold: 0
Join Date: Jan 2011
Posts: 396
Received Thanks: 87
|
Thanks
|
|
|
03/27/2017, 17:23
|
#3
|
elite*gold: 393
Join Date: Feb 2009
Posts: 694
Received Thanks: 414
|
nice
|
|
|
03/27/2017, 17:34
|
#4
|
elite*gold: 0
Join Date: Jun 2013
Posts: 53
Received Thanks: 1
|
Please <Debug> into .exe software
|
|
|
03/27/2017, 18:11
|
#5
|
elite*gold: 0
Join Date: Feb 2014
Posts: 1,866
Received Thanks: 517
|
Gooby = Goofie ? ))
|
|
|
03/27/2017, 18:11
|
#6
|
elite*gold: 0
Join Date: May 2010
Posts: 62
Received Thanks: 78
|
idk why do u want to read whole packet till flag is zero instead of skip them
|
|
|
03/27/2017, 18:16
|
#7
|
elite*gold: 0
Join Date: Aug 2013
Posts: 1,540
Received Thanks: 841
|
Quote:
Originally Posted by Gooby.
There is no backdoor in this code, Kappa 
|
In this one no :^)
In literally everything you release, yes. :^)
|
|
|
03/27/2017, 18:22
|
#8
|
elite*gold: 0
Join Date: Jun 2013
Posts: 53
Received Thanks: 1
|
Upgrade SUPERMIKE to version 3.1
|
|
|
03/27/2017, 18:38
|
#9
|
elite*gold: 50
Join Date: Mar 2017
Posts: 40
Received Thanks: 5
|
Quote:
Originally Posted by kanift
idk why do u want to read whole packet till flag is zero instead of skip them 
|
Reading if flag is byte 1, reading all the files that needs to be patched in client @ Media.pk2 and so on. You must read all the files that must be patched or the response aka reverse engineering will not work.
Quote:
Originally Posted by Dracula Untold
Gooby = Goofie ? ))
|
Yes? It's not a secret.
Quote:
Originally Posted by hieulovehoa
Upgrade SUPERMIKE to version 3.1
|
Contact me on Skype and I will send KRYLFILTER v10.
Quote:
Originally Posted by Judgelemental
In this one no :^)
In literally everything you release, yes. :^)
|
Only was detected for that backdoor, if you have more proof please share them.
|
|
|
03/27/2017, 19:08
|
#10
|
elite*gold: 0
Join Date: May 2010
Posts: 62
Received Thanks: 78
|
Quote:
Originally Posted by Gooby.
Reading if flag is byte 1, reading all the files that needs to be patched in client @ Media.pk2 and so on. You must read all the files that must be patched or the response aka reverse engineering will not work.
|
actually u dont have to read whole packet to manage it to work, it will create lag (because of loop) if there are huge amount of files, u can shorten the logic without loop try to handle patch response w/o loop :^)
|
|
|
03/27/2017, 20:41
|
#11
|
elite*gold: 50
Join Date: Mar 2017
Posts: 40
Received Thanks: 5
|
Quote:
Originally Posted by kanift
actually u dont have to read whole packet to manage it to work, it will create lag (because of loop) if there are huge amount of files, u can shorten the logic without loop try to handle patch response w/o loop :^)
|
It will not cause any lag.
|
|
|
03/27/2017, 21:19
|
#12
|
elite*gold: 0
Join Date: May 2010
Posts: 62
Received Thanks: 78
|
Quote:
Originally Posted by Gooby.
It will not cause any lag.
|
this answer is the result of why ur filter is sh*** if it runs its ok for u and no matter what will be happen afterwards, anyway imo thats an unnecessary show so good luck with other bad filter projects ^^.
|
|
|
03/28/2017, 06:58
|
#13
|
elite*gold: 350
Join Date: Aug 2015
Posts: 2,008
Received Thanks: 1,193
|
Reverse engineering ? funny
and the loop is not necessary
|
|
|
03/29/2017, 06:00
|
#14
|
elite*gold: 0
Join Date: Oct 2009
Posts: 206
Received Thanks: 69
|
"while (flag == 0x01)
{"
why this loop? unnecessary
|
|
|
04/08/2017, 15:39
|
#15
|
elite*gold: 0
Join Date: Feb 2013
Posts: 65
Received Thanks: 37
|
analyze the full packet is not necessary, you can use packet.GetBytes()
to write all remaining bytes into the new packet.
i using this code
it working well for me:
Code:
#region Download Packet
if (packet.Opcode == 0xA100 && Main.FDownloadPort > 0)
{
try
{
Packet DownServ = new Packet(packet.Opcode, packet.Encrypted, packet.Massive);
bool bo = true;
int length = 0;
byte num1 = packet.ReadUInt8(); // 0x02
length++;
if (num1 == 2)
{
byte num2 = packet.ReadUInt8(); // 0x02
length++;
if (num2 == 2)
{
string str1 = packet.ReadAscii(); // IP
length += 2; // Ascii length
length += str1.Length; // Ascii bytes length
short num3 = packet.ReadInt16(); // Port
length += 2; // port bytes length
DownServ.WriteUInt8(num1);
DownServ.WriteUInt8(num2);
DownServ.WriteAscii(Main.FakeIP);
DownServ.WriteUInt16(Main.FDownloadPort);
int loop = bytes.Length - length;
for (int i = 0; i < loop; i++)
{
DownServ.WriteUInt8(bytes[length]);
length++;
}
this.gw_local_security.Send(DownServ);
continue;
}
}
}
catch
{
this.Disconnect();
continue;
}
}
#endregion
|
|
|
 |
|
Similar Threads
|
[Release] Even more old SRO related sources / reverse engineering results
08/16/2016 - SRO PServer Guides & Releases - 0 Replies
So, I'm releasing some "old", useless (for me) stuff related to silkroad. Most of those projects are incomplete/bugged - I'll keep most tasty stuff for myself for now...
I really hope someone finds it useful...
Torrent:
Release.torrent ? RGhost ? ?????????????
Feel free to contact me on skype: [email protected]
|
Discussion: Reverse engineering a server-backend
02/14/2014 - Need for Speed World - 15 Replies
I have been giving this some thought what about writing our own server for NFS:world the game is mostly clientside it should be do-able its only a matter of time before EA yanks the plug
should such a feat be attempted who would be interested in playing it
having our own server-backend would allow us todo all thinks of things like game-balance fixes and make all cars IGC
|
[Release] Suspender - (Reverse Engineering)
11/28/2013 - S4 League Hacks, Bots, Cheats & Exploits - 7 Replies
when i download it and extract it saying File have been formated or damaged ...
|
[RELEASE] Game Files Open - Reverse Engineering Tool
09/09/2010 - Metin2 Hacks, Bots, Cheats, Exploits & Macros - 11 Replies
Hi community,
this is a free tool released by Game Files Open Team. The tool is multilanguage, german is not very good... But we'll make a good translation in the next version... There is a volunteer to help us?
Dwonload:
Game Files Open
Scansion:
http://www.elitepvpers.com/link/?http://www.virust otal.com/file-scan/report.html?id=fd4177d32eb2389a 508fbbeb886311c5fa892d51e755dd092526612f6328151e-1 283976256
Micro-tutorial:
|
Ferentus privat server (reverse engineering)
06/05/2010 - General Coding - 6 Replies
Hey Leute
Ich möchte einen Ferentus Privat server erstellen, und wollte mal fragen wie ich es angehen soll.
Es handelt sich hierbei um ein MMORPG, was vor einiger zeit abgeschaltet wurde, dar es keine gewinne einbrachte.
Nun weiß ich nicht wie ich vorgehen soll, dar ich ja nicht mehr die daten vom server nehmen kann ^^ weil diese ja wie gesagt down sind.
Des weiteren habe ich mir ein Buch für die c++ Programmierung zugelegt (extra für Spiele)
|
All times are GMT +1. The time now is 22:26.
|
|