cnblogs.com

April 2008 - Posts

NET Win HTML Editor Control破解过程全记录

         前几天做项目。需要用到一个WinForm的HTML的编辑和显示控件。.NET自己并没有提供这方面的控件。去Googel百度了一下。没有找到合适的.NET控件。无奈去英文Googel了一下。果然发现了一款名为:.NET Win HTML Editor Control 3.2的控件。下载配置环境试用。发现免费版提供的是全功能界面。唯一不好的地方就是在编辑区有一个注册的链接。着实讨厌。

          去他的网站http://www.spicelogic.com/purchase.aspx?productID=WinHTMLEditorControl看了一下注册价格$149.99。他NND将近1000大元我可没那个钱。没办法只能破解了,可不是我想破解它。的确是他逼我的,谁让它那么贵呢。

          整理一下破解思路如下:
          1. 首先使用Reflector反编译工具尝试反编译程序。
          2. 查找程序判断是否注册或者显示非注册版限制的代码。
          3. 使用ilDasm反编译DLL为IL文件。
          4. 去掉“判断是否注册”的代码或者“显示非注册版限制”的代码。
          5. 使用ILasm编译IL文件为DLL。
          6. 使用VisualStudio编写例子程序测试。
标准的破解流程。还好破解需要的软件电脑上都有,不需要从新下载。说干就干。

第一步:使用Reflector反编译程序:
哭泣!代码进行了混淆。虽然还是可以看得懂。不过估计没个十天半个月是搞不定了。我可没那么好的耐心。难道真的破解不了了么?算了直接跳过这步进行第三步。

第三步:使用ilDasm反编译DLL为IL文件
使用ilDasm反反编译DLL为IL文件的方法如下:进入命令行模式。 进入.NET SDK目录输入:
iLDasm.exe WinHTMLEditorControl.dll /out=E:"il" WinHTMLEditorControl.il

第四步:去掉“判断是否注册”的代码或者“显示非注册版限制”的代码
使用Visual Studio打开WinHTMLEditorControl.il。不管三七二十一先找到:
.publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 // .$.............. 00 24 00
00 52 53 41 31 00 04 00 00 01 00 01 00 // .$..RSA1........ F5 F3 1F 13 1D D7 B1
30 75 AD 0F B8 45 09 7E 6E // .......0u...E.~n BF 73 98 FC 49 88 47 BB BA AC 9F
88 78 54 FD B3 // .s..I.G.....xT.. EC DC 89 27 70 84 B4 01 6D A9 9C 45 95 97 79
80 // ...'p...m..E..y. 4E 4D E1 C2 43 13 20 38 DB 2F 33 87 69 9C BA A6 // NM..C.
8./3.i... F6 7C D3 7B 5F 08 BE FA BA 9C 5D 61 2C 66 BD 06 // .|.{_.....]a,f.. 2A
81 BE B1 6D 55 8C 01 5D CA 2B 87 79 D9 2C 8E // *...mU..].+.y.,. 42 2C 7B B0 97
49 C5 6E F5 B3 C6 05 39 12 23 0A // B,{..I.n....9.#. 40 DD 07 FF 73 85 C6 29 73
F9 5D 30 88 93 CB E3 ) // @...s..)s.]0....

把这段代码删除。先把那那个什么什么Key去掉。 然后查找“Click here to Purchase and remove this link”因为它免费版提示的就是这句话。 找到如下代码:
IL_01f4: ldfld class [System.Windows.Forms]System.Windows.Forms.LinkLabel WinHTMLEditorControl.winHTMLEditorControl::xa1f1f9a7278f5fa8
IL_01f9: ldstr "Click here to Purchase and remove this link" IL_01fe:
callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0203: br IL_0359
看来这个代码是把字符串“Click here to Purchase and remove this link”赋值给LinkLabel。这个就是增加免费限制的代码了。先小小的修改一下修改代码如下:
IL_01f4: ldfld class [System.Windows.Forms]System.Windows.Forms.LinkLabel WinHTMLEditorControl.winHTMLEditorControl::xa1f1f9a7278f5fa8
IL_01f9: ldstr "" IL_01fe: callvirt instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Text(string)
IL_0203: br IL_0359
同样给LinkLabel赋值。不过只赋一个空值。

第五步:使用ILasm编译IL文件为DLL。
使用ilasm编译il为DLL文件的方法如下:进入命令行模式。 进入ilasm.exe所在目录输入: Ilasm.exe /dll E:"il"WinHTMLEditorControl.il。编译成功。

第六步:使用VisualStudio编写例子程序测试
使用VisualStudio因为修改后的DLL。编译结果如下: 限制没有了,而且是全功能的破解成功! 上传来半天图片都没弄明白。想看图片的朋友去下载word文档吧Download



yangzk 2008-05-01 13:44 发表评论
蛙蛙推荐:蛙蛙牌广告鼓励算法
     摘要: 不知道有多少人去研究google,阿里妈妈的广告作弊算法,抓包、分析http头,分析参数,分析cookies,甚至分析鼠标的点击序列,写钩子用程序去点广告,或者去模仿用户行为,我说这太麻烦了。不管你的广告做的多么好,你的广告点击次和广告商的收益低于一定比例,人家肯定不会给你广告费的,人家又不傻。这里用另一种思路去鼓励你的网站访问者去随机的点击广告,毕竟最终是人点的,咱只是鼓励一下,还不算不道德,是吧。
  阅读全文

蛙蛙池塘 2008-05-01 12:57 发表评论
实战小技巧系列(3):服务器端数据初始化到客户端数组中

  为了增强用户体验,也为了减少服务器端的回发操作,使得服务器端与客户端之间的交互越来越被广泛使用,各种AJAX产品的出现也正是顺应了这股潮流。 

  在这里,我也不讲什么深奥的东西,只是把自己在开发当中遇到的一些实用的东西拿出来跟大家共享,希望不会有重的东西在。

  案例:

  现在我希望能够从数据库里读出一个数据列表,再把这个列表初始化到客户端的一个数组中去。这是一个典型的客户端与服务器端的交互,相信大家一看到这个就会有好多种方法来实现,在这里我就帮大家稍微整理一下。

  解决方法:

  1、通过AJAX实现

  很多人可能会选择这种方法,确实用这种方法很方便,对asp.net 中的ajax来说,就可以直接从服务器端返回一个数组了。

  2、在客户端用服务器端标记循环实现

  这种方法,相信以前如果做过ASP的朋友一定比较熟悉,类似于以下代码:

  <script>

  var list = [];

<% 服务器端循环开始%>

  list.push(<%循环值%>);

  <%服务器端循环结束%>

  </script>

  3、用Page.ClientScript中的方法实现

  在客户端先定义以下方法:

  <script>

  var list = [];

  function AddObject(object)

  {

   list.push(object);

  }

  </script>


  在服务器端:

  for循环

  {

   Page.ClientScript.RegisterStartupScript(this.GetType(), "dd", "AddObject("+循环值+");", true);

  }

 4、我觉得这一个方法比较巧妙,我也经常使用。

  客户端:

  <script>

  var list = [];

  function AddObject(object)

  {

   list.push(object);

  }

   <asp:Literal ID="userObjectUtil" runat="server"></asp:Literal>

  </script>

  注意,在<script></script>标记中加入了一个服务器控件, <asp:Literal ID="userObjectUtil" runat="server"></asp:Literal>,微软的解析是够强的,放在这里在服务器端照样能够使用。

  服务器端:

  StringBuilder sb = new StringBuilder(200);

  for循环

  {

   sb.AppendFormat("AddObject('{0}');\n", 循环值);

  }

   userObjectUtil.Text = sb.ToString();


  本人比较常用的就这么几种,不知道大家还有哪些好的方法。因为像这种应用,应该是越简单越好,没有必要搞得比较复杂。



李.net 2008-05-01 09:29 发表评论
ASPNet_Compiler的编译过程
     摘要: 文章通过一个ASP.Net网站偶尔编译出错的具体例子介绍了aspnet_compiler的大致编译过程。  阅读全文

小生杂谈 2008-05-01 01:53 发表评论
坚持学习WF(7):流程控制(Flow Control)
     摘要: 本文主要说说WF中和流程相关的活动,主要包括以下这些活动:IfElseActivity,WhileActivity,ParallelActivity,ReplicatorActivity,ConditionedActivityGroup,InvokeWorkflowActivity,TerminateActivity,SuspendActivity等。  阅读全文

生鱼片 2008-04-30 18:10 发表评论
JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)
     摘要: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.o...  阅读全文

cloudgamer 2008-04-30 14:17 发表评论
Sql Server2005对t-sql的增强之Cross Apply
     摘要: 介绍sql server2005的cross apply语句。  阅读全文

玉开 2008-04-30 12:41 发表评论
OBIEE + OAS集群配置 Part 1
     摘要: 此文介绍企业级的商务智能系统(BI)部署和配置方法。  阅读全文

Cheney Shue 2008-04-30 11:48 发表评论
MaxMind的GeoIP應用
     摘要:     在  學習能定位访客位置的地图 (一) 一文中,有人問MaxMind中的GeoIP怎么用,現在做個樣例出來,以方便大家學習:          一:先來設計一個DataBaseInfo類來, using System; using System.IO; ...  阅读全文

Harlan--- 2008-04-30 10:45 发表评论
“阿一web标准学堂”第3课:CSS选择符进阶知识(附视频、课件、代码下载)
     摘要:

阿一web标准学堂

《阿一web标准学堂》是一套面向web标准初学者的视频系列。虽然我也只是一个web标准刚入门的学习者,但是我还是希望能通过这个学堂将自己学习到的东西与大家分享,这样不仅可以让更多的朋友走上web标准设计的道路,更重要的是可以得到很多前辈们的指点和教导,从而更快的取得进步。所以,各位朋友如果在学堂上发现错误之处,欢迎你到【博客园web标准设计小组】交流讨论,从而帮助更多的人取得更快的进步。
在每次课堂后,我会在小组中放出课堂的视频录像、ppt文档、示例页面代码和与此次课程相关资料下载。  阅读全文

杨正祎(阿一) 2008-04-30 01:28 发表评论
蛙蛙推荐:用LogParser分析WireShark的包
     摘要: 写代码也得会用一些常用的排查问题工具,像windbg,Wireshark,EnCase,LogParser,Sysinternals等,今天和大家分享和一个LogParser和Wireshark组合使用的例子。  阅读全文

蛙蛙池塘 2008-04-29 22:20 发表评论
MOSS点滴(4):实现Form认证
     摘要: 本文简单的阐述了如何将MOSS中的Windows Authentication改成Forms Authentication  阅读全文

生鱼片 2008-04-29 21:12 发表评论
《Service Oreiented Architecture in the Real World》推荐及翻译计划
     摘要: SOA是什么?我们为什么需要SOA?服务是什么?我们怎样设计服务?SOA是怎样为业务提供解决方案的?所有这些,正如本书中瞎子与大象的故事一样,每个人都每个人的答案,本书试图穿透所有这些迷雾,为我们揭开笼罩在SOA身上迷雾,还SOA一个清晰的本真。

本书不像一般的书籍,满纸概念,空洞而不知所云。作者语言如行云流水,在字里行间我们也可以感受到内心隐隐的激动和激情。以本人的英文水平,尚觉得读此书实乃一大享受,英文水平高超的您读原版书籍的时候一定会有跟多的感受。

虽然英文水平不怎么样,但是出于对此书的喜爱,所以计划翻译此书,一来作为深入研究此书的契机,二可以为想通过本书更深入SOA的朋友少解阅读英文的痛苦。翻译本书纯粹是个人乐趣,不以盈利为目的,不妥之处读者海涵。

因为工作繁重,所以翻译速度不一定很快,计划每两周翻译一章。今日发第一部分,纯目录介绍。从目录中,我们可以知道内容的分量。确实是一本值得期待和拥有的好书!
  阅读全文

皇帝的新装 2008-04-29 20:41 发表评论
技术解析:什么是模式? 什么是框架?(转)
1.什么是模式?

模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。

Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。

模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。

什么是框架?

框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。

2.为什么要用模式?

因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。

为什么要用框架?

因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,所以扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。

框架一般处在低层应用平台(如J2EE)和高层业务逻辑之间的中间层。

软件为什么要分层?

为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。

3.以下所述主要是JAVA,J2EE方面的模式和框架:

常见的设计模式有什么?

首先,你要了解的是GOF的《设计模式--可复用面向对象软件的基础》一书(这个可以说是程序员必备的了),注意:GOF不是一个人,而是指四个人。它的原意是Gangs Of Four,就是“四人帮”,就是指此书的四个作者:Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides。这本书讲了23种主要的模式,包括:抽象工厂、适配器、外观模式等。

还有其他的很多模式,估计有100多种。

软件设计模式太多,就我的理解简单说一下最常见的MVC模式。

MVC模式是1996年由Buschmann提出的:

模型(Model):就是封装数据和所有基于对这些数据的操作。

视图(View):就是封装的是对数据显示,即用户界面。

控制器(Control):就是封装外界作用于模型的操作和对数据流向的控制等。

另外:

RUP(Rational Unified Process)软件统一过程,XP(Extreme Programming)极端编程,这些通常被叫做“过程方法”,是一种软件项目实施过程的方法论,它是针对软件项目的实施过程提出的方法策略。也是另一个角度的模式。

4.常见的JAVA框架有什么?

WAF:

全称:WEB APPLICATION FRAMEWORK

主要应用方面:EJB层,(WEB层也有,但是比较弱)。

主要应用技术:EJB等

出处:http://java.sun.com/blueprints/code/index.html

简述:这是SUN在展示J2EE平台时所用的例子PetStore(宠物商店系统)里面的框架。是SUN蓝皮书例子程序中提出的应用框架。它实现了 MVC和其他良好的设计模式。SUN的网站上有技术资料,最好下载PetStore来研究,WEBLOGIC里自带此系统,源码在bea/weblogic700/samples/server/src/petstore。这是学习了解J2EE的首选框架。

Struts:

主要应用方面:WEB层。

主要应用技术:JSP,TagLib,JavaBean,XML等

出处:http://jakarta.apache.org/struts/index.html

简述:这是APACHE的开源项目,目前应用很广泛。基于MVC模式,结构很好,基于JSP。Jbuilder8里已经集成了STRUTS1.02的制作。

简述WAF+STRUTS结合的例子:WEB层用STRUTS,EJB层用WAF:

JSP(TagLib)——>ActionForm——>Action ——> Event——>EJBAction——>EJB  ——>DAO——>Database JSP(TagLib) (forward) <——Action <——EventResponse<——

Turbine:

主要应用方面:WEB层。

主要应用技术:servlet等

出处:http://jakarta.apache.org/turbine/index.html

简述:这是APACHE的开源项目。基于SERVLET。据说速度比较快,基于service(pluggable implementation可插拔的执行组件)的方式提供各种服务。

COCOON:

主要应用方面:WEB层。

主要应用技术:XML,XSP,servlet等

出处:http://cocoon.apache.org/2.0/

简述:这是APACHE的一个开源项目。基于XML,基于XSP(通俗地说,XSP是在XML静态文档中加入Java程序段后形成的动态XML文档。)。特点是可以与多种数据源交互,包括文件系统,数据库,LDAP,XML资源库,网络数据源等。

ECHO:

主要应用方面:WEB层。

主要应用技术:servlet  

出处:http://www.nextapp.com/products/echo/

简述:nextapp公司的一个开源项目。基于SERVLET。页面可以做的很漂亮,结合echopoint,可以作出很多图形效果(里面用了jfreechart包)。使用SWING的思想来作网页,把HTML当作JAVA的类来做。但是大量使用Session,页面分帧(Frame)很多,系统资源消耗很大。

JATO:

全称:SUN ONE Application Framework

主要应用方面:WEB层。

主要应用技术:JSP,TagLib,JavaBean等

出处:http://www.sun.com/

简述:这是SUN推出的一个商业性框架,一看名字就知道是结合SUN ONE的平台推出的。我下载了JATO2.0看了一下,感觉有些简单,使用了JSP+TagLib+JavaBean。如他的DOC所说JATO是适合用在小的WEB应用里。

TCF:

全称:Thin-Client Framework

主要应用方面:JAVA GUI。

主要应用技术:JAVA application等

出处:http://www.alphaworks.ibm.com/tech/tcf

简述:这是IBM出的一个框架。基于MVC模式,基于JAVA Application。推荐一篇介绍文章:http://www-900.ibm.com/developerWorks/cn/java/j-tcf1/index.shtml


guofu 2008-04-29 19:59 发表评论
[教程] 谈谈网页设计中的字体应用 (1) Font Set
     摘要:

最近有不少人都提及了网页上该如何选择字体的问题。问题虽然小,但是却是前端开发中的基本,因为目前的网页,还是以文字信息为主,而字体,作为文字表现形式的最重要参数之一,自然有着相当重要的地位。可惜字体的重要性在很长时间内并没有得到足够的重视。很多人对字体的概念还是停留在 font-family: "宋体", Arial, Helvetica, serif 的阶段,却不明白为什么这样设置,这样设置是否合理等等。现在就让我说说字体的来龙去脉吧。

  阅读全文

棕熊 2008-04-29 18:27 发表评论
More Posts Next page »