程序未加壳,是Microsoft Visual C# / Basic .NET的,用Reflector载入后查到注册信息:
private void a(object A_0, EventArgs A_1)
{
try
{
string str = this.g().Text.Trim();
if (bt.c(str))
{
if (e.i(str))
{
MessageBox.Show("注册成功!重新启动后生效", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else
{
MessageBox.Show("未能注册成功!请检查软件是否安装正确以及数据库是否正确设置", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
this.Close();
}
else
{
MessageBox.Show("注册码错误!请联系供应商", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
}
catch (Exception exception1)
{
ProjectData.SetProjectError(exception1);
Exception exception = exception1;
MessageBox.Show("注册码错误!请联系供应商", "提示", MessageBoxButtons.OK, MessageBoxIcon.Hand);
ProjectData.ClearProjectError();
}
}
代码转为IL后:
.method private instance void a(object A_0, class [mscorlib]System.EventArgs A_1) cil managed
{
.maxstack 4
.locals init (
[0] string str,
[1] class [mscorlib]System.Exception exception)
L_0000: ldarg.0
L_0001: callvirt instance class [System.Windows.Forms]System.Windows.Forms.TextBox c8::g()
L_0006: callvirt instance string [System.Windows.Forms]System.Windows.Forms.TextBox::get_Text()
L_000b: callvirt instance string [mscorlib]System.String::Trim()
L_0010: stloc.0
L_0011: ldloc.0
L_0012: call bool bt::c(string)
L_0017: brfalse.s L_0051
L_0019: ldloc.0
L_001a: call bool [MarcFun]e::i(string)
L_001f: brfalse.s L_0036
L_0021: ldstr "\u6ce8\u518c\u6210\u529f\uff01\u91cd\u65b0\u542f\u52a8\u540e\u751f\u6548"
L_0026: ldstr "\u63d0\u793a"
L_002b: ldc.i4.0
L_002c: ldc.i4.s 0x40
L_002e: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string, string, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxButtons, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxIcon)
L_0033: pop
L_0034: br.s L_0049
L_0036: ldstr "\u672a\u80fd\u6ce8\u518c\u6210\u529f\uff01\u8bf7\u68c0\u67e5\u8f6f\u4ef6\u662f\u5426\u5b89\u88c5\u6b63\u786e\u4ee5\u53ca\u6570\u636e\u5e93\u662f\u5426\u6b63\u786e\u8bbe\u7f6e"
L_003b: ldstr "\u63d0\u793a"
L_0040: ldc.i4.0
L_0041: ldc.i4.s 0x10
L_0043: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string, string, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxButtons, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxIcon)
L_0048: pop
L_0049: ldarg.0
L_004a: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Form::Close()
L_004f: leave.s L_0087
L_0051: ldstr "\u6ce8\u518c\u7801\u9519\u8bef\uff01\u8bf7\u8054\u7cfb\u4f9b\u5e94\u5546"
L_0056: ldstr "\u63d0\u793a"
L_005b: ldc.i4.0
L_005c: ldc.i4.s 0x10
L_005e: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string, string, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxButtons, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxIcon)
L_0063: pop
L_0064: leave.s L_0087
L_0066: dup
L_0067: call void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.ProjectData::SetProjectError(class [mscorlib]System.Exception)
L_006c: stloc.1
L_006d: ldstr "\u6ce8\u518c\u7801\u9519\u8bef\uff01\u8bf7\u8054\u7cfb\u4f9b\u5e94\u5546"
L_0072: ldstr "\u63d0\u793a"
L_0077: ldc.i4.0
L_0078: ldc.i4.s 0x10
L_007a: call valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string, string, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxButtons, valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxIcon)
L_007f: pop
L_0080: call void [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.ProjectData::ClearProjectError()
L_0085: leave.s L_0087
L_0087: ret
.try L_0000 to L_0066 catch [mscorlib]System.Exception handler L_0066 to L_0087
}
到了这一步我要怎么样才能查到相要的东东呢?
还有查到一个界面:
private void b(object A_0, EventArgs A_1)
{
this.i().Text = "机器码:" + dh.b();
if (bt.b.d())
{
string str2;
this.c().Hide();
this.h().Hide();
this.e().Dock = DockStyle.Fill;
string str = e.i();
if (str.Length != 0x19)
{
str2 = "";
}
else
{
str2 = Strings.Mid(str, 1, 5) + "-" + Strings.Mid(str, 6, 5) + "-" + Strings.Mid(str, 11, 5) + "-" + Strings.Mid(str, 0x10, 5) + "-" + Strings.Mid(str, 0x15, 5);
}
this.e().Text = "\r\n\r\n 已成功注册\r\n\r\n 注册码: " + str2;
this.e().Show();
}
else
{
string linkData = "http://www.marcbook.net";
this.d().Links.Add(0, linkData.Length, linkData);
this.g().Text = "";
}
}
这个是不是可以计算出注册码呢?
注册码应该是根据str算出来的是吗?string str = e.i();这句不懂什么意思
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法