cawk 215 Posted October 11, 2017 (edited) 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 October 20, 2017 by cawk (see edit history) Share this post Link to post
0 Divide 8 Posted October 19, 2017 (edited) 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 October 19, 2017 by Divide (see edit history) 2 Share this post Link to post
0 cawk 215 Posted October 19, 2017 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 1 Share this post Link to post
0 Divide 8 Posted October 19, 2017 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. 1 Share this post Link to post
0 cawk 215 Posted October 19, 2017 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 1 Share this post Link to post
0 Divide 8 Posted October 20, 2017 Getting close... I think I know what's wrong but will have to fix it later. Share this post Link to post
0 Michidu 38 Posted October 20, 2017 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 2 Share this post Link to post
0 Divide 8 Posted October 26, 2017 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. 3 Share this post Link to post
0 cawk 215 Posted October 29, 2017 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 Share this post Link to post
0 Michidu 38 Posted October 31, 2017 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 2 Share this post Link to post
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 (see edit history)Share this post
Link to post