Results 1 to 8 of 8

Thread: [keygen ME] Messy crypto

  1. #1
    Blacklist Hunter Kurapica's Avatar
    Join Date
    Jun 2008
    Location
    JIT compiler
    Posts
    102

    [keygen ME] Messy crypto

    Hi

    this is a new challenge, It's not hard but it's good for those who like

    coding in .NET, will be a great fun for a cold winter night

    patching is forbidden, only a valid keygen is accepted

    Enjoy

    http://www.4shared.com/file/WctnNsWI/challenge.html

    link fixed ...
    Last edited by Kurapica; January 6th, 2011 at 16:14.
    Life can only be understood backwards but It must be read forwards

    http://board.b-at-s.info
    http://portal.b-at-s.info/news.php

  2. #2
    Seems somthing is wrong.
    Getting the following message:
    " 'KeygenME2011.rar' is unavailable. This file was deleted. "
    Is it not possible to upload it directly here?

  3. #3
    Blacklist Hunter Kurapica's Avatar
    Join Date
    Jun 2008
    Location
    JIT compiler
    Posts
    102
    link fixed ...
    Life can only be understood backwards but It must be read forwards

    http://board.b-at-s.info
    http://portal.b-at-s.info/news.php

  4. #4
    Thanks posting the challenge here. I have been waiting for you to post a challenge I completed my first .NET crackme not so long ago and I read your tutorials from here to do the necessary patching etc. Thanks mate

    I don't know if this is a good enough solution, if not I will code the GUI later.

    key1 = "abcd"
    key2 = "efgh"
    key3 = "ijkl"
    key4 = "221750B8880CD15EB76499A4BBCDF96059545A37"

    This is the code which needs to be packed into a GUI (I have not made a .NET GUI before so this will have to wait)

    Code:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Windows.Forms;
    using System.Reflection;
    using System.Security.Cryptography;
    using System.Text;
    
    namespace WindowsFormsApplication1
    {
    
        static class Program
        {
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                string finalValue = "v5.5.2";
                string Ve = "abcd";
                string We = "efgh";
                string Xe = "ijkl";
                string Ye;
                //GetFinalValue(ref finalValue);
                if ((Ve.Trim().Length != 0) && (We.Trim().Length != 0) && (Xe.Trim().Length != 0) ) 
                {
                    Ye = ComputeKey(Ve + We + finalValue.Substring(0, 4), Xe);
                    
                }
    
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Form1());
               
            }
    
            public static bool GetFinalValue(ref string finalValue)
            {
                try
                {
                    Assembly assembly = Assembly.LoadFile(Application.StartupPath + @"\Alvas.Audio.dll");
                    finalValue = "v" + assembly.GetName().Version.ToString().Substring(0, 5);
                    return true;
                }
                catch (Exception)
                {
                    return false;
                }
            }
    
            public static string ComputeKey(string A_0, string A_1)
            {
                HashFunc hashfunc = new HashFunc(A_0);
                return hashfunc.af(A_1 + "kurapica").ToUpper();
            }
    
        }
    
        internal class HashFunc
        {
            // Fields
            private int Ge;
            private int He;
            private int Ie;
            private int Je;
            private string Ke;
            private string Le;
            private string Me;
            private string Ne;
            private string Oe;
            private string Pe;
            private string Qe;
            private string[] Re = new string[0x62];
    
            // Methods
            private string e7(string text, int index)
            {
                return text.Substring(0, index);
            }
    
            private string e8(string text, int index)
            {
                return text.Substring(text.Length - index);
            }
    
            private string e9(string A_0)
            {
                MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
                UTF8Encoding encoding = new UTF8Encoding();
                string str = "";
                foreach (byte num in provider.ComputeHash(encoding.GetBytes(A_0)))
                {
                    str = str + num.ToString();
                }
                return str;
            }
    
            public string af(string A_0)
            {
                try
                {
                    SHA1 sha = SHA1.Create();
                    sha.ComputeHash(Encoding.UTF8.GetBytes(A_0));
                    string str = "";
                    for (int i = 0; i < sha.Hash.Length; i++)
                    {
                        str = str + sha.Hash[i].ToString("X2");
                    }
                    return str;
                }
                catch (Exception)
                {
                }
                return "";
            }
    
            public HashFunc(string A_0)
            {
                this.Ne = this.e9("dwgxhQIeLxUA" + A_0 + "B4dHHhd");
                this.Ke = "8x3p5BeabcdfghijklmnoqrstuvwyzACDEFGHIJKLMNOPQRSTUVWXYZ1246790";
                int index = 0;
                this.Ie = this.Ke.Length;
                this.Re[0] = this.Ke;
                int num2 = this.Ie;
                for (int i = 1; i <= num2; i++)
                {
                    this.Le = this.e7(this.Re[index], 1);
                    this.Me = this.e8(this.Re[index], this.Ie - 1);
                    this.Re[i] = this.Me + this.Le;
                    index++;
                }
            }
        }
    }

    Last edited by niaren; January 6th, 2011 at 18:04. Reason: Sorry, I will not spoil fun for other members

  5. #5
    Blacklist Hunter Kurapica's Avatar
    Join Date
    Jun 2008
    Location
    JIT compiler
    Posts
    102
    your key seems correct but I need the keygen in any language

    posting your code like this will spoil the fun for the other members
    Life can only be understood backwards but It must be read forwards

    http://board.b-at-s.info
    http://portal.b-at-s.info/news.php

  6. #6
    nick_name
    Guest

    Keygen written in Python

    Quick Summary:

    * Values in 1st and 2nd text-box does not matter even though their MD5 digest is generated with some other texts concatenated. I think it's a detour to distract.
    * Serial is the SHA-1 digest of the value in 3rd text-box as in the following Python snippet.

    Keygen written in Python:

    Code:
    #!/usr/bin/env python
    
    import hashlib
    import sys
    
    if len(sys.argv) == 1:
            msg = "3333"
    else:
            msg = sys.argv[1]
    
    sha = hashlib.sha1()
    sha.update(msg+"kurapica")
    
    print "[*] 3rd textbox = ", msg
    print "[*] 4th textbox = ", sha.hexdigest().upper()



    Last edited by nick_name; January 7th, 2011 at 10:43.
    I promise that I have read the FAQ and tried to use the Search to answer my question.

  7. #7
    Can't beat that keygen

    Anyway, made a lame .NET keygen and a keygen with some very cool graphics (kurapica will probably agree , unfortunately I couldn't make the key4 edit box readonly)

    Just for fun I tried to download kurapica's dotNET DeObfuscator from here http://portal.b-at-s.info/download.php?view.38
    Used it with default settings on the keygen but the output won't run. Just thought I'd mention it.
    Btw what is that tool doing to the audio?

    coolgen.zip
    DotNetKeyGen.zip

  8. #8
    Blacklist Hunter Kurapica's Avatar
    Join Date
    Jun 2008
    Location
    JIT compiler
    Posts
    102
    your solution is correct

    well done

    that deobfuscator tool output is just for analysis and won't run

    that audio DLL plays audio files ! but not used in my keygenme

    just a trick
    Life can only be understood backwards but It must be read forwards

    http://board.b-at-s.info
    http://portal.b-at-s.info/news.php

Similar Threads

  1. my first keygen!
    By yellow24 in forum Off Topic
    Replies: 2
    Last Post: April 5th, 2010, 11:00
  2. I need some help to make a keygen
    By g_ramzi in forum The Newbie Forum
    Replies: 7
    Last Post: November 14th, 2008, 02:08
  3. keygen masm
    By tHE SnaKe in forum Malware Analysis and Unpacking Forum
    Replies: 3
    Last Post: June 17th, 2002, 10:48
  4. Making a asm rip keygen???
    By bik78 in forum Malware Analysis and Unpacking Forum
    Replies: 5
    Last Post: May 14th, 2002, 15:13
  5. win xp keygen
    By mambox in forum Advanced Reversing and Programming
    Replies: 10
    Last Post: December 10th, 2001, 12:00

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •