Jump to content
Tuts 4 You

ByTanimsizVM Obfuscator v2.0


Go to solution Solved by Washi,

Recommended Posts

  • 3 months later...
  • Solution
Posted (edited)

Went for a keygen instead of a full devirtualization. I don't fancy devirtualizing VMProtect stacked on top of KoiVM, so I went with a fully dynamic analysis approach. Code is clear enough though if you are able to set the right breakpoints at the right places. Personally am not a fan of including anti-VM in challenges, it only makes it annoying rather than interesting, but maybe that's just me.

Sample key:

  Reveal hidden contents

Approach:

  Reveal hidden contents

 

Keygen.csFetching info...

Edited by Washi
  • Like 6
  • Thanks 4
Posted
  On 7/14/2021 at 6:21 PM, Washi said:

Went for a keygen instead of a full devirtualization. I don't fancy devirtualizing VMProtect stacked on top of KoiVM, so I went with a fully dynamic analysis approach. Code is clear enough though if you are able to set the right breakpoints at the right places. Personally am not a fan of including anti-VM in challenges, it only makes it annoying rather than interesting, but maybe that's just me.

Sample key:

  Reveal hidden contents

Approach:

  Reveal hidden contents

 

Keygen.cs 2.13 kB · 8 downloads

Expand  

can you try to open the package.

Posted (edited)
  On 7/16/2021 at 7:56 PM, Leopar36 said:

can you try to open the package.

Expand  

I am of the opinion that any solution posted here should be reproducible (hence the name tuts4you). Anyone reading my solution should be able to follow the steps and get to the same conclusion. For the case of a VM, since they are complicated beasts, it means it gives me only two options:

  • I would have to release the source code of any type of devirtualizer that I would've made, or
  • I would have to spend an entire blog post talking about how VMP's VM works and how to reverse it.

While I genuinely enjoy doing both, both options take a lot of time, something I have very little of these days. But even if I had the time, it's arguably not really worth it. If I were to make a devirtualizer for VMP and release it, it will not take long for the VMP developers to catch on and update their software. Unless the devirtualizer was made in such a way that it would be resistant towards the kinds of changes (which again, takes more time), it means it is probably only going to be useful for a short period. Just doing this for a single unpackme posted on a forum does not really make it worth it for me.

Also, while I generally don't have any problem with publishing articles or source code (unlike other people that post solutions here it seems), I do have a problem with potentially harming other people's businesses. I am not a fan of releasing devirtualizers or unpackers for protectors that are still in business and have customers. From a legal and ethical perspective, that's just not something I would do easily.

Generally speaking though, with reverse engineering it is often not required to fully unpack anyways. You extract what you need and leave out the unimportant business. In a lot of cases that does not require a full deobfuscation.  Especially not with keygenme's like these.

Maybe someone else thinks differently about that, and does pick this up as a challenge though :)

Edited by Washi
  • Like 11

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...