.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算出注册码,注册成功!
已经有(0)位网友发表了评论,你也评一评吧!
原创文章如转载,请注明:转载自Eddy Blog
原文地址:http://www.rrgod.com/technique/386.html 欢迎订阅Eddy Blog。