Tutorial Hacking Unity Games with .Net Reflector (Assembly-CSharp.dll Hacking)

G-Bo ッ

Administrator
Staff member
Administrator
Hey there =)


A new tutorial for you guys.

Today I'll show you how to hack unity games.

The file you will hack of a unity game is here: apk-assets-bin-Data-Managed-Assembly-CSharp.dll



What do we need?

-
Java SE v8

- .Net Reflector --> 8.14 MB file on MEGA (Cracked version)

- Reflexil to edit the functions easier --> reflexil.net



NOTE: Not any game is a unity game.



Let's start!

Okey, so.. Open the program .Net Reflector after you installed it. Load the Assembly-CSharp.dll in it.

You find this file after you did unzip the apk in: assets-bin-Data-Managed-HERE

I always remove all the other files on the left side using the "Delete/Del" button on your keyboard because they're anoying as f*ck.



Sb6h9fv.png




Once they're gone, open the file from the game in the program.

Let's set up reflixil now. You've downloaded the reflexil file, you should've unzipped it.

In reflector you see a option called "Tools", go to it, go to "Add-Ins" and now click on the "+" icon.

Locate to your unzipped folder, and select "Reflexil.Reflector.AIO". Now go again to "Tools" and select Reflexil v2.0



It will look like this now:



W7BRxTU.png




Now click the search button or "f3" button & now you have to turn on "Search Member" CTL + M OR:



nSatUNd.png




Okey, Let's search for some functions. There are multiply options of coure, but I'll call some here:



Coins

Gems

Gold

Diamonts

Money

Cash

Currency

get_'gold,coins etc'

get_amountof'coins,keys,etc'

isUnlocked

isLocked

isFree

etc etc etc



So, Subway Surfers does have allot features which can be hacked.

Let's hack the coins, keys, boards & characters in this tutorial

coins & keys are int value's & board & characters are boolean value's



Let's search for 'coins'. I got ALLOT matches so do you, I will not show you a screenshot.

Let's search for 'get_coins'. You got only a few matches, normaly when you find this match in a game you will hack it. I did it too, but it didn't had any effect so I won't waste your time by doing it.

Let's search for 'get_amountof'. We got this:



iKHFcv8.png




It seems very intresting to me, why? Well we got matches with keys & coins + the declaring type is 'PlayerInfo' in my opinion that's intresting.

Let's double click 'get_amountOfCoins' we got this:



qKZrjst.png




So what now?

Well, ALWAYS delete this OpCode 'Idfld'. You don't want that one loaded.

Now, change Idarg.0 to 'idc.i4' by clicking right mouse button on Idarg.0 and click edit.

It will look like this:



aKj5VNH.png




NOTE: Change Operand type to Int32!!!!



Click 'Update' and do the same for 'get_amountOfKeys'



Now let's unlock the hoverboards.

Search for: isUnlocked, no match you'll see. Search for isHoverboardUnlocked

You got 2 matches, which one will you take? Well the one with declaring type 'HoverboardStickerManager' says this:



0TkqWb9.png


See this: 'It says: return PlayerInfo.Instance.isHoverboardUnlocked(type);'

Double click isHoverboardUnlocked because it says that's what it returns.



WOW! You got ALLOT bullsh*t around there
default_tongue.png


What do we want to do with the function? Return it to TRUE ofcourse!

What do we do now? In this menu (see picture) we have to keep only 2 instructions, it doesn't matter which one. Just delete everything until you keep 2 instructions



FtLHpa7.png




After deleting until there are 2 instructions, it will look like this (you may have other instructions):



b0XOERn.png




I got this, you can get totally something else. I'll explain you what this means anyways because we both need those instructions to hack it

See the OpCode of both

Idc.i4,0 --> FALSE

ret ---> RETURN --> Offset of ret is '1' this means "TRUE"

So it says: HoverboardUnlocked = FALSE = TRUE... hmmmm bleghhhh
default_wallbash.gif




What to do now?

Change the first instructions (Idc.i4.0) to Idc.i4.1 this means TRUE

IF your second instruction is NOT 'ret' then change it to 'ret'.

What it says now: HoverboardUnlocked = TRUE = TRUE



CjnEp5w.png






Let's do the same for the Characters..

Search for 'isCharacterUnlocked' you may get more matches.I do only get one...



y32ZPZh.png






It tells me it does return 'PlayerInfo.Instance.IsCollectionCompelete(type);

Double Click isCollectionComplete.

Delete all instructions until you keep 2 over

Change the first instruction to 'Idc.i4.1' and change the second to 'ret' (RETURN)



TIP: The Subway Surfers Tutorial is very anoying in my opinion.

Search for: get_IsTutorialCompleted and return it to true like you did with the Hoverboards & Characters!



Okey.. we're done. Save the Assembly-CSharp.dll

How?



AtYe7ZJ.png




Click 'Save as...' --> locate to the unzipped .apk-assets-bin-Data-Managed, it will tell you to save it as: Assembly-CSharp.Patched.dll but we want it as: Assembly-CSharp.dll

It will ask if you want to overwrite, click yes.



Locate to your unzipped .apk - select ALL files - make a .zip archive but rename the .zip to apk:



GcLCqFB.png




Copy your .apk to your phone or to bluestacks, sign in it with zipsigner

Zipsigner: ZipSigner - Android Apps on Google Play



Open ZipSigner find your .apk by clicking here:



NgjrqDg.png




When you found it, click 'Sign The File' and wait.

After it's done signing, locate it in your file manager & install it. Open it when it's done



NOTE: If you don't like non serious people, skip the upcomming screenshot and go to one after it lol..



Moment of truth.......

Silence please.....



IS IT HACKED???!

Kidding me, Bluestacks hates me:

1GyVS0E.png




Let's open again -___-



Ah I got it working.



Coins & Keys:



CDZTqjL.png




Characters:



TTtOcrp.png




Hoverboards:



Rzy27VH.png




Functions WE hacked:

get_amountOfCoins

get_amountOfKeys

isHoverboardUnlocked

isCharacterUnlocked

some of you may did: get_isTutorialCompleted because I mentioned that one too.



EXTRA

isThemeUnlockedForCharacter

isThemeSeen

isThemeOwned

isThemeActive

get_DoubleScore

get_ScoreMultiplier



Declaring Type ´PlayerInfo´ are the most functions in to be hacked.



Hope you learned something from this tutorial!

Updated Codes for Subway Surfers ( Date: 08-09-2019 ) by @DaRealPanDa:
 
Last edited:
Do tutorial for multiple currencies please xD
I only know this method :
=> ldrg.0
=> ldfda
=> ldc.i4 xxxx
=> mul
=> ret
Need another methods x)

you mean multiply currencies? cause multiple currencies I don't know what you mean. To multiply a currency you know already the best way, except of its "long / int64" method, then you need ldc.i8 and if its float you need ldc.r4. uInt is still ldc.i4
 
I'm trying to 100% crit chance. Can someone help me?

public float
Opcode: ldc.r4
Operand type: Single
Operand: 1

how do I change this to always crit?

or how do I edit anything float type?
 
help me plz~
Assembly-CSharp
File is not a portable executable. DOS header does not contain 'MZ' signature.
What should I do when it comes out in red?
 
thnks for answer :D , how to solved " unable to connect with the server. check your internet connection and tryagain " :D im on with wifi
 
Good tutorial, i have tried with one game works like a charm but with next one i can't add instructions? (i guess its protected) any way to do it?
 
I used this method on get_gem set to 9999 but it didn't work. I'm doing it on King's Raid.
Also, how do I make it so I can still log in with my google or facebook account?
 
Back
Top Bottom