Jump to content
Tuts 4 You

.NET Reactor v6.3


whoknows

Recommended Posts

whoknows

Reactor v6.3


Try to unpack or alternatively provide a serial.

Protections used:

  • Necrobit
  • Antitampering
  • Antidebug
  • Obfuscation
  • Code Virtualization

+ Shield with SNK


 

  • Like 3
  • Thanks 1
Link to post
TobitoFatito
Spoiler
 
 
 
 
Spoiler

7BnF3rC.png

I haven't finished locals yet that's why all variables are object :D

Also im not sure about the string -_- after i jit dump i checked the vm runtime and it did produce that string

 

Steps:

1. Simple MSIL Decryptor by CodeCracker

2. Devirtualization tool i have been working on.

 

.Net Reactor imo has a **basic** to intermediate VM. i suggest you give this a try!

 

Tips on how to start:

1 Learn how CIL works / CIL fundamentals (there are some nice ebooks that i can't link here )

2 Learn how the assembly reader/writer of your choice works (dnlib for example)

3 Learn how a simple VM works ( https://github.com/TobitoFatitoNulled/MemeVM (the original creator of this vm left so this is a fork to keep the project alive))

 

Edited by CodeExplorer (see edit history)
  • Like 4
  • Thanks 1
Link to post
Reza-HNA

a key:

Spoiler

AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyALFitASwYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fIK04VIg0/n//sCvbki/6NzAc2yzHd3UzfyISTu6Hzsk3

i fixed de4dot for new reactor including method decryption, cflow etc... and finally devirt it.
there are tutorials about fixing de4dot/devirt in this forum including this topic as well.

 

Edited by CodeExplorer (see edit history)
  • Like 3
  • Thanks 2
Link to post
TobitoFatito

awesome_msil_Out.exe

Approach:

1. Necrobit is a jit protection, so we use Simple MSIL Decryptor by CodeCracker  , and it shall be ran on NetBox

2. Code virtualization is a relatively new feature of .net reactor, added in version 6.2.0.0. Here is the approach i took (i did this about 6 months ago so my memory is kinda rusty ) : (Click spoiler to see hidden contents)

Spoiler
 
Spoiler
  • Analyzing the file we can see that only one method is virtualized.
  • hZtfeik.png
  • Start renaming, Renaming is a really important aspect of this.
  • Following the vm method call we end up on a big method, where fun begins. :D elGFLe4.png
  • We see that this method is only called once, which seems like a good place to start.
  • Zy23TPW.png
  • Following that method we reach here, where a binary reader is used to read a resource stream. WrDMWzQ.png
  • After making a good devirtualization base, this seems to be the first stage. (In my case i searched for resources with name length of 37 you might wanna do it differently)
  • Second stage i'd say is method locating, you simply wanna search for virtualized methods and get their ID and methoddef.
  • Back to the main method, the first for loop seems to be for method locals, the third seems to be for exception handlers, and the fourth seems to be for vm instruction deserializing.
  • k5UwU5F.png
  • Scrolling a bit more we finally reach the method that executes the instructions.
  • i8vVxx7.png ZP28QlB.png
  • ExecuteInstruction method is really important, and its gonna be used for pattern matching stage. I Simply searched for a method with 3200+ instructions and a switch opcode. You might wanna do it differently.
  • swbJKtu.png
  • eFyyHhy.png
  • This is how i pattern matched the opcodes
  • 4xl67ok.png
  • And here is an example
  • b5jsK2S.png
  • After we finish pattern matching the opcodes, its time for VM Method Dissasembling stage. I found that a good way to start is to loop the Decrypt2 variable that was initialized earlier. You will need to figure this out, method locals, exception handlers and vm instructions etc..
  • dcZw0ir.png
  • After method disassembling stage, its time for vm method recompiling/rebuilding. We convert the .net reactor vm instructions to CIL. I just looped through every vm method instruction and used a switch :D . Here is an example
  • caT0iPU.png
  • Final stage is method replacing, where we replace the body of every virtualized method with the translated body.
Edited by CodeExplorer
wtf is wrong with spoiler CE edit: fixed the spoiler (see edit history)
  • Like 16
  • Thanks 1
Link to post
  • 2 months later...
kao

Why was SychicBoy's post accepted by moderators?

* Code is not devirtualized at all, see Form01.method_2. That's not a properly unpacked file.
* Correct serial is not provided either.

There's just a simple patch which disables serial check - so, neither of unpackme's goals are achieved.

 

Link to post
converse
On 6/11/2020 at 1:40 AM, Reza-HNA said:

a key:

  Reveal hidden contents

AQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyALFitASwYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fIK04VIg0/n//sCvbki/6NzAc2yzHd3UzfyISTu6Hzsk3

i fixed de4dot for new reactor including method decryption, cflow etc... and finally devirt it.
there are tutorials about fixing de4dot/devirt in this forum including this topic as well.

 

Send me fixed de4dot here or in PM, thank you

Link to post
mohamedsalah
3 hours ago, SychicBoy said:

Its a unpack me file not a crack me, and i don't think you know anything about virtualization. 

Please guide me devirtualized😔🤑

Link to post
CreateAndInject

 I think @SychicBoy don't know anything about virtualization rather than @kao

@SychicBoy See `awesome.Form01.method_1`, it just call `awesome.Form01.method_2` which is  just the stub of DNR virtualization

```

// awesome.Form01
[MethodImpl(MethodImplOptions.NoInlining)]
public static string method_2(string string_1)
{
    object[] array = Class01.method_03(0, new object[]
    {
        string_1
    }, null);
    return (string)array[0];
}

```

 

You didn't restore `awesome.Form01.method_1` at all.

Edited by CreateAndInject (see edit history)
Link to post
SychicBoy

 

5 hours ago, collins said:

@SychicBoy You should release the tool so people can test it.  Of course it is easy to prove whether you are correct.

Sure, i gonna release a unpacker for net reactor 6x soon. 

  • Like 4
  • Thanks 3
Link to post
  • 2 weeks later...
raviruia522
On 8/29/2020 at 4:02 PM, SychicBoy said:

 

Sure, i gonna release a unpacker for net reactor 6x soon. 

hope

Link to post
  • 2 weeks later...
  • 2 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...