se que hay muchas formas de resolver un .net, pero te muestro como yo lo resolveria
vamos por el mini tute: bajo un decompilador para .net, yo elijo en este caso a Dis# una version super antigua pero funcional y que ya lo presenté hace muuuchisimas teorias atras
http://www.mediafire.com/?hakyb28gcu5luego abro el ""crackme""y coloco Proyect >"Entrypoint" osea donde comenzará este .net
vemos esto:
[DebuggerStepThrough]
protected override void OnCreateMainForm()
{
MainForm = MyProject.Forms.WarezMask;
}
[EditorBrowsable(EditorBrowsableState.Advanced)]
[DebuggerHidden]
[STAThread]
public static void Main(string[] Args)
{
Application.SetCompatibleTextRenderingDefault(WindowsFormsApplicationBase.UseCompatibleTextRendering);
MyProject.Application.Run(Args);
}
MainForm = MyProject.Forms.WarezMask;viendo esa linea debo acercarme a Myprotect.Forms.WarezMask
al ver el recurso veo esto:
namespace HcSCrackmeV2._0
{
[DesignerGenerated]
public class WarezMask : Form
{
[AccessedThroughProperty("Button1")]
private Button _Button1;
[AccessedThroughProperty("Button2")]
private Button _Button2;
[AccessedThroughProperty("Button3")]
private Button _Button3;
[AccessedThroughProperty("Label1")]
private Label _Label1;
[AccessedThroughProperty("TextBox1")]
private TextBox _TextBox1;
private IContainer components;
internal virtual Button Button1
{
get
{
Button button;
return _Button1;
}
set
{
EventHandler eventHandler = new EventHandler(Button1_Click);
if (_Button1 != null)
_Button1.Click -= eventHandler;
_Button1 = value;
if (_Button1 != null)
_Button1.Click += eventHandler;
}
}
internal virtual Button Button2
{
get
{
Button button;
return _Button2;
}
set
{
EventHandler eventHandler = new EventHandler(Button2_Click);
if (_Button2 != null)
_Button2.Click -= eventHandler;
_Button2 = value;
if (_Button2 != null)
_Button2.Click += eventHandler;
}
}
internal virtual Button Button3
{
get
{
Button button;
return _Button3;
}
set
{
EventHandler eventHandler = new EventHandler(Button3_Click);
if (_Button3 != null)
_Button3.Click -= eventHandler;
_Button3 = value;
if (_Button3 != null)
_Button3.Click += eventHandler;
}
}
internal virtual Label Label1
{
get
{
Label label;
return _Label1;
}
set
{
_Label1 = value;
}
}
internal virtual TextBox TextBox1
{
get
{
TextBox textBox;
return _TextBox1;
}
set
{
_TextBox1 = value;
}
}
[DebuggerNonUserCode]
public WarezMask()
{
InitializeComponent();
}
private void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Crackme programado por WarezMask.", "Acerca de", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
private void Button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Debes obtener el c\u00F3digo correcto.", "HcSCrackmeV2.0", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
private void Button3_Click(object sender, EventArgs e)
{
if (Operators.CompareString(TextBox1.Text, "JFRNC-8013-1131B8", false) == 0)
MessageBox.Show("\u00A1Buen trabajo, amigo!", "HcSCrackmeV2.0", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
else
MessageBox.Show("\u00A1Buen intento, pero no funcion\u00F3!", "HcSCrackmeV2.0", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
[DebuggerStepThrough]
private void InitializeComponent()
{
Button1 = new Button();
TextBox1 = new TextBox();
Button2 = new Button();
Label1 = new Label();
Button3 = new Button();
SuspendLayout();
Point point = new Point(252, 124);
Button1.Location = point;
Button1.Name = "Button1";
Size size = new Size(94, 41);
Button1.Size = size;
Button1.TabIndex = 0;
Button1.Text = "Acerca de";
Button1.UseVisualStyleBackColor = true;
TextBox1.Font = new Font("Microsoft Sans Serif", 9.75F, FontStyle.Regular, GraphicsUnit.Point, 0);
point = new Point(90, 47);
TextBox1.Location = point;
TextBox1.Multiline = true;
TextBox1.Name = "TextBox1";
size = new Size(256, 31);
TextBox1.Size = size;
TextBox1.TabIndex = 1;
Button2.ForeColor = Color.Black;
point = new Point(133, 124);
Button2.Location = point;
Button2.Name = "Button2";
size = new Size(88, 41);
Button2.Size = size;
Button2.TabIndex = 2;
Button2.Text = "Info";
Button2.UseVisualStyleBackColor = true;
Label1.AutoSize = true;
Label1.Font = new Font("Microsoft Sans Serif", 12.0F, FontStyle.Regular, GraphicsUnit.Point, 0);
point = new Point(4, 58);
Label1.Location = point;
Label1.Name = "Label1";
size = new Size(67, 20);
Label1.Size = size;
Label1.TabIndex = 3;
Label1.Text = "C\u00F3digo :";
point = new Point(13, 124);
Button3.Location = point;
Button3.Name = "Button3";
size = new Size(91, 40);
Button3.Size = size;
Button3.TabIndex = 4;
Button3.Text = "Comprobar";
Button3.UseVisualStyleBackColor = true;
SizeF sizeF = new SizeF(6.0F, 13.0F);
AutoScaleDimensions = sizeF;
AutoScaleMode = AutoScaleMode.Font;
size = new Size(358, 181);
ClientSize = size;
Controls.Add(Button3);
Controls.Add(Label1);
Controls.Add(Button2);
Controls.Add(TextBox1);
Controls.Add(Button1);
FormBorderStyle = FormBorderStyle.FixedToolWindow;
Name = "WarezMask";
Text = "HcSCrackMeV2.0";
ResumeLayout(false);
PerformLayout();
}
por lo cual solo esto es lo mas relevante: comparaciòn de el valor ingresado "TextBox1.Text", y de "JFRNC-8013-1131B8"
private void Button3_Click(object sender, EventArgs e)
{
if (Operators.CompareString(TextBox1.Text, "JFRNC-8013-1131B8", false) == 0)
MessageBox.Show("\u00A1Buen trabajo, amigo!", "HcSCrackmeV2.0", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
else
MessageBox.Show("\u00A1Buen intento, pero no funcion\u00F3!", "HcSCrackmeV2.0", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
saludos Apuromafo