转:IrisSkin换肤软件 DotNET的一次破解过程

IrisSkin,这是为DotNET程序做的一个换皮肤插件。发布此版只是为了共同交流研究,如果感觉好,请大家支持正版软件。
  个人感觉此换肤软件的免费皮肤多,而且漂亮,但是刷新有点儿慢。
  目前官方最新版本为:V3.6 版 官方网址:http://www.sunisoft.cn/
  未破解前,有一个对话框,破解思路,去掉显示的对话框,再重新编译
  破解工具:ildasm ilasm UEDIT(个人习惯使用,这个随便了) [注] ildasm[vs2003版]可以到看雪下载修改版,原版的有限制
  1. 用ildasm打开IrisSkin.dll,然后转存成aaa.il
  2. 查找messagebox,找到如下代码
    .method public hidebysig static void
            xf4f948f95d7023bb() cil managed
    {
      // 代码大小       61 (0x3d)
      .maxstack  3
      .locals (string V_0)
      IL_0000:  ldstr      "dkledamgeihfpboeepjfhbcgjocgabkgnakiimgjjgciofokac"
      + "pdgegekdnebeefoblfddcgocjgadahlmfhodhnffmoofmopeiocneaadmpglgkojkdmiccn"
      + "coaakdpikkmckbn"
      IL_0005:  ldc.i4     0x70eafb
      IL_000a:  call       string xb9d8bb5e6df032aa.x1110bdd110cdcea4::_xaacba899487bce8c(string,
                                                                                          int32)
      IL_000f:  call       string [mscorlib]System.String::Intern(string)
      IL_0014:  stloc.0
      IL_0015:  ldloc.0
      IL_0016:  ldstr      "cmfdlmmdimdebmkeiibfkhifhhpfmlggjlngglehkglhmkcilk"
      + "jibkajjjhjakojjjfknimkijdlpeklbibmjiimhepmohgneinniheophlomhcpbhjpmgaao"
      + "ghamcoa"
      IL_001b:  ldc.i4     0x419b355a
      IL_0020:  call       string xb9d8bb5e6df032aa.x1110bdd110cdcea4::_xaacba899487bce8c(string,
                                                                                          int32)
      IL_0025:  call       string [mscorlib]System.String::Intern(string)
      IL_002a:  call       string [mscorlib]System.String::Concat(string,
                                                                  string)
      IL_002f:  stloc.0
      IL_0030:  ldloc.0
      IL_0031:  ldstr      " "
      IL_0036:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]

System.Windows.Forms.MessageBox::Show(string,
                                                                                                                             

                           string)                // 试用版显示对话框的地方
      IL_003b:  pop
      IL_003c:  ret
    } // end of method x448fd9ab43628c71::xf4f948f95d7023bb 

  3. 把显示消息框的地方注释掉,如下
  .method public hidebysig static void  xf4f948f95d7023bb() cil managed
  {
    // 代码大小       61 (0x3d)
    .maxstack  3
    .locals init (string V_0)
    IL_0000:  ldstr      "dkledamgeihfpboeepjfhbcgjocgabkgnakiimgjjgciofokac"
    + "pdgegekdnebeefoblfddcgocjgadahlmfhodhnffmoofmopeiocneaadmpglgkojkdmiccn"
    + "coaakdpikkmckbn"
    IL_0005:  ldc.i4     0x70eafb
    IL_000a:  call       string xb9d8bb5e6df032aa.x1110bdd110cdcea4::_xaacba899487bce8c(string,
                                                                                        int32)
    IL_000f:  call       string [mscorlib]System.String::Intern(string)
    IL_0014:  stloc.0
    IL_0015:  ldloc.0
    IL_0016:  ldstr      "cmfdlmmdimdebmkeiibfkhifhhpfmlggjlngglehkglhmkcilk"
    + "jibkajjjhjakojjjfknimkijdlpeklbibmjiimhepmohgneinniheophlomhcpbhjpmgaao"
    + "ghamcoa"
    IL_001b:  ldc.i4     0x419b355a
    IL_0020:  call       string xb9d8bb5e6df032aa.x1110bdd110cdcea4::_xaacba899487bce8c(string,
                                                                                        int32)
    IL_0025:  call       string [mscorlib]System.String::Intern(string)
    IL_002a:  call       string [mscorlib]System.String::Concat(string,
                                                                string)
    IL_002f:  stloc.0
//*******************************    去掉显示的对话框    ***********************************//
    //IL_0030:  ldloc.0
    //IL_0031:  ldstr      " "
    //IL_0036:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]

System.Windows.Forms.MessageBox::Show(string,
    //                                                                                                                       

                           string)
    //IL_003b:  pop
//*****************************   去掉显示的对话框结束   ***********************************//
    IL_003c:  ret
  } // end of method x448fd9ab43628c71::xf4f948f95d7023bb

  4. 完成后,用ilasm 重新编译程序 ilasm /dll /resource=aaa.res aaa.il得到的aaa.DLL 即为破解的DLL
  5. 破解完毕


  6. 关于VS2005版(IrisSkin2.dll)的破解过程,基本相同,这里就不再重复

 

注:在破解中发现:.custom '<Modual>'处编译不了,注释掉,编译dll成功,目前能够正常使用,不知有没有bug。

使用DotNet Helper 反编译更方便,并且可以去除强命名

posted @ 2009-05-21 00:15  流泉飞石  阅读(1134)  评论(0)    收藏  举报