Jump to content
View in the app

A better way to browse. Learn more.

Tuts 4 You

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Platform: windows
Language : .NET
Difficulty : ranges
Protection : theres files with agile,ilprotector,eazfuscator and appfuscator

Description : 
thought it was time for something to be posted on this forum

so here is the same keygenme(some values changed per file) that are protected by obfuscators above

READ INFO.TXT 

for some further information

Goals :

Gold : unpack them 

Silver : keygen

Bronze : valid key for your username


Rules : 
no patching or brute forcing 

https://gyazo.com/230bc896a03685c9b9365de5bee5e195

 

Results 
divide - Gold for appfuscator

Michidu - Gold for ilprotector


Download: 
attached

KeyGens.rar

Edited by cawk

Appfuscator Solution
 

Spoiler

 

AAAA}AA}AA

Divide}A}AAAA}AA}A

 

 Appfuscator Keygen Code

Spoiler

        private static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                string txt2 = RandomString(8) + "}A}AAAA}AA}A"; ;
                char[] txt1Chars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

                txt1Chars[1] = txt2[txt2.Length - 1];
                txt1Chars[7] = txt2[txt2.Length - 2];
                txt1Chars[2] = txt2[txt2.Length - 3];
                txt1Chars[3] = txt2[txt2.Length - 4];
                txt1Chars[4] = txt2[txt2.Length - 5];
                txt1Chars[3] = txt2[txt2.Length - 7];

                string txt1 = new string(txt1Chars);

                Console.WriteLine(Check(txt1, txt2) ? "PASSED" : "FAILED");
                Console.WriteLine($"1: {txt1}");
                Console.WriteLine($"2: {txt2}");
                Console.WriteLine();
            }

            Console.ReadKey();
        }

        private static readonly Random r = new Random();

        private static string RandomString(int length)
        {
            const string chars = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789";
            return new string(Enumerable.Repeat(chars, length)
              .Select(s => s[r.Next(s.Length)]).ToArray());
        }

 

Thanks for the challenge! I'll try the other ones.

Appfuscator KeyGenMe (Unpacked).zip

Edited by Divide

  • Author
2 hours ago, Divide said:

Appfuscator Solution
 

  Hide contents

 

AAAA}AA}AA

Divide}A}AAAA}AA}A

 

 Appfuscator Keygen Code

  Hide contents


        private static void Main(string[] args)
        {
            for (int i = 0; i < 10; i++)
            {
                string txt2 = RandomString(8) + "}A}AAAA}AA}A"; ;
                char[] txt1Chars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

                txt1Chars[1] = txt2[txt2.Length - 1];
                txt1Chars[7] = txt2[txt2.Length - 2];
                txt1Chars[2] = txt2[txt2.Length - 3];
                txt1Chars[3] = txt2[txt2.Length - 4];
                txt1Chars[4] = txt2[txt2.Length - 5];
                txt1Chars[3] = txt2[txt2.Length - 7];

                string txt1 = new string(txt1Chars);

                Console.WriteLine(Check(txt1, txt2) ? "PASSED" : "FAILED");
                Console.WriteLine($"1: {txt1}");
                Console.WriteLine($"2: {txt2}");
                Console.WriteLine();
            }

            Console.ReadKey();
        }

        private static readonly Random r = new Random();

        private static string RandomString(int length)
        {
            const string chars = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789";
            return new string(Enumerable.Repeat(chars, length)
              .Select(s => s[r.Next(s.Length)]).ToArray());
        }

 

Thanks for the challenge! I'll try the other ones.

Appfuscator KeyGenMe (Unpacked).zip

Nice work 

Few methods still some encryption for the most part brilliant work

 

Gold

Yeah the unpack isn't great, but I stopped when it was done enough to keygen it. Only used CC's tools, haven't done anything myself yet.

It's nice to see some more .NET challenges here, thanks again for posting them.

  • Author
30 minutes ago, Divide said:

Yeah the unpack isn't great, but I stopped when it was done enough to keygen it. Only used CC's tools, haven't done anything myself yet.

It's nice to see some more .NET challenges here, thanks again for posting them.

next one id advise to try is the agile.NET one

 

de4dot is very close to working on this file 

Getting close...

QHsgsEV.png

It8zCQ5.png

I think I know what's wrong but will have to fix it later.

Unpacked ILProtector.

Keygen is almost same (i just changed a few things from previous solution).

Spoiler

public static void Main(string[] args)
        {
            for(int i = 0; i < 10; i++)
            {
                string key = RandomString(8) + "}A}A}A}A";
                char[] nameChars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

                nameChars[1] = key[key.Length - 1];
                nameChars[7] = key[key.Length - 2];
                nameChars[2] = key[key.Length - 3];
                nameChars[3] = key[key.Length - 4];
                nameChars[4] = key[key.Length - 5];
                nameChars[0] = key[key.Length - 6];

                string name = new string(nameChars);

                Console.WriteLine($"1: {name}");
                Console.WriteLine($"2: {key}");
                Console.WriteLine();
            }

            Console.ReadKey();
        }
        private static readonly Random r = new Random();

        private static string RandomString(int length)
        {
            const string chars = "ABCDEFGHJKLMNPQRSTUVWXYZ0123456789";
            return new string(Enumerable.Repeat(chars, length)
                .Select(s => s[r.Next(s.Length)]).ToArray());
        }

 

 

ILProtector_KeyGenMe_Unpacked.rar

  • Author

very good!

Agile

Can't test this because the Agile trial has expired now, but this should work:

A}AAAAA}AA
2RFB0YS4}A}A}A}A

 

Spoiler



string key = RandomString(8) + "}A}A}A}A";
char[] nameChars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

nameChars[5] = key[key.Length - 1];
nameChars[7] = key[key.Length - 2];
nameChars[2] = key[key.Length - 3];
nameChars[1] = key[key.Length - 4];
nameChars[4] = key[key.Length - 5];
nameChars[2] = key[key.Length - 7];

string name = new string(nameChars);

Console.WriteLine($"1: {name}");
Console.WriteLine($"2: {key}");


 

I fixed de4dot to handle the new Agile, but need to add in stelem/ldelem support as any methods with these opcodes will fail to devirtualize.

  • Author
On 10/26/2017 at 11:31 PM, Divide said:

Agile

Can't test this because the Agile trial has expired now, but this should work:

A}AAAAA}AA
2RFB0YS4}A}A}A}A

 

  Hide contents

 



string key = RandomString(8) + "}A}A}A}A";
char[] nameChars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

nameChars[5] = key[key.Length - 1];
nameChars[7] = key[key.Length - 2];
nameChars[2] = key[key.Length - 3];
nameChars[1] = key[key.Length - 4];
nameChars[4] = key[key.Length - 5];
nameChars[2] = key[key.Length - 7];

string name = new string(nameChars);

Console.WriteLine($"1: {name}");
Console.WriteLine($"2: {key}");

 

 

 

 

I fixed de4dot to handle the new Agile, but need to add in stelem/ldelem support as any methods with these opcodes will fail to devirtualize.

Excellent Work

Deobfuscated Eazfuscator.

Spoiler

string key = RandomString(8) + "}A}A}A}A";
char[] nameChars = { 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A' };

nameChars[5] = key[key.Length - 1];
nameChars[7] = key[key.Length - 2];
nameChars[2] = key[key.Length - 3];
nameChars[1] = key[key.Length - 4];
nameChars[4] = key[key.Length - 5];
nameChars[2] = key[key.Length - 7];

string name = new string(nameChars);

Console.WriteLine($"1: {name}");
Console.WriteLine($"2: {key}");

 

 

KeyGenMe-devirtualized.exe

Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.