Public key sample protected using ConfuserEx 1.6.0.
https://github.com/mkaring/ConfuserEx/releases/tag/v1.6.0
Your challenge is to unpack and decompile the file.
using System;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Security.Cryptography;
using System.Drawing;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public static string pkey = "<DSAKeyValue><P>71IwROY7AbrMnNlE2lU97EnQbqAWqf17VvvpQ0vS58jH/xpCrE0F9GzOwUqtWz" +
"5U5zRAJOF1o5rNndFgI+gz7ftRjpioqmWoikmjt/EXLh5DidCtl3ioW4T+7QxdFqxoNR+SFvwQxpLab00raG9ZlrNJC9NlNEmBOiLO1" +
"YwTZD8=</P><Q>iju9V4G56FzWIBq3XB+WAeUMbNE=</Q><G>nmAiiLFu9KocDaLQ/7PyH4M3yhSDghXyUvPAk+frnHFOunGB59C+khf" +
"4UFqrM88Gc3vTQ0emGHUQkQg41/zLcB6VDFYY7KXfq0lTkNVy/dDlKGyu8WeWLE5OZZnwYMqh5OHJpHvbNjTMazXVQ/hIlDBvzK2DSO" +
"VHtlVNgIL4PLw=</G><Y>cZjXy7ZsACVEVfg6hgDTMqbaa6iSz6AEvFmlP9oVL745GlMW16nCpsvGlJ198C4CatVixv4dXJcSNWaLRCJ" +
"U8P1K8xaSTYK+QIZRh4ROCqefUjgjIt8HsXayZGeN3fiRrffNyylx1N3oWy9r5pIeot+rM9g+8hvYsNJuk06pSZA=</Y><Seed>BTQt" +
"V7avBykNVpqag6o2bPnuCyI=</Seed><PgenCounter>AS8=</PgenCounter></DSAKeyValue>";
public Form1()
{
InitializeComponent();
}
private void changeText(bool type = false)
{
Label1.BackColor = Color.OrangeRed;
Label1.Text = "..:: INVALID KEY !!! ::..";
if (type)
{
Label1.BackColor = Color.GreenYellow;
Label1.Text = "CORRECT";
}
}
private void Button1_Click(object sender, EventArgs e)
{
var dsa = new DSACryptoServiceProvider();
dsa.FromXmlString(pkey);
try
{
byte[] key = Enumerable.Range(0, TextBox2.Text.Length).Where(x => x % 2 == 0).Select(x => Convert.ToByte(TextBox2.Text.Substring(x, 2), 16)).ToArray();
bool check = dsa.VerifyHash(HashAlgorithm.Create("SHA1").ComputeHash(Encoding.ASCII.GetBytes(TextBox1.Text)), CryptoConfig.MapNameToOID("SHA1"), key);
this.changeText(check);
}
catch (Exception _)
{
changeText();
}
}
private void Button2_Click(object sender, EventArgs e)
{
TextBox1.Clear();
TextBox2.Clear();
Label1.Text = "";
Label1.BackColor = SystemColors.Control;
TextBox1.Select();
}
private void button2_Click_1(object sender, EventArgs e)
{
var dsa = new DSACryptoServiceProvider();
dsa.FromXmlString(pkey);
try
{
textBox4.Text = Convert.ToString(dsa.SignData(Encoding.ASCII.GetBytes(TextBox1.Text)));
} catch (Exception err)
{
MessageBox.Show(err.Message);
}
}
}
}
Recommended Comments