ClioSport.net

Register a free account today to become a member!
Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

  • When you purchase through links on our site, we may earn an affiliate commission. Read more here.

The Power PC Thread [f*ck off consoles]



I'm not 100% sure what the developer(s) meant with that comment, but it suggests that introducing new enumerated values (perhaps to represent new /additional colours) means that they also need to be replicated in multiple locations (i.e. the files you mention). For enums, this seems like a bad design decision as you generally want to specify them once in a well-defined source location.



It seems that a mixture of managed and unmanaged code is being used here. As you mentioned, .NET Framework 4.8 is being used in part along with unmanaged code, which looks a lot like C++ to me. The colour/styling themes in the unmanaged assembly look a lot like the resources that get spat out when writing a C++ application using the MFC library. This makes sense as, in my previous post, I mentioned that I believed Solidworks was written originally in MFC.

I would imagine that the managed code (.NET Framework) is marshalling data to/from the unmanaged assembly's resource section to style and present the user interface. And I'm assuming that that is what you are trying to figure out to create new styling (or edit existing styling)? It can be tricky decompiling a DLL and the process is not necessarily straightforward. DLLs may be wholly encrypted, partially encrypted, obfuscated... and they may not.

However, even if we assume that a DLL can be successfully decompiled, other problems would need to be overcome. In this case, being able to replicate those enumerated values in other files. Just having those files available and being able to change them doesn't mean they will magically work. You would need the entire code base in which those files reside. You would need to make the changes to the files (adding the enums), and then rebuild the entire code base.

On the subject of the enums, do you have any examples of what they are or might be? In C# and C++, enums are designed to represent discrete sets of named constants, typically using integer values. As such, they cannot directly store complex data types like an RGB triplet.



As above, it looks/feels/smells a lot like legacy Win32/MFC given the assembly structure and the naming conventions used in the resource section.

Thank you for the guidance, has pointed me in the right directions quickly!

In that txt for the theme rgb colours, there are random notes made by someone like "JCW - WE WANT A HORIZONTAL SEPARATOR, BUT NOT VERTICAL SO CODE NEEDS TO CHANGE", have included the file if you're curious.


The unmanaged file contains nearly all of the icons/buttons/logos png's in different resolutions, using resource hacker I can replace them with a different colour or image, top left logo used to be red. This info may not help at all..

5765765765.PNG



The directory that they point to in the txt file starts with am, I just had a play in IDA and opened a different dll which came up with this, implying 'am' is a folder in c drive. It couldn't find it but went through anyway and came up with this.

Untitled.png


2.PNG




This is a another dll for ref.

3.PNG




The main dll that contains the theme txt files.

Capture.PNG



As far as what Id like to change/modify about the ui, its probably the equivalent of learning to swim by jumping off a cruise ship in the middle of the pacific now seeing how IDA decompiles the dll files.
The first image I shown with the feature manager to the left has a solid colour background, 247, 247, 247 in the txt file which I confirmed is right. Id like it to be transparent. Now the possibly good news is there is a transparent feature tree in sw but it doesn't stay shown once you've created a sketch or feature, so you have to press c twice to open it again, also you have to L click a feature before you can r click to list options to change, something small but as far as work flow goes it slows you down. I guess changing how the transparent tree functions could be no easier as you still have to find the file that contains the code and edit/ compile.

Said tree, it also hides half of the text until you hover over it. So 3 changes that I would want to make.

Sw ui.png



Edit: I just opened a large file and with the transparent tree open it runs so slow lol. At least theres merit in trying to learn, right..? :LOL:
 

Attachments

  • IDR_COLOR_THEME_LIGHT.txt
    16.7 KB · Views: 4
Last edited:
For enums, this seems like a bad design decision as you generally want to specify them once in a well-defined source location.

Which happens to be the case.. When it brought up the message about microsoft symbol server in IDA I didnt know what that meant, had a quick search and realised its something at the companies end. Changed some of the values randomly in the txt file and it works. Well at least I know you can completely customize the ui colour scheme in solidworks if all else. If from my reading is correct IDA decompiles C++ into C ish? So in some dlls its mostly impossible to know what the code is for. More to read and learn about I guess!

@Touring_Rob

Untitled.png
 

SharkyUK

ClioSport Club Member
Thank you for the guidance, has pointed me in the right directions quickly!

In that txt for the theme rgb colours, there are random notes made by someone like "JCW - WE WANT A HORIZONTAL SEPARATOR, BUT NOT VERTICAL SO CODE NEEDS TO CHANGE", have included the file if you're curious.


The unmanaged file contains nearly all of the icons/buttons/logos png's in different resolutions, using resource hacker I can replace them with a different colour or image, top left logo used to be red. This info may not help at all..

View attachment 1714198


The directory that they point to in the txt file starts with am, I just had a play in IDA and opened a different dll which came up with this, implying 'am' is a folder in c drive. It couldn't find it but went through anyway and came up with this.

View attachment 1714199

View attachment 1714202



This is a another dll for ref.

View attachment 1714201



The main dll that contains the theme txt files.

View attachment 1714200


As far as what Id like to change/modify about the ui, its probably the equivalent of learning to swim by jumping off a cruise ship in the middle of the pacific now seeing how IDA decompiles the dll files.
The first image I shown with the feature manager to the left has a solid colour background, 247, 247, 247 in the txt file which I confirmed is right. Id like it to be transparent. Now the possibly good news is there is a transparent feature tree in sw but it doesn't stay shown once you've created a sketch or feature, so you have to press c twice to open it again, also you have to L click a feature before you can r click to list options to change, something small but as far as work flow goes it slows you down. I guess changing how the transparent tree functions could be no easier as you still have to find the file that contains the code and edit/ compile.

Said tree, it also hides half of the text until you hover over it. So 3 changes that I would want to make.

View attachment 1714203


Edit: I just opened a large file and with the transparent tree open it runs so slow lol. At least theres merit in trying to learn, right..? :LOL:

The DLL file decomp images don't really show anything that will be useful I'm afraid, unless you are interested in a breakdown of the assembly language instructions of the code segments contained within the DLL. I can see in one of them the code that handles how DLLs are attached to, detached from, loaded and unloaded, which is a mechanism implemented by DLL developers so that each of those stages of DLL life-cycle management can be hooked into. However, this probably doesn't help you much!

With all due respect, what you are attempting to do is far, FAR more complex than you may realise. In fact, it's also impossible unless you have access to the complete SolidWorks source code and the required build tools and supporting libraries. You cannot change or alter features within the software just by hacking a DLL. You've probably got about as far as you can go in terms of being able to hack the colour values for the UI and change the likes of logos and images that you already have access to in that DLL. Being able to change the transparency and functionality of the tree/menu within the app requires the full source code for the application. Sadly, I don't think Solidworks will give you that no matter how nicely you ask!

Which happens to be the case.. When it brought up the message about microsoft symbol server in IDA I didnt know what that meant, had a quick search and realised its something at the companies end. Changed some of the values randomly in the txt file and it works. Well at least I know you can completely customize the ui colour scheme in solidworks if all else. If from my reading is correct IDA decompiles C++ into C ish? So in some dlls its mostly impossible to know what the code is for. More to read and learn about I guess!

@Touring_Rob

View attachment 1714204

The decompiler doesn't convert from one language into another. It will know which compiler was used to generate the code from some sort of signature, and it attempts to break down the code segment into the various named functions and modules so as to appear as close to the original source as possible (this is a gross simplification of the process). Sometimes that is not possible and it may just show the assembly language instructions (as seen in the above DLL images). It's difficult to explain as it really is a complex area and would take a lot of time to write down. It would also likely make very little sense unless you have an extensive software engineering background and knowledge of compiler theory and practice, how software works at the very lowest level, and so forth.

With all due respect, you cannot really go any further than what you have already found (i.e. perhaps changing existing images and logos within a given DLL, or changing the RGB colour values in order to alter an existing colour theme/style. Decompilation is an incredibly complicated and complex skill that requires an intimate knowledge of software platforms, the technologies being leveraged, etc. On top of that, there is a huge gulf between being able to decompile/look at a DLL and its contents and altering it to change the functional behaviour it provides (if it is at all possible). There is also the ethical and legal side as licenses generally prohibit the hacking and reverse-engineering of proprietary technology and products! 🫣

I'm not meaning to belittle or cast doubt on your abilities by any means - it's just that what you are ultimately wanting to do is not possible.
 

Touring_Rob

ClioSport Club Member
I stopped trying to modify other people programs a long time ago @Beauvais Motorsport - the issue for me was/is that you spend a lot of time doing something and then when an update comes along you lose all of our changes so have to repeat.... a year on from the last time so you've forgotten most of it. You could make a little python app that makes all the changes for you but you are still at the mercy of SW developers continuing to do things using previous logic.

As for the UI - I don't close the ribbon, I bought a bigger monitor :ROFLMAO:
 


Top