极速IP搜索II 破解文章 下

时间:2005-12-20 来源: 作者: 点击:
*********************************************** IL_0046: ldloc.0 IL_0047: ldlen IL_0048: conv.i4 IL_0049: stloc.3//set loc.3=len(str0) //Index IL_004a: br.s IL_0061//Jump IL_004c: ldloc.1//str1[i] IL_004d: ldloc.3 IL_004e: ldloc.0 IL_004f: ldc.i4.0 I
  ***********************************************
   IL_0046:  ldloc.0
   IL_0047:  ldlen
   IL_0048:  conv.i4

   IL_0049:  stloc.3//set loc.3=len(str0) //Index
   IL_004a:  br.s       IL_0061//Jump

   IL_004c:  ldloc.1//str1[i]
   IL_004d:  ldloc.3

   IL_004e:  ldloc.0
   IL_004f:  ldc.i4.0
   IL_0050:  ldelem.u2

   IL_0051:  ldloc.3
   IL_0052:  mul

   IL_0053:  ldloc.3
   IL_0054:  mul

   IL_0055:  ldc.i4.s   26
   IL_0057:  rem

   IL_0058:  ldc.i4.s   65
   IL_005a:  add

   IL_005b:  conv.u2
   IL_005c:  stelem.i2

   IL_005d:  ldloc.3//i
   IL_005e:  ldc.i4.1//1
   IL_005f:  add//i=i+1
   IL_0060:  stloc.3
   IL_0061:  ldloc.3//round

   IL_0062:  ldc.i4.s   10//?<10
   IL_0064:  blt.s      IL_004c
***********************************************
上述运算
for Index=len(str0) to 10-1
str1[Index]=(str0[0]*Index*Index mod 26) +65
next
============================================
   IL_0066:  ldc.i4.s   10
   IL_0068:  stloc.s    V_4
   IL_006a:  br.s       IL_0087
   IL_006c:  ldloc.1//str1
   IL_006d:  ldloc.s    V_4

   IL_006f:  ldloc.0

   IL_0070:  ldloc.0
   IL_0071:  ldlen
   IL_0072:  conv.i4

   IL_0073:  ldc.i4.1
   IL_0074:  sub

   IL_0075:  ldelem.u2

   IL_0076:  ldloc.s    V_4
   IL_0078:  mul

   IL_0079:  ldc.i4.s   26
   IL_007b:  rem

   IL_007c:  ldc.i4.s   65
   IL_007e:  add

   IL_007f:  conv.u2
   IL_0080:  stelem.i2

   IL_0081:  ldloc.s    V_4
   IL_0083:  ldc.i4.1
   IL_0084:  add
   IL_0085:  stloc.s    V_4
   IL_0087:  ldloc.s    V_4
   IL_0089:  ldc.i4.s   20
   IL_008b:  blt.s      IL_006c
==============================================
For Index=10 to 20-1
str1[Index]=(str0[len(str0)-1]*Index mod 26) +65
Next
到此,注册码的计算完成了,呵呵,还是较简单的吧
一共20位的注册码,这种算法是不行地:)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   IL_008d:  ldstr      "SpeedIPII-"
   IL_0092:  stloc.s    V_5

   IL_0094:  ldc.i4.0
   IL_0095:  stloc.s    V_6

   IL_0097:  br.s       IL_00b5

   IL_0099:  ldloc.s    V_5

   IL_009b:  ldloc.1
   IL_009c:  ldloc.s    V_6
   IL_009e:  ldelema    [mscorlib]System.Char
   IL_00a3:  call       instance string [mscorlib]System.Char::ToString()
   IL_00a8:  call       string [mscorlib]System.String::Concat(string,
                                                               string)
   IL_00ad:  stloc.s    V_5 //最后将"SpeedIPII-" + 注册码=>完整的注册码

   IL_00af:  ldloc.s    V_6
   IL_00b1:  ldc.i4.1
   IL_00b2:  add
   IL_00b3:  stloc.s    V_6
   IL_00b5:  ldloc.s    V_6
   IL_00b7:  ldc.i4.s   20
   IL_00b9:  blt.s      IL_0099//采用循环读取每个字节的方式
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

   IL_00bb:  ldloc.s    V_5
   IL_00bd:  ldarg.0
   IL_00be:  ldfld      class [System.Windows.forms]System.Windows.
forms.TextBox SpeedIP_II.Reg::userCode//读取输入的注册码
   IL_00c3:  callvirt   instance string [System.
Windows.forms]System.Windows.forms.Control::get_Text()
   IL_00c8:  callvirt   instance bool [mscorlib]System.String::Equals(string)//=?
   IL_00cd:  stloc.s    V_7
   IL_00cf:  ldloc.s    V_7
   IL_00d1:  brfalse.s  IL_0122// 如果不.则跳到122给你警告啦! 爆破也在这里啦
不过应该在启动的时候爆破,这里没有意义
   IL_00d3:  ldstr      "ProgrameMessage.dll"
   IL_00d8:  call       class [mscorlib]System.IO.StreamWriter [mscorlib]System.IO.file::CreateText(string)
   IL_00dd:  stloc.s    V_8
   IL_00df:  ldloc.s    V_8
   IL_00e1:  ldarg.0
   IL_00e2:  ldfld      class [System.Windows.forms]System.Windows.forms.TextBox SpeedIP_II.Reg::userName
   IL_00e7:  callvirt   instance string [System.Windows.forms]System.Windows.forms.Control::get_Text()
   IL_00ec:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(string)
   IL_00f1:  ldloc.s    V_8
   IL_00f3:  ldarg.0
   IL_00f4:  ldfld      class [System.Windows.forms]System.Windows.forms.TextBox SpeedIP_II.Reg::userCode
   IL_00f9:  callvirt   instance string [System.Windows.forms]System.Windows.forms.Control::get_Text()
   IL_00fe:  callvirt   instance void [mscorlib]System.IO.TextWriter::WriteLine(string)
   IL_0103:  ldloc.s    V_8
   IL_0105:  callvirt   instance void [mscorlib]System.IO.TextWriter::Close()
   IL_010a:  ldstr      bytearray (E8 6C 8C 51 10 62 9F 52 01 FF 1F 61 22 8C A8 60   // .l.Q.b.R...a"..`
                                   84 76 E8 6C 8C 51 01 FF 08 FF F7 8B CD 91 B0 65   // .v.l.Q.........e
                                   2F 54 A8 52 6F 8F F6 4E 09 FF )                   // /T.Ro..N..
//上面的这段数组,猜都能猜到是信息文字啦,那是什么呢,怎么看?
//很简单阿,用一个Unicode=>ASCII的显示工具就可以看到了
//正好做了一个小工具,显示看看
//"注册成功!感谢您的注册!(请重新启动软件)"
//哈哈,等的就是这个啦
   IL_010f:  ldstr      bytearray (D0 63 3A 79 E1 4F 6F 60 )          // .c:y.Oo`
   IL_0114:  call       valuetype [System.Windows.forms]System.Windows.forms.DialogResult [System.Windows.forms]System.Windows.forms.MessageBox::Show(string,
                            string)
   IL_0119:  pop
   IL_011a:  ldarg.0
   IL_011b:  call       instance void [System.Windows.forms]System.Windows.forms.form::Close()
   IL_0120:  br.s       IL_0132
   IL_0122:  ldstr      bytearray (F9 5B 0D 4E 77 8D 01 FF A8 60 40 62 93 8F 65 51   // .[.Nw....`@b..eQ
                                   84 76 28 75 37 62 0D 54 8C 54 E8 6C 8C 51 01 78   // .v(u7b.T.T.l.Q.x
                                   0D 4E 26 7B 01 FF )              // .N&{..
   IL_0127:  ldstr      bytearray (D0 63 3A 79 E1 4F 6F 60 )                         // .c:y.Oo`
   IL_012c:  call       valuetype [System.Windows.forms]System.Windows.forms.DialogResult [System.Windows.forms]System.Windows.forms.MessageBox::Show(string,
                                  string)
//"对不起!您所输入的用户名和注册码不符!"
   IL_0131:  pop
   IL_0132:  leave.s    IL_014a
 }  // end .try
 catch [mscorlib]System.Exception
 {
   IL_0134:  stloc.s    V_9
   IL_0136:  ldloc.s    V_9
   IL_0138:  callvirt   instance string [mscorlib]System.Exception::get_Message()
   IL_013d:  ldstr      bytearray (D0 63 3A 79 E1 4F 6F 60 )          // .c:y.Oo`
   IL_0142:  call       valuetype [System.Windows.forms]System.Windows.forms.DialogResult [System.Windows.forms]System.Windows.forms.MessageBox::Show(string,
                              sp;    string)
   IL_0147:  pop
   IL_0148:  leave.s    IL_014a
 }  // end handler
 IL_014a:  ret
} // end of method Reg::regB_Click

这是继法语助手Vb.net后我破解的第二个.net软件,
不过由于使用了一句语句的运算,使得结构看起来比较乱,还好搞定了!:)

注册机的话,用VBs写就行了,反正简单,不写了!:)

------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容