Tutorial Unity Cracking Unity Games - Ultimate Guide for dummies

5.00 star(s) 3 Votes

povertas

New Member
May 11, 2024
14
3
21
Thanks for all the tutorials, uncle!


I've been slappin' my brains trying to disable the patreon access (via custom code or boolean=true) for this game:
https://f95zone.to/threads/inn-another-world-v0-07b-dagotto.104553

unsuccessfully...


I've tried everything: searched for 'patreon', checked all methods for 'version', 'encrypt', 'key'.

From the structure of the csharp dll, I can see the whole cheat menu is hidden behind a successful patreon code, but latest versions have a different code, and a possible method of offline generation of a code escapes me.

Is there anyway to just enable the gUI presence of the cheat menu somehow? Make it appear by default when playing the game sequence?
 
  • Like
Reactions: Uncle Eugene

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
Thanks for all the tutorials, uncle!


I've been slappin' my brains trying to disable the patreon access (via custom code or boolean=true) for this game:
https://f95zone.to/threads/inn-another-world-v0-07b-dagotto.104553

unsuccessfully...


I've tried everything: searched for 'patreon', checked all methods for 'version', 'encrypt', 'key'.

From the structure of the csharp dll, I can see the whole cheat menu is hidden behind a successful patreon code, but latest versions have a different code, and a possible method of offline generation of a code escapes me.

Is there anyway to just enable the gUI presence of the cheat menu somehow? Make it appear by default when playing the game sequence?
Edit: "Sorry, I didn't undestand your progress when answered at first, remaking the answer..."

So, yeah, nobody said that you would hit the method you need right away.
mickymouse already told you where to find the method you need, but the idea goes like so:
  1. Find the method / field / property / whatever that is at least somehow connected to what you're looking for. In your case - Cheat Menu class, good
  2. Now read the code and find the next logical thing. If it's cheat menu - "ok, how it is shown? Method 'ShowCheatMenu', cool. But what triggers this method?"
  3. Click with right mouse button -> "Analyze", go through "Used By" - there are all the methods where this ShowCheatMenu is called from. Find what you need there
I do now understand that I didn't focus enough on the usage of Analyzer while there were opportunities every time we needed to find something. My bad. Tried to not overwhelm beginners with a lot of stuff at once
 
Last edited:

charmingpotato

New Member
May 8, 2021
13
9
22
Awesome stuff. I really enjoyed it and your content is amazing! I have no understanding of Unity but I was able to understand everything. Good work.

Just one small thing to point out. In your last tutorial you have written:

On your right you can see "Solution Exploerer" window. Double click on Program.cs to open it
While this should be `Plugin.cs`. It's a minor thing but someone who is not very familiar with programming might not know where to look.
 
  • Heart
Reactions: Uncle Eugene

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
Awesome stuff. I really enjoyed it and your content is amazing! I have no understanding of Unity but I was able to understand everything. Good work.

Just one small thing to point out. In your last tutorial you have written:



While this should be `Plugin.cs`. It's a minor thing but someone who is not very familiar with programming might not know where to look.
Glad to hear that, fixed the typo

Did you have any experience with programming/C# tho?
 

charmingpotato

New Member
May 8, 2021
13
9
22
Glad to hear that, fixed the typo

Did you have any experience with programming/C# tho?
Not with C# though. I've been a full stack developer for around 3 years, and now I am a certified blue-teamer + a master's degree in Cyber Security so I am not new to decompiling and reverse engineering. But I have 0 knowledge of game development mechanics as that is a completely different realm from what I do.
 
  • Like
Reactions: Uncle Eugene

yulta

New Member
Jul 10, 2023
7
20
113
I had some issues earlier about netstandard versions and I figured that it was an issue within my packages: NETStandard.lib using 2.0 when the original game's assembly is using 2.1. I thought I needed to download something again, or change the target framework (which actually has no correlation with what I'm trying to achieve) but it was, in fact, an issue with my version. Here's what you would get trying to build a solution when your version is lower than the one you should have.

1759153250938.png

So I scrapped everything again and went back to getting dotnet to create my folder, except that this time, I would run it using NETStandard2.1 as my version... except, this happens when you first open Visual Studio with the plugin's solution.

1759153488125.png

Figured I needed to change my SDK, small issue: I have already an SDK that supports .NETStandard2.1. I go over to change the target framework.

1759153628150.png

Nothing. I don't really know why my frameworks aren't presented as options here but I'll leave it at that for now. Eventually I'll find out why I'm not able to see my target frameworks but I didn't have enough time.
 

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
I had some issues earlier about netstandard versions and I figured that it was an issue within my packages: NETStandard.lib using 2.0 when the original game's assembly is using 2.1. I thought I needed to download something again, or change the target framework (which actually has no correlation with what I'm trying to achieve) but it was, in fact, an issue with my version. Here's what you would get trying to build a solution when your version is lower than the one you should have.

View attachment 5295271

So I scrapped everything again and went back to getting dotnet to create my folder, except that this time, I would run it using NETStandard2.1 as my version... except, this happens when you first open Visual Studio with the plugin's solution.

View attachment 5295283

Figured I needed to change my SDK, small issue: I have already an SDK that supports .NETStandard2.1. I go over to change the target framework.

View attachment 5295285

Nothing. I don't really know why my frameworks aren't presented as options here but I'll leave it at that for now. Eventually I'll find out why I'm not able to see my target frameworks but I didn't have enough time.
dotnet new bep6plugin_unity_mono -T netstandard2.1 -n Name
 
  • Like
Reactions: yulta

yulta

New Member
Jul 10, 2023
7
20
113
The issue fixed because I'm actually stupid and wrote netstandard472 rather than net742. I wanted to make a shell script to just spare myself some time (I'm a very lazy programmer and I don't like to fetch commands myself, I tend to forget too). Now there's no issue anymore. THANK YOU
 

Mr.Momo

Member
Sep 7, 2022
101
305
186
Excellent crack (not literal) guide fello Uncle Eugene! Will you be adding a table of content to the first post for easier navigation to the various sections?
 

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
1759966570263.png
I GUESS LEVEL 4 IS DELAYED lol

Level 4 - Il2cpp is ready

But for real thanks everyone who's following this thread, Level 4 is now ready and I'm doing the final polishing of the thread, proofreading, adding missing links and so on. I'll probably tweak level 4 a little once I read it 15+ more times, but it's already readable and completable
But I'll have to sort out this false positive trigger now...

Update: Everything is fixed
 
Last edited:

Ogleby

Newbie
May 10, 2023
34
27
96

Now we need to install the BepInEx templates for our visual studio. This is very easy

Press Win+R, enter cmd and click OK
Or open console window in any other way
Code:
dotnet new install BepInEx.Templates::2.0.0-be.4 --nuget-source https://nuget.bepinex.dev/v3/index.json
Paste this command into console and click enter

View attachment 5182223

Thought you should know, they have deprecated the use of colon separator and are using "@" so it should be
Code:
dotnet new install BepInEx.Templates@2.0.0-be.4 --nuget-source https://nuget.bepinex.dev/v3/index.json
 

Ogleby

Newbie
May 10, 2023
34
27
96

View attachment 5182456

BepInEx console will open along with the game (it may take a little time to load)
And if you did everything right BepInEx should tell you that it's loading 1 plugin and the game should load cracked
Optionally you can disable this console in BepInEx/config/BepInEx.cfg file

Congratulations!
If you've made it this far I'm very proud of you, especially if you didn't have any experience with programming and Visual Studio before


Share you thoughts and progress in this thread I'm always happy to answer questions and read feedback
BepInEx won't launch or create the config folder or files, anyone know how to fix this? I've been digging at this for a while now. I'm using the latest be of BepInEx. I followed the instructions to the T.

1763916286250.png 1763916318859.png 1763916358110.png

Note: I added the "ConfigurationManager" to hopefully fix it, but like I said, the Console won't start so that tells me that BepInEx isn't running.
 

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
BepInEx won't launch or create the config folder or files, anyone know how to fix this? I've been digging at this for a while now. I'm using the latest be of BepInEx. I followed the instructions to the T.

View attachment 5463657 View attachment 5463660 View attachment 5463662

Note: I added the "ConfigurationManager" to hopefully fix it, but like I said, the Console won't start so that tells me that BepInEx isn't running.
In case BepInEx is not running at all there are few scenarios:
1. The BepInEx failed to hook the proccess. In this case there will be no console, but game will load fine
2. BepInEx crashed. In this case you'll get error log in BepInEx/ErrorLog.txt and game won't open

You seem to have faced the first option here. The reason for this is usually incorrect BepInEx version (32 bit VS 64 bit, Mono VS il2cpp)
All of my example games are compatible with BepInEx Unity x64, you might've downloaded x32 version or incorrectly picked il2cpp/mono version

There are also some common tips from posts with my plugins
You don't have permission to view the spoiler content. Log in or register now.

Some operating systems don't like winhttp.dll and prefer it to be renamed to version.dll
IL2CPP requires internet connection to start
BitDefender is blocking BepInEx (so might some other less common AVs?)
 
Last edited:
  • Like
Reactions: Ogleby

Uncle Eugene

Active Member
Modder
Respected User
Jun 6, 2020
611
4,612
426
BepInEx won't launch or create the config folder or files, anyone know how to fix this? I've been digging at this for a while now. I'm using the latest be of BepInEx. I followed the instructions to the T.
Yeah, so, quick edit: I see you have dotnet folder there, so you've tried to use IL2CPP version of BepInEx, the Level 3 is using mono and not il2cpp, so just remove these files from game folder and use correct bepinex version: Unity Mono x64
 
  • Like
Reactions: Ogleby

Ogleby

Newbie
May 10, 2023
34
27
96
Its gotta be something I'm not doing or maybe the version of be i'm using. which is be-dd0655f. What version are you using?

Edit: for some reason I got it in my head that I was supposed to be using IL2CPP. smh.. thanks Uncle Eugene
 
  • Like
Reactions: Uncle Eugene

Ogleby

Newbie
May 10, 2023
34
27
96
Uncle Eugene Well, now that I've finished this, I was trying to take a stab at SeaSide Mystery, but He's got some funky stuff going on. still digging into it. There is a crack for it here, but I was trying to get it figured out myself.

I feel like the dev has got some kind of block or early loading protection on it to prevent something hooking into his .exe. I couldn't get BepInEx to load up for it at all. Maybe I'm doing something wrong, But I tried every version i have of BepInEx. Maybe this is something you want to look at and if possible make a tutorial for? I don't know enough about looking into memory and all that jazz.
 
5.00 star(s) 3 Votes