DundasWebChart 5.5 破解续.

1.Reflector.exe + ilDasm.exe + ilasm.exe 破解DundasWebChart(VS2005) 5.5 成功

上篇介绍的破解方法可以去除图片中的水印并且不稳定,但是无法去除falsh中的水印.
后来继续分析出了其破解方法,可以完全实现DundasWebChart的破解,方法如下:
1.分析Dundas.Charting.WebControl.ChartLicenseProvider中方法 iskeyvalid

protected virtual bool IsKeyValid(string key, Type type)
{
      
            
if (((textArray1.Length >= 2&& (textArray1[1== Chart.b)) && (textArray1[1== this.a()))
            
{
  
//将返回的false 改为 true
                  return false;
            }

      }

      
return true;
}


2.取消绘画的水印.

Dundas.Charting.WebControl.ChartPicture 中方法

public void Paint(Graphics graph, bool paintTopLevelElementOnly, RenderingType renderingType, XmlTextWriter svgTextWriter, Stream flashStream, string documentTitle, bool resizable, bool preserveAspectRatio)
{
 
     
this.OnAfterPaint(new ChartPaintEventArgs(this.a, this.a, new ElementPosition(0f, 0f, 100f, 100f)));
            
foreach (ChartArea area9 in this.a)
            
{
                  
if (area9.Visible)
                  
{
                        area9.a();
                        area9.d();
                  }

            }

     
//由于为真,会每次都会重画水印,设置为false 即可. 将this.e=true;改为 graph.e=false;
            this.e = true;
            
if (graph.e)
            
{
                  StringFormat format1 
= new StringFormat();
                  format1.Alignment 
= StringAlignment.Near;
                  format1.LineAlignment 
= StringAlignment.Near;
                  SolidBrush brush1 
= new SolidBrush(Color.FromArgb(40110xaf));
                  SolidBrush brush2 
= new SolidBrush(Color.FromArgb(40200200200));
                  Font font1 
= new Font(ChartPicture.a(), 8f);
                  SizeF ef3 
= this.a.GetRelativeSize(new SizeF(2f, 2f));
  .
}


利用 ildasm  反编辑程序集.
1.修改 IsKeyValid 的返回值

 

 .method family hidebysig newslot virtual 
          instance 
bool  IsKeyValid(string key,
                                    
class [mscorlib]System.Type 'type') cil managed
  
{
    .

    IL_0091:  ldc.i4.
1
    IL_0092:  ret

    IL_0093:  ldc.i4.
0   //将其修改为 ldc.i4.1
    IL_0094:  ret

    IL_0095:  ldc.i4.
0   //将其修改为 ldc.i4.1
    IL_0096:  ret
  }
 


2.修改Paint 方法.
找到方法位置如下:

 IL_0aff:  ldarg.0
      IL_0b00:  ldc.i4.
1
      IL_0b01:  stfld      
bool Dundas.Charting.WebControl.ChartPicture::e
      IL_0b06:  ldarg.
0
      IL_0b07:  ldfld      
bool Dundas.Charting.WebControl.ChartPicture::e
      IL_0b0c:  brfalse    IL_0bfb

      IL_0b11:  newobj     instance 
void [System.Drawing]System.Drawing.StringFormat::.ctor()
      IL_0b16:  stloc.s    V_24
      IL_0b18:  ldloc.s    V_24
      IL_0b1a:  ldc.i4.
1
      IL_0b1b:  callvirt   instance 
void [System.Drawing]System.Drawing.StringFormat::set_Alignment(valuetype [System.Drawing]System.Drawing.StringAlignment)
      IL_0b20:  ldloc.s    V_24
      IL_0b22:  ldc.i4.
1
      IL_0b23:  callvirt   instance 
void [System.Drawing]System.Drawing.StringFormat::set_LineAlignment(valuetype [System.Drawing]System.Drawing.StringAlignment)
      IL_0b28:  ldc.i4.s   
40
      IL_0b2a:  ldc.i4.
0
      IL_0b2b:  ldc.i4.
0
      IL_0b2c:  ldc.i4     
0xaf
      IL_0b31:  call       valuetype [System.Drawing]System.Drawing.Color [System.Drawing]System.Drawing.Color::FromArgb(int32,
                


     将以上代码修改为下面的il 代码.

 

IL_0aff:  ldarg.1
      IL_0b00:  ldc.i4.
0
      IL_0b01:  stfld      
bool Dundas.Charting.WebControl.ChartPicture::e
      IL_0b06:  ldarg.
1
      IL_0b07:  ldfld      
bool Dundas.Charting.WebControl.ChartPicture::e
      IL_0b0c:  brfalse    IL_0bfb
      
      IL_0b11:  newobj     instance 
void [System.Drawing]System.Drawing.StringFormat::.ctor()
      IL_0b16:  stloc.s    V_24
      IL_0b18:  ldloc.s    V_24
      
//破解方法在此 
      IL_0b1a:  ldc.i4.0
      IL_0b1b:  callvirt   instance 
void [System.Drawing]System.Drawing.StringFormat::set_Alignment(valuetype [System.Drawing]System.Drawing.StringAlignment)
      IL_0b20:  ldloc.s    V_24
      IL_0b22:  ldc.i4.
0
      IL_0b23:  callvirt   instance 
void [System.Drawing]System.Drawing.StringFormat::set_LineAlignment(valuetype [System.Drawing]System.Drawing.StringAlignment)
      IL_0b28:  ldc.i4.s   
40
      IL_0b2a:  ldc.i4.
1
      IL_0b2b:  ldc.i4.
1
      IL_0b2c:  ldc.i4     
0xaf
      IL_0b31:  call       valuetype [System.Drawing]System.Drawing.Color [System.Drawing]System.Drawing.Color::FromArgb(int32,
                  

         重新进行编译 ilasm /dll /RESOURCE=DundasWebChart.res DundasWebChart.il 
 OK,大功告成
/Files/wangzhq/DundasWebChart2006-11-15.rar

posted @ 2006-11-09 15:20 wangzhq 阅读(2913) 评论(20)  编辑 收藏 所属分类: .net

  回复  引用    
#1楼 2006-11-09 16:34 | 傻腾腾 [未注册用户]
╭╮__╭╭╭╭╭__╭╮
│           │   ╭─────╮
│           │   │   │
│ ● ╭───╮ ● │ ╭╮│灌水嚕  │
│≡  │● ●│  ≡│O╰╯╰─────╯
│   ╰───╯   │ 
╰──┬○────┬─○╯


点激生活 www.goodlife.cn ..
  回复  引用  查看    
#2楼 2006-11-09 18:35 | Cure      
这个程序没有加强名称吗?
  回复  引用    
#3楼 2006-11-09 19:44 | annonymous [未注册用户]
唉,正版事业何年才有希望哦.
  回复  引用  查看    
#4楼 2006-11-09 23:25 | ccs      
厉害!!
不知高手们能否破解Xenocode混淆的程序?
  回复  引用  查看    
#5楼 2006-11-10 12:34 | 王浈广      
作为程序员还是不要破解别人的东西
  回复  引用    
#6楼 2006-11-10 16:43 | zdnet [未注册用户]
删掉评论了!不要心虚,作为一个程序员,你应当脸红。
你可以私下研究,但是公开在这里是对cnblog的一种侮辱,如有不同意见或觉得我说得错,欢迎指正。
  回复  引用    
#7楼 2006-11-10 16:44 | zdnet [未注册用户]
删掉评论了!不要心虚,作为一个程序员,你应当脸红。
你可以私下研究,但是公开在这里是对cnblog的一种侮辱,如有不同意见或觉得我说得错,欢迎指正。
  回复  引用  查看    
#8楼 2006-11-11 00:47 | ccs      
@zdnet
没这么严重吧,我们来这里也都是抱着学习的态度
  回复  引用    
#9楼 2006-11-21 17:20 | Dicky [未注册用户]
帅哥,什么时候有空把OlapServices里的DundasWebUIControls.dll也破解下啊
  回复  引用    
#10楼 2007-01-01 22:57 | 水煮鱼[匿名] [未注册用户]
我用了一下,vs2005提示不能创建智能标记,其他都比较正常。
  回复  引用    
#11楼 2007-01-12 16:53 | 小猪[匿名] [未注册用户]
今天下载了5.5的企业版for vs2003 的,按照操作,最后出现“程序集“DundasWebChart”的签名检查失败。”的错误,我应该如何重新签名?
  回复  引用    
#12楼 2007-05-08 09:38 | CYX [未注册用户]
我下载了/Files/wangzhq/DundasWebChart2006-11-15.rar
还是有有水印,不知什么原因,高手指教啊
我Emai:chenyinxin888@sina.com
  回复  引用    
#13楼 2007-05-11 16:17 | benniuniu [未注册用户]
楼主破解的东西不厚道阿,留下了自己的前面和名言在图形上,好像是用一段时间后就会出现了,楼主能否帮忙去除一下阿,正好有个系统要用这个控件,本来我推荐用的netcharting,可是同事用了这个,也只好坚持用这个了,谢谢
  回复  引用    
#14楼 2007-05-18 22:33 | aquila [未注册用户]
大哥,去掉了原来得水印,怎么还留上你的了,能把那个水印去掉吗?可以告诉我怎么去掉你留的那个水印吗,我的mail是aquila.yu@gmail.com。万分感谢
  回复  引用    
#15楼 2007-05-18 23:39 | aquila [未注册用户]
为什么编译出来之后总是出现这个错误啊
Error 2 Could not load file or assembly 'DundasWebChart, Version=5.5.1.1705, Culture=neutral, PublicKeyToken=90d06b0c62d592d0' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)

  回复  引用    
#16楼 2007-05-21 16:40 | Giant [未注册用户]
老大,能不能把你破解的没有你水印的DLL发一个呢?感谢万分!我的邮箱:giant_cgy@msn.com,谢谢!
  回复  引用    
#17楼 2007-05-22 14:11 | Dicky [未注册用户]
帅哥,什么时候有空把新的数字签名搞一下发上来呀...谢谢!!!!
  回复  引用    
#18楼 2007-05-30 17:53 | starfire [未注册用户]
老大,把没水印的也发我一个.starfire21@sina.com
  回复  引用    
#19楼 2007-06-03 16:11 | 破解 [未注册用户]
大家不要留Email等了,到这个站下,我用过了,破解更新很及时的

http://blog.csdn.net/allisnew

DotNetBar, dotnetCharting, Dundas Chart/Gauge/Map, FlyTreeView, DevExpress (DXperience) 中文本地化, Telerik RadControls 2007Q1 sp1, FarPoint Spread, IP*Works!……
  回复  引用    
#20楼 2007-06-04 15:05 | Dicky [未注册用户]
@破解

可惜没有 最新的 Dundas Chart for ASP.NET - Enterprise Eval (VS 2005) v5.5.1.1707的破解啊