Post by SarahC on Feb 24, 2015 5:30:53 GMT
As decompiling a .Net file is simple due to the quality of decompiling programs available, such as Telerik JustDecompile (and several others), a first stop when modding is always to do a quick check of what CLR files can be found.
It's rather tedious to go hunting for these files using the decompilers, as they assume you know where the EXE, DLL, .Bin (or whatever) is!
So you have to open your program folder, and drag each one in, every time getting "This is not a valid CLR file."
I decided to automate this process, and I've created a .Net CLR scanner over on google code.
It does a fairly deep inspection of the file's code, regardless of the file extension, so it can take a few minutes to scan thousands of files.
code.google.com/p/dot-net-finder/
Placing the DotNetFinder.Exe in Steam's "common" folder: C:\Program Files (x86)\Steam\steamapps\common
I ran this command line: DotNetFinder Besiege /S /D
A couple of seconds later I got:
besiege\Besiege_Data\Managed\Assembly-CSharp-firstpass.dll
besiege\Besiege_Data\Managed\Assembly-CSharp.dll
besiege\Besiege_Data\Managed\Assembly-UnityScript-firstpass.dll
besiege\Besiege_Data\Managed\Assembly-UnityScript.dll
besiege\Besiege_Data\Managed\Boo.Lang.dll
besiege\Besiege_Data\Managed\Mono.Security.dll
besiege\Besiege_Data\Managed\mscorlib.dll
besiege\Besiege_Data\Managed\System.Core.dll
besiege\Besiege_Data\Managed\System.dll
besiege\Besiege_Data\Managed\System.Xml.dll
besiege\Besiege_Data\Managed\UnityEngine.dll
besiege\Besiege_Data\Managed\UnityScript.Lang.dll
Folders checked: 16
Files checked: 108
C:\Program Files (x86)\Steam\steamapps\common>
These are all the files that can be decompiled with Telerik - JustDecompile.
In this example, the results are a bit obvious! "Managed" code is .Net code, so we'd expect to see all the files from this folder appear in the list.
One thing we know more than we did - there's no other .Net files in any of the other folders.
Some files, like mscorlib.dll I suspect are Microsoft's own .Net API DLL's that are included so Besiege doesn't need to install the whole .Net platform, and therefore wont be much use to you when looking how the game works.
Happy coding!
It's rather tedious to go hunting for these files using the decompilers, as they assume you know where the EXE, DLL, .Bin (or whatever) is!
So you have to open your program folder, and drag each one in, every time getting "This is not a valid CLR file."
I decided to automate this process, and I've created a .Net CLR scanner over on google code.
It does a fairly deep inspection of the file's code, regardless of the file extension, so it can take a few minutes to scan thousands of files.
code.google.com/p/dot-net-finder/
Placing the DotNetFinder.Exe in Steam's "common" folder: C:\Program Files (x86)\Steam\steamapps\common
I ran this command line: DotNetFinder Besiege /S /D
A couple of seconds later I got:
besiege\Besiege_Data\Managed\Assembly-CSharp-firstpass.dll
besiege\Besiege_Data\Managed\Assembly-CSharp.dll
besiege\Besiege_Data\Managed\Assembly-UnityScript-firstpass.dll
besiege\Besiege_Data\Managed\Assembly-UnityScript.dll
besiege\Besiege_Data\Managed\Boo.Lang.dll
besiege\Besiege_Data\Managed\Mono.Security.dll
besiege\Besiege_Data\Managed\mscorlib.dll
besiege\Besiege_Data\Managed\System.Core.dll
besiege\Besiege_Data\Managed\System.dll
besiege\Besiege_Data\Managed\System.Xml.dll
besiege\Besiege_Data\Managed\UnityEngine.dll
besiege\Besiege_Data\Managed\UnityScript.Lang.dll
Folders checked: 16
Files checked: 108
C:\Program Files (x86)\Steam\steamapps\common>
These are all the files that can be decompiled with Telerik - JustDecompile.
In this example, the results are a bit obvious! "Managed" code is .Net code, so we'd expect to see all the files from this folder appear in the list.
One thing we know more than we did - there's no other .Net files in any of the other folders.
Some files, like mscorlib.dll I suspect are Microsoft's own .Net API DLL's that are included so Besiege doesn't need to install the whole .Net platform, and therefore wont be much use to you when looking how the game works.
Happy coding!