I was going to upload a binary here, but I realized there's really no reason to right now. This is just the first tool of a much larger project, so the only people who'd want to run it should be more than capable of getting a .Net 5 project to work from Visual Studio.
This programming tool by itself is useless for 99.99% of the community right now. However, it's the foundation for something else. I have to start building new things from the ground up again, so people will have something to reference later on. It has undergone some revisions since my first post back, but I'm pretty happy with the state it's in now and am ready to move on to the next phase that uses it. I'll be working on that project this week.
To share a story of why I'm doing things this way. I worked on a very large (unreleased) Path of Exile project for the past several years. It has literally 100s of projects in its entirety, and way too many moving parts to try and condense them all into a single solution. I tried many times, but would hit brick wall after brick wall when it came to Visual Studio performance, general issues with organization, maintenance, and just remembering what did what over time.
I'm splitting up my new projects for SRO because of that experience. "GFXRC_Generator" is a separate, standalone tool because everyone doesn't need the entire workflow from start to finish in one solution. If I were to complete my entire project first, and then just released a bunch of tools and knowledge all at once, it'd be overwhelming, confusing, and totally counterproductive to what I was trying to do.
Instead, if I carefully build things up piece by piece and release them in an orderly fashion, and then put them together later, I think more people will be able to understand the complex workflow, and which segments are applicable to them, either to use in their own projects or for community contributions. Generally speaking, I think most projects make community contributions too inaccessible or confusing to the point where it's just easier to not contribute than try and figure out how things work.
"GFXRC_Generator" is basically ground zero. The only people who can get something useful from it right now are people who are familiar with reversing the client. In that case, the x32dbg labeling script generated might prove very valuable. The generated structures less so, because unless you're already doing similar, you most likely will need the next project that explains the workflow of using them.
Lastly, since there's several SRO versions people do stuff for, I'm keeping that in mind as I develop my new stuff. "GFXRC_Generator" has been tested and is working on VSRO 165/188, ISRO 594, CSRO-R 134, TRSRO 13, and I even ran it on the JSRO client from sl.rar without issue. However, it'd be impossible for me to manage every version myself, so I'm setting things up for other people to lead community contributions for various versions if they so desire. That aspect of the project comes along at a later stage though.
As long as you understand one Silkroad version, you'll be able to understand virtually any of them, so it doesn't matter which versions people dedicate to really. I'm making sure of that by working on TRSRO/ISRO first, and then I apply stuff to VSRO 165/188 just to make sure things still make sense. In doing so, there won't be any wasted efforts. If people decided to reverse a lot of VSRO, then large parts of the work can be ported across other versions with a bit of manual work.
That process should hopefully become more apparent in the future, when more projects are completed and released. For now though, here's the first one. I've attached the current source snapshot for archiving purposes, but it'd be best to check gitlab for any updates since no one else has tested this yet, and I haven't done any releases like this in a long time.
(No executable files in attached source, but you can always verify the attachment is the same with the SHA256)GFXRC_Generator






