这个是一个模拟游戏软件,用PEID0.92查到是了Microsoft Visual C# / Basic .NET的。运行时提示要注册输入序列号。如下是用Reflector打开选择IL格式找到有关的注册信息的代码,这个程序没有用到混淆器。由于没有接触过vb.net程序,初次碰到不知道如何下手请高手们指点!在此声明不是申请破解。
.method private instance void Form1_Load(object sender, [mscorlib]System.EventArgs e) cil managed
{
// Code Size: 1131 byte(s)
.maxstack 7
.locals (
[mscorlib]System.IO.StreamReader reader1,
int32 num1,
string text1,
string text2,
string text3,
int32 num2,
[mscorlib]System.IO.Stream stream1,
string[] textArray1,
string text4,
string text5,
string text6,
string text7,
string text8,
string text9,
int32 num3)
L_0000: ldarg.0
L_0001: ldfld char[] vb2.Form1::shutdown
L_0006: ldc.i4.0
L_0007: ldc.i4.s 92
L_0009: stelem.i2
L_000a: ldarg.0
L_000b: ldfld char[] vb2.Form1::shutdown
L_0010: ldc.i4.1
L_0011: ldc.i4.s 92
L_0013: stelem.i2
L_0014: ldarg.0
L_0015: ldfld char[] vb2.Form1::shutdown
L_001a: ldc.i4.2
L_001b: ldc.i4.s 92
L_001d: stelem.i2
L_001e: ldarg.0
L_001f: ldfld char[] vb2.Form1::shutdown
L_0024: ldc.i4.3
L_0025: ldc.i4.s 92
L_0027: stelem.i2
L_0028: ldarg.0
L_0029: ldfld char[] vb2.Form1::shutdown
L_002e: ldc.i4.4
L_002f: ldc.i4.s 92
L_0031: stelem.i2
L_0032: ldarg.0
L_0033: ldfld char[] vb2.Form1::shutdown
L_0038: ldc.i4.5
L_0039: ldc.i4.s 92
L_003b: stelem.i2
L_003c: ldarg.0
L_003d: ldfld char[] vb2.Form1::shutdown
L_0042: ldc.i4.6
L_0043: ldc.i4.s 92
L_0045: stelem.i2
L_0046: ldarg.0
L_0047: ldfld char[] vb2.Form1::shutdown
L_004c: ldc.i4.7
L_004d: ldc.i4.s 92
L_004f: stelem.i2
L_0050: ldarg.0
L_0051: ldfld char[] vb2.Form1::shutdown
L_0056: ldc.i4.8
L_0057: ldc.i4.s 92
L_0059: stelem.i2
L_005a: ldarg.0
L_005b: ldfld char[] vb2.Form1::shutdown
L_0060: ldc.i4.s 9
L_0062: ldc.i4.s 92
L_0064: stelem.i2
L_0065: ldarg.0
L_0066: ldfld char[] vb2.Form1::shutdown
L_006b: ldc.i4.s 10
L_006d: ldc.i4.s 92
L_006f: stelem.i2
L_0070: ldarg.0
L_0071: ldfld char[] vb2.Form1::shutdown
L_0076: ldc.i4.s 11
L_0078: ldc.i4.s 92
L_007a: stelem.i2
L_007b: ldarg.0
L_007c: ldfld char[] vb2.Form1::shutdown
L_0081: ldc.i4.s 12
L_0083: ldc.i4.s 92
L_0085: stelem.i2
L_0086: ldarg.0
L_0087: ldfld char[] vb2.Form1::shutdown
L_008c: ldc.i4.s 13
L_008e: ldc.i4.s 92
L_0090: stelem.i2
L_0091: ldarg.0
L_0092: ldfld char[] vb2.Form1::shutdown
L_0097: ldc.i4.s 14
L_0099: ldc.i4.s 92
L_009b: stelem.i2
L_009c: ldarg.0
L_009d: ldfld char[] vb2.Form1::shutdown
L_00a2: ldc.i4.s 15
L_00a4: ldc.i4.s 92
L_00a6: stelem.i2
L_00a7: ldarg.0
L_00a8: ldfld char[] vb2.Form1::shutdown
L_00ad: ldc.i4.s 16
L_00af: ldc.i4.s 92
L_00b1: stelem.i2
L_00b2: ldarg.0
L_00b3: ldfld char[] vb2.Form1::shutdown
L_00b8: ldc.i4.s 17
L_00ba: ldc.i4.s 92
L_00bc: stelem.i2
L_00bd: ldarg.0
L_00be: ldfld char[] vb2.Form1::shutdown
L_00c3: ldc.i4.s 18
L_00c5: ldc.i4.s 92
L_00c7: stelem.i2
L_00c8: ldarg.0
L_00c9: ldfld char[] vb2.Form1::shutdown
L_00ce: ldc.i4.s 19
L_00d0: ldc.i4.s 92
L_00d2: stelem.i2
L_00d3: ldarg.0
L_00d4: ldfld string[] vb2.Form1::GamePaths
L_00d9: ldc.i4.0
L_00da: ldstr "c:\\mgames\\game0\\play.bat "
L_00df: stelem.ref
L_00e0: ldarg.0
L_00e1: ldfld string[] vb2.Form1::GamePaths
L_00e6: ldc.i4.1
L_00e7: ldstr "c:\\mgames\\game1\\play.bat "
L_00ec: stelem.ref
L_00ed: ldarg.0
L_00ee: ldfld string[] vb2.Form1::GamePaths
L_00f3: ldc.i4.2
L_00f4: ldstr "c:\\mgames\\game2\\play.bat "
L_00f9: stelem.ref
L_00fa: ldarg.0
L_00fb: ldfld string[] vb2.Form1::GamePaths
L_0100: ldc.i4.3
L_0101: ldstr "c:\\mgames\\game3\\play.bat "
L_0106: stelem.ref
L_0107: ldarg.0
L_0108: ldfld string[] vb2.Form1::GamePaths
L_010d: ldc.i4.4
L_010e: ldstr "c:\\mgames\\game4\\play.bat "
L_0113: stelem.ref
L_0114: ldarg.0
L_0115: ldfld string[] vb2.Form1::GamePaths
L_011a: ldc.i4.5
L_011b: ldstr "c:\\mgames\\game5\\play.bat "
L_0120: stelem.ref
L_0121: ldarg.0
L_0122: ldfld string[] vb2.Form1::GamePaths
L_0127: ldc.i4.6
L_0128: ldstr "c:\\mgames\\game6\\play.bat "
L_012d: stelem.ref
L_012e: call string [mscorlib]System.Environment::get_CurrentDirectory()
L_0133: ldstr "\\gamelist.ini"
L_0138: call string string::Concat(string, string)
L_013d: call [mscorlib]System.IO.FileStream [mscorlib]System.IO.File::OpenRead(string)
L_0142: stloc.s stream1
L_0144: ldloc.s stream1
L_0146: call [mscorlib]System.Text.Encoding [mscorlib]System.Text.Encoding::get_Default()
L_014b: newobj instance void [mscorlib]System.IO.StreamReader::.ctor([mscorlib]System.IO.Stream,
[mscorlib]System.Text.Encoding)
L_0150: stloc.0
L_0151: ldarg.0
L_0152: ldc.i4.0
L_0153: stfld int32 vb2.Form1::GameCount
L_0158: br L_02ae
L_015d: ldloc.0
L_015e: callvirt instance string [mscorlib]System.IO.StreamReader::ReadLine()
L_0163: callvirt instance string string::Trim()
L_0168: stloc.s text4
L_016a: ldloc.s text4
L_016c: ldc.i4.0
L_016d: newarr char
L_0172: callvirt instance string[] string::Split(char[])
L_0177: stloc.s textArray1
L_0179: ldloc.s textArray1
L_017b: callvirt instance int32 [mscorlib]System.Array::get_Length()
L_0180: ldc.i4.4
L_0181: bgt L_02ae
L_0186: ldloc.s textArray1
L_0188: ldc.i4.0
L_0189: ldelem.ref
L_018a: ldstr "0"
L_018f: ldc.i4.0
L_0190: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_0195: ldc.i4.0
L_0196: bne.un.s L_01a0
L_0198: ldc.i4.0
L_0199: stloc.s num2
L_019b: br L_0254
L_01a0: ldloc.s textArray1
L_01a2: ldc.i4.0
L_01a3: ldelem.ref
L_01a4: ldstr "1"
L_01a9: ldc.i4.0
L_01aa: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_01af: ldc.i4.0
L_01b0: bne.un.s L_01ba
L_01b2: ldc.i4.1
L_01b3: stloc.s num2
L_01b5: br L_0254
L_01ba: ldloc.s textArray1
L_01bc: ldc.i4.0
L_01bd: ldelem.ref
L_01be: ldstr "2"
L_01c3: ldc.i4.0
L_01c4: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_01c9: ldc.i4.0
L_01ca: bne.un.s L_01d4
L_01cc: ldc.i4.2
L_01cd: stloc.s num2
L_01cf: br L_0254
L_01d4: ldloc.s textArray1
L_01d6: ldc.i4.0
L_01d7: ldelem.ref
L_01d8: ldstr "3"
L_01dd: ldc.i4.0
L_01de: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_01e3: ldc.i4.0
L_01e4: bne.un.s L_01eb
L_01e6: ldc.i4.3
L_01e7: stloc.s num2
L_01e9: br.s L_0254
L_01eb: ldloc.s textArray1
L_01ed: ldc.i4.0
L_01ee: ldelem.ref
L_01ef: ldstr "4"
L_01f4: ldc.i4.0
L_01f5: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_01fa: ldc.i4.0
L_01fb: bne.un.s L_0202
L_01fd: ldc.i4.4
L_01fe: stloc.s num2
L_0200: br.s L_0254
L_0202: ldloc.s textArray1
L_0204: ldc.i4.0
L_0205: ldelem.ref
L_0206: ldstr "5"
L_020b: ldc.i4.0
L_020c: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_0211: ldc.i4.0
L_0212: bne.un.s L_0219
L_0214: ldc.i4.5
L_0215: stloc.s num2
L_0217: br.s L_0254
L_0219: ldloc.s textArray1
L_021b: ldc.i4.0
L_021c: ldelem.ref
L_021d: ldstr "6"
L_0222: ldc.i4.0
L_0223: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_0228: ldc.i4.0
L_0229: bne.un.s L_0230
L_022b: ldc.i4.6
L_022c: stloc.s num2
L_022e: br.s L_0254
L_0230: ldstr "error: Path is wrong"
L_0235: ldloc.s textArray1
L_0237: ldc.i4.0
L_0238: ldelem.ref
L_0239: ldarg.0
L_023a: ldfld int32 vb2.Form1::GameCount
L_023f: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::FromInteger(int32)
L_0244: call string string::Concat(string, string, string)
L_0249: ldc.i4.0
L_024a: ldnull
L_024b: call [Microsoft.VisualBasic]Microsoft.VisualBasic.MsgBoxResult
[Microsoft.VisualBasic]Microsoft.VisualBasic.Interaction::MsgBox(object,
[Microsoft.VisualBasic]Microsoft.VisualBasic.MsgBoxStyle, object)
L_0250: pop
L_0251: ldc.i4.0
L_0252: stloc.s num2
L_0254: ldarg.0
L_0255: ldfld string[] vb2.Form1::AppPathName
L_025a: ldarg.0
L_025b: ldfld int32 vb2.Form1::GameCount
L_0260: ldarg.0
L_0261: ldfld string[] vb2.Form1::GamePaths
L_0266: ldloc.s num2
L_0268: ldelem.ref
L_0269: ldloc.s textArray1
L_026b: ldc.i4.1
L_026c: ldelem.ref
L_026d: call string string::Concat(string, string)
L_0272: stelem.ref
L_0273: ldarg.0
L_0274: ldfld string[] vb2.Form1::PicPathName
L_0279: ldarg.0
L_027a: ldfld int32 vb2.Form1::GameCount
L_027f: ldarg.0
L_0280: ldfld string vb2.Form1::PicPath
L_0285: ldloc.s textArray1
L_0287: ldc.i4.3
L_0288: ldelem.ref
L_0289: call string string::Concat(string, string)
L_028e: stelem.ref
L_028f: ldarg.0
L_0290: ldfld string[] vb2.Form1::Describes
L_0295: ldarg.0
L_0296: ldfld int32 vb2.Form1::GameCount
L_029b: ldloc.s textArray1
L_029d: ldc.i4.2
L_029e: ldelem.ref
L_029f: stelem.ref
L_02a0: ldarg.0
L_02a1: ldarg.0
L_02a2: ldfld int32 vb2.Form1::GameCount
L_02a7: ldc.i4.1
L_02a8: add.ovf
L_02a9: stfld int32 vb2.Form1::GameCount
L_02ae: ldloc.0
L_02af: callvirt instance int32 [mscorlib]System.IO.StreamReader::Peek()
L_02b4: ldc.i4.m1
L_02b5: bgt L_015d
L_02ba: ldloc.0
L_02bb: callvirt instance void [mscorlib]System.IO.StreamReader::Close()
L_02c0: ldc.i4.0
L_02c1: ldarg.0
L_02c2: ldfld int32 vb2.Form1::GameCount
L_02c7: ldc.i4.1
L_02c8: sub.ovf
L_02c9: stloc.s num3
L_02cb: stloc.1
L_02cc: br.s L_02eb
L_02ce: ldarg.0
L_02cf: callvirt instance [System.Windows.Forms]System.Windows.Forms.ListBox vb2.Form1::get_ListBox1()
L_02d4: callvirt instance [System.Windows.Forms]System.Windows.Forms.ListBox/ObjectCollection
[System.Windows.Forms]System.Windows.Forms.ListBox::get_Items()
L_02d9: ldarg.0
L_02da: ldfld string[] vb2.Form1::Describes
L_02df: ldloc.1
L_02e0: ldelem.ref
L_02e1: callvirt instance int32 [System.Windows.Forms]System.Windows.Forms.ListBox/ObjectCollection::Add(object)
L_02e6: pop
L_02e7: ldloc.1
L_02e8: ldc.i4.1
L_02e9: add.ovf
L_02ea: stloc.1
L_02eb: ldloc.1
L_02ec: ldloc.s num3
L_02ee: ble.s L_02ce
L_02f0: ldarg.0
L_02f1: callvirt instance [System.Windows.Forms]System.Windows.Forms.ListBox vb2.Form1::get_ListBox1()
L_02f6: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::Update()
L_02fb: ldarg.0
L_02fc: callvirt instance [System.Windows.Forms]System.Windows.Forms.ListBox vb2.Form1::get_ListBox1()
L_0301: ldc.i4.0
L_0302: ldc.i4.1
L_0303: callvirt instance void [System.Windows.Forms]System.Windows.Forms.ListBox::SetSelected(int32, bool)
L_0308: ldc.i4 256
L_030d: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Space(int32)
L_0312: stloc.s text3
L_0314: ldstr "Option" //这项是KeyFile的内容[Option]
L_0319: stloc.s text9
L_031b: ldloca.s text9
L_031d: ldstr "Serial" //这项是KeyFile的内容Serial=XXXX序列号
L_0322: stloc.s text8
L_0324: ldloca.s text8
L_0326: ldstr "Nothing"
L_032b: stloc.s text7
L_032d: ldloca.s text7
L_032f: ldloca.s text3
L_0331: ldloc.s text3
L_0333: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Len(string)
L_0338: call string [mscorlib]System.Environment::get_CurrentDirectory()
L_033d: ldstr "\\longgame.ini" //这个是KeyFile文件名
L_0342: call string string::Concat(string, string)
L_0347: stloc.s text6
L_0349: ldloca.s text6
L_034b: call int32 vb2.Form1::GetPrivateProfileString(string&, string&, string&, string&, int32, string&)
L_0350: pop
L_0351: call string vb2.Form1::GetDiskSER()
L_0356: stloc.3
L_0357: ldloc.s text3
L_0359: ldstr "Nothing"
L_035e: ldc.i4.0
L_035f: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.CompilerServices.StringType::StrCmp(string, string,
bool)
L_0364: ldc.i4.0
L_0365: bne.un.s L_036e
L_0367: ldstr "\u65e0\u6548\u5e8f\u5217\u53f7"
L_036c: stloc.s text3
L_036e: ldloc.3
L_036f: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Trim(string)
L_0374: stloc.3
L_0375: ldloc.3
L_0376: ldstr ""
L_037b: callvirt instance int32 string::CompareTo(string)
L_0380: ldc.i4.0
L_0381: bne.un.s L_0389
L_0383: ldstr "Nothing"
L_0388: stloc.3
L_0389: ldloc.3
L_038a: ldstr "ohmygodd"
L_038f: call string vb2.Form1::Encrypt(string, string)
L_0394: stloc.2
L_0395: ldloc.s text3
L_0397: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Trim(string)
L_039c: stloc.s text3
L_039e: ldloc.2
L_039f: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Trim(string)
L_03a4: stloc.2
L_03a5: ldloc.s text3
L_03a7: ldloc.2
L_03a8: callvirt instance int32 string::CompareTo(string)
L_03ad: ldc.i4.0
L_03ae: beq.s L_0428
L_03b0: ldstr "\u5e8f\u5217\u53f7\u65e0\u6548\uff01\r\n\u4e3b\u673a\u53f7\u7801\uff1a"
L_03b5: ldloc.3
L_03b6: call string string::Concat(string, string)
L_03bb: ldstr "\r\n\u8bf7\u8f93\u5165\u5e8f\u5217\u53f7\uff1a"
L_03c0: call string string::Concat(string, string)
L_03c5: ldstr "longgame"
L_03ca: ldstr ""
L_03cf: ldc.i4.m1
L_03d0: ldc.i4.m1
L_03d1: call string [Microsoft.VisualBasic]Microsoft.VisualBasic.Interaction::InputBox(string, string, string, int32,
int32)
L_03d6: stloc.s text5
L_03d8: ldloc.s text5
L_03da: call int32 [Microsoft.VisualBasic]Microsoft.VisualBasic.Strings::Len(string)
L_03df: ldc.i4.0
L_03e0: ceq
L_03e2: ldloc.2
L_03e3: ldloc.s text5
L_03e5: call int32 string::Compare(string, string)
L_03ea: ldc.i4.0
L_03eb: ceq
L_03ed: ldc.i4.0
L_03ee: ceq
L_03f0: or
L_03f1: brfalse.s L_03fb
L_03f3: ldarg.0
L_03f4: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Form::Close()
L_03f9: br.s L_0428
L_03fb: ldstr "Option" //这项是KeyFile的内容[Option]
L_0400: stloc.s text6
L_0402: ldloca.s text6
L_0404: ldstr "Serial" //这项是KeyFile的内容Serial=XXXX序列号
L_0409: stloc.s text7
L_040b: ldloca.s text7
L_040d: ldloca.s text1
L_040f: call string [mscorlib]System.Environment::get_CurrentDirectory()
L_0414: ldstr "\\longgame.ini" //这个是KeyFile文件名
L_0419: call string string::Concat(string, string)
L_041e: stloc.s text8
L_0420: ldloca.s text8
L_0422: call int32 vb2.Form1::WritePrivateProfileString(string&, string&, string&, string&)
L_0427: pop
L_0428: ldarg.0
L_0429: callvirt instance [System.Windows.Forms]System.Windows.Forms.Label vb2.Form1::get_Label6()
L_042e: ldstr "\u5e8f\u5217\u53f7\uff1a"
L_0433: ldloc.2
L_0434: call string string::Concat(string, string)
L_0439: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
L_043e: ldarg.0
L_043f: callvirt instance bool vb2.Form1::InitDirectInput()
L_0444: brtrue.s L_0453
L_0446: ldstr "\u521d\u59cb\u5316\u6447\u6746\u5931\u8d25"
L_044b: ldc.i4.0
L_044c: ldnull
L_044d: call [Microsoft.VisualBasic]Microsoft.VisualBasic.MsgBoxResult
[Microsoft.VisualBasic]Microsoft.VisualBasic.Interaction::MsgBox(object,
[Microsoft.VisualBasic]Microsoft.VisualBasic.MsgBoxStyle, object)
L_0452: pop
L_0453: ldarg.0
L_0454: callvirt instance [System.Windows.Forms]System.Windows.Forms.Timer vb2.Form1::get_Timer1()
L_0459: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Timer::Start()
L_045e: ldarg.0
L_045f: callvirt instance [System.Windows.Forms]System.Windows.Forms.ListBox vb2.Form1::get_ListBox1()
L_0464: callvirt instance bool [System.Windows.Forms]System.Windows.Forms.Control::Focus()
L_0469: pop
L_046a: ret
[课程]Android-CTF解题方法汇总!