Jump to content
Tuts 4 You

Simple .NET keygenme


GIV

Recommended Posts

Hi guys.

Today i have made a small keygenme.

The algo is very simple (getting to the algo is not).

Difficulty : 4
Language : .NET
Platform : Windows X86/X64
OS Version : XP and above
Packer / Protector : Eazfuscator

Description :

Simple keygenme with short computing algo.

 

Clipboard01.jpg

Simple Keygenme 2016 - giv.rar

  • Like 1
Link to comment
Share on other sites

Stuck on deobfuscating EazFuscator.

i tried eazdevirt with de4dot still no luck. so i have to change the source code of de4dot to support newer version of this obfuscator :(

Link to comment
Share on other sites

10 hours ago, Ahmad_k said:

Stuck on deobfuscating EazFuscator.

i tried eazdevirt with de4dot still no luck. so i have to change the source code of de4dot to support newer version of this obfuscator :(

We wait for your modded de4dot.

:)

Link to comment
Share on other sites

Yes the smiley is the correct serial message.

Maybe i will change the algo a little bit in a new build.

:)

Edited by GIV
Link to comment
Share on other sites

Sure, you can spend few days making a devirtualizer. Or you can take Olly or x64dbg and debug JITed x86 code instead. That's what I did. :-)

Link to comment
Share on other sites

Trying again with eazdevirt tool. it crashes.

After debugging i found that newer version of eazfuscator uses Dup instead of Ldloc.0 as first instruction in the dictionary. so after changing this now eazdevirt can run. But now i got 0 methods devirtualized :D

On old challenge (Jan 2016) @Saneki noticed a change in VM's stream type and he updated eazdevirt source code but didn't release the new updated source.

 

Link to comment
Share on other sites

On 06.08.2016 at 4:00 AM, Insid3Code said:

Attached binary with source, it's only conversion (ASCII/Decimal) with an trick!

keygen.rar

Hi.

You hardcoded a string before the name.

Is a combination but the options are more than this hardcoded string.

The original code was:

If txtKey.Text.ToString.Substring(0, 1) = "3" And txtKey.Text.ToString.Substring(2, 1) = "7" Then
                  txtKey.Text = ""
                  txtKey.Enabled = False
                    txtKey.Text = ":))"
                End If

So first and third character from the serial which is the ASCII correspondent of the name characters must begin with 3 and 7.

In this way if we look at the ASCII table the possibilities are much more that the hardcoded string.

The keygen is not 100% correct regarding from this point of view.

I.M.H.O. the correct way was, if the keygen generate random chars matching the required conditions before inserting the name you chose.

Once you get the algo decrypted which is very simple and i consider the second keygenme solved.

Do you want to change the algo to make harder challenges for this keygenme (maybe others have to learn something from it)?

Edited by GIV
Few spell changes.
Link to comment
Share on other sites

There's nothing wrong with Insid3Code's keygen and hardcoding few chars. It generates valid serials, that's all that matters. 

 

What would be the point of making more of the same? People who can get around Eazfuscator are bored by the crap algorithms. And people who can't get around Eazfuscator.. Well, they can use these 2 challenges to learn.

Link to comment
Share on other sites

Yep.

OK.

More complicated algo for key verification would not be so easy (i think).

Also the X64 keygenmes protected with Eazfuscator could be interesting enough.

Anyway could someone put here the 2 files unpacked?

Link to comment
Share on other sites

There is a problem in the executable, i cannot run it properly. It closes immediately after putting any character in username field.

Link to comment
Share on other sites

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