[Release] ISRO-R certification and billing + patches
Discussion on [Release] ISRO-R certification and billing + patches within the SRO PServer Guides & Releases forum part of the SRO Private Server category.
[Release] ISRO-R certification and billing + patches
So, @DaxterSoul and I had written a nice post, but the forum decided we needed to provide virustotal links for the open sourced C# code (which, mind you, is never flagged as virus, even if its malicious xD)
So, if one of the mods wants to make this post a bit better by providing the auto rejected post we wrote, that'd be awesome, otherwise, enjoy.
This is for this release:
This is the billing Virustotal for it:
This is the cert: The scan:
Binary patches (use x64dbg)
Cert DB:
Please contribute to the project, we'd love to see people working together, and so far it's been nice to see all the work together on the discord, join it
And that's it, we put a lot of love and some effort into making it possible.
Guess it's been almost a year since I've last posted. I'll get in a few posts before 2022 is over.
Quote:
Originally Posted by devtekve
Please contribute to the project, we'd love to see people working together, and so far it's been nice to see all the work together on the discord[/url]
seems to work on the Rigid client with no modifications.
Console output:
I've attached the artifacts generated. VirusTotal (only text/json/C# code content):
For anyone that doesn't understand what the tool does, it just generates struct memory layouts for some of the main classes in the game, so all you have to do is start fixing the layouts manually.
It's one half of an alternative workflow from just using ReClass like khaleed2010's post shows. With this, you know the size of sub-classes and where they lie in the layout, so you have less work to do for anything that is reused. This is talked about more in my GFXRC posts, but to give a quick example:
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x3A98)]
public struct CICPlayer
{
public CObj_Data Obj; // 0x0000 (0x4 bytes)
public CObjChild_Data ObjChild; // 0x0004 (0x1C bytes)
public CIEntity_Data IEntity; // 0x0020 (0x34 bytes)
public CIObject_Data IObject; // 0x0054 (0x88 bytes)
public CIGIDObject_Data IGIDObject; // 0x00DC (0x27C bytes)
public CICharactor_Data ICharactor; // 0x0358 (0x564 bytes)
public CICUser_Data ICUser; // 0x08BC (0x134 bytes)
public CICPlayer_Data ICPlayer; // 0x09F0 (0x30A8 bytes)
}
The CICUser_Data object comes at offset 0x08BC.
If you were to reverse that CICUser_Data class and label fields, it would then apply to all other instances used. For example:
Code:
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0xA10)]
public struct CICScriptObj
{
public CObj_Data Obj; // 0x0000 (0x4 bytes)
public CObjChild_Data ObjChild; // 0x0004 (0x1C bytes)
public CIEntity_Data IEntity; // 0x0020 (0x34 bytes)
public CIObject_Data IObject; // 0x0054 (0x88 bytes)
public CIGIDObject_Data IGIDObject; // 0x00DC (0x27C bytes)
public CICharactor_Data ICharactor; // 0x0358 (0x564 bytes)
public CICUser_Data ICUser; // 0x08BC (0x134 bytes)
public CICScriptObj_Data ICScriptObj; // 0x09F0 (0x20 bytes)
}
[StructLayout(LayoutKind.Sequential, Pack = 1, Size = 0x9F0)]
public struct CICUser
{
public CObj_Data Obj; // 0x0000 (0x4 bytes)
public CObjChild_Data ObjChild; // 0x0004 (0x1C bytes)
public CIEntity_Data IEntity; // 0x0020 (0x34 bytes)
public CIObject_Data IObject; // 0x0054 (0x88 bytes)
public CIGIDObject_Data IGIDObject; // 0x00DC (0x27C bytes)
public CICharactor_Data ICharactor; // 0x0358 (0x564 bytes)
public CICUser_Data ICUser; // 0x08BC (0x134 bytes)
}
Rather than having to manually copy over CICharactor_Data fields into your CICScriptObj and CICUser classes, it'll already be correctly associated. In this case, the data always starts at 0x08BC, but in a case where one class had it at a different offset, you'd not have to adjust the data offsets yourself.
At some point, you'd then write a code generator tool using reflection to convert your C# classes to C++ for SRO_DevKit or any other language for whatever you want to do. I opt to use C# as a metalanguage in this regards, because I've just found it to be the best language for the job so far.
I can't test because I don't have the server files and client setup, but I've updated the code to hopefully work for the Rigid client. Nothing seemed different from the update instructions I originally posted for TRSRO, so it should work without any issues.
Please note that you will have to delete the "GFX_RUNTIME_CLASS" folder of the included TRSRO content, and instead use the "GFX_RUNTIME_CLASS" folder from running GFXRC_Generator on the Rigid client (what is attached to this post). Don't forget you need to run the 'x32dbg-labelscript.txt' script in x32dbg to be able to follow most of the instructions (or, just refer to the addresses in the script for whatever tool you're using since SRO is based at 0x400000 anyways)
I'm posting a link to the 'Revisions' tab to show the actual changes, so just switch to the 'Code' tab to see the full code:
Lastly, I don't have the time to mess around this stuff anymore like I used to, and I don't really see myself being in a SRO dev mood for the rest of this year, so good luck to everyone working together on something new!
[Release] [Release] Certification server, Global Manager, Billing exploits 03/24/2017 - SRO PServer Guides & Releases - 28 Replies So, i decided to release stuff i wrote for some tests in past in public.
Includes :
- Certification server exploit (reads A003 packet response, and writes it into a file)
- Way to sql-inject Global Manager
- Billing ASP scripts sploit
Patches, Patches, OMG Patches 08/21/2010 - EO PServer Hosting - 3 Replies A certain someone reckons I make good guides, so heres my second effort.
PATCHES! How I made One.
Prerequisites
1- Computer, sorry for the sarcasm.
2- Winrar
1-Select all the files you wish to use in the patch. Include the version.dat file which needs to be edited through notepad to higher number. (EG 1001 to 1002). Important, every folder you edit in anyway must be included in the patch!