【原创】破解iTunesFolderWatch v2.0.04[注册机]

Eddy 发布于2010-3-1 16:50:19 分类: 技术心得 已浏览loading 网友评论0条 我要评论

.net写的一个软件,居然没加壳,也没混淆,赤裸裸的

用Reflector载入主程序,通过关键字符串找到关键代码处:

private void btnOK_Click(object sender, EventArgs e)
{
    MachineInfo info = new MachineInfo();
    string str = this.keyMask.Text.ToUpper();
    string errorText = "";
    string webContent = WebStuff.GetWebContent("http://albumbrowser.klarita.net/vbl.txt", out errorText);
    if (this.email.Text.Trim() == "")
    {
        this.result.Text = "Email address must be entered.";
    }
    else if ((webContent == "") && (errorText != ""))
    {
        this.result.Text = "Internet access required.";
    }
    else if (((Program.bannedList != "") && (this.email.Text != "")) && Program.bannedList.ToLower().Contains("|" + this.email.Text.ToLower().Trim() + "|"))
    {
        this.result.Text = "This email address is banned.";
    }
    else if (((webContent != "") && (this.email.Text != "")) && webContent.ToLower().Contains("|" + this.email.Text.ToLower().Trim() + "|"))
    {
        this.result.Text = "This email address is banned.";
    }
    else if (((str == Encryption.Encrypt(this.email.Text.ToLower(), "iTFW")) || (str == Encryption.Encrypt(this.email.Text.ToLower(), ""))) || ((str == Encryption.Encrypt(info.FingerPrint(), "iTFW")) || (str == Encryption.Encrypt(info.FingerPrint(), ""))))
    {
        Settings.Default.email = this.email.Text;
        Settings.Default.LicenceKey = str;
        Settings.Default.Save();
        this.result.Text = "Licence Key Accepted";
        Application.DoEvents();
        Timer timer = new Timer();
        timer.Interval = 0x3e8;
        timer.Tick += new EventHandler(this.x_Tick);
        timer.Start();
    }
    else
    {
        this.result.Text = "Licence Key Invalid.";
    }
}

public static string Encrypt(string cleanString, string key)
{
    byte[] bytes = new UnicodeEncoding().GetBytes("Klara" + cleanString + key + "Marek");
    string str = BitConverter.ToString(((HashAlgorithm) CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes));
    return (str.Substring(0, 2) + str.Substring(3, 2) + str.Substring(6, 1) + "-" + str.Substring(7, 1) + str.Substring(9, 2) + str.Substring(12, 2) + "-" + str.Substring(15, 2) + str.Substring(0x12, 2) + str.Substring(0x15, 1) + "-" + str.Substring(0x16, 1) + str.Substring(0x18, 2) + str.Substring(0x1b, 2));
}

没什么好说的,源码了……

写个注册机(没处理黑Key):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;

namespace iTunesFolderWatch_KeyGen
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public static string Encrypt(string cleanString, string key)
        {
            byte[] bytes = new UnicodeEncoding().GetBytes("Klara" + cleanString + key + "Marek");
            string str = BitConverter.ToString(((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(bytes));
            return (str.Substring(0, 2) + str.Substring(3, 2) + str.Substring(6, 1) + "-" + str.Substring(7, 1) + str.Substring(9, 2) + str.Substring(12, 2) + "-" + str.Substring(15, 2) + str.Substring(0x12, 2) + str.Substring(0x15, 1) + "-" + str.Substring(0x16, 1) + str.Substring(0x18, 2) + str.Substring(0x1b, 2));
        }

        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text = Encrypt(textBox1.Text.ToLower(), "iTFW");
        }

    }
}

OK。用JJ算出注册码,注册成功!

 

注册机下载:http://e.ys168.com/?eddyblog

已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/technique/386.html     欢迎订阅Eddy Blog

记住我的信息,下次不用再输入 欢迎给Eddy Blog留言