April 2008 - Posts
|
前几天做项目。需要用到一个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
|
摘要: 不知道有多少人去研究google,阿里妈妈的广告作弊算法,抓包、分析http头,分析参数,分析cookies,甚至分析鼠标的点击序列,写钩子用程序去点广告,或者去模仿用户行为,我说这太麻烦了。不管你的广告做的多么好,你的广告点击次和广告商的收益低于一定比例,人家肯定不会给你广告费的,人家又不傻。这里用另一种思路去鼓励你的网站访问者去随机的点击广告,毕竟最终是人点的,咱只是鼓励一下,还不算不道德,是吧。
阅读全文
为了增强用户体验,也为了减少服务器端的回发操作,使得服务器端与客户端之间的交互越来越被广泛使用,各种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();
本人比较常用的就这么几种,不知道大家还有哪些好的方法。因为像这种应用,应该是越简单越好,没有必要搞得比较复杂。
摘要: 文章通过一个ASP.Net网站偶尔编译出错的具体例子介绍了aspnet_compiler的大致编译过程。
阅读全文
摘要: 本文主要说说WF中和流程相关的活动,主要包括以下这些活动:IfElseActivity,WhileActivity,ParallelActivity,ReplicatorActivity,ConditionedActivityGroup,InvokeWorkflowActivity,TerminateActivity,SuspendActivity等。
阅读全文
摘要: <!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...
阅读全文
摘要: 介绍sql server2005的cross apply语句。
阅读全文
摘要: 此文介绍企业级的商务智能系统(BI)部署和配置方法。
阅读全文
摘要: 在 學習能定位访客位置的地图 (一) 一文中,有人問MaxMind中的GeoIP怎么用,現在做個樣例出來,以方便大家學習:
一:先來設計一個DataBaseInfo類來,
using System;
using System.IO;
...
阅读全文
摘要:
阿一web标准学堂
《阿一web标准学堂》是一套面向web标准初学者的视频系列。虽然我也只是一个web标准刚入门的学习者,但是我还是希望能通过这个学堂将自己学习到的东西与大家分享,这样不仅可以让更多的朋友走上web标准设计的道路,更重要的是可以得到很多前辈们的指点和教导,从而更快的取得进步。所以,各位朋友如果在学堂上发现错误之处,欢迎你到【博客园web标准设计小组】交流讨论,从而帮助更多的人取得更快的进步。
在每次课堂后,我会在小组中放出课堂的视频录像、ppt文档、示例页面代码和与此次课程相关资料下载。
阅读全文
摘要: 写代码也得会用一些常用的排查问题工具,像windbg,Wireshark,EnCase,LogParser,Sysinternals等,今天和大家分享和一个LogParser和Wireshark组合使用的例子。
阅读全文
摘要: 本文简单的阐述了如何将MOSS中的Windows Authentication改成Forms Authentication
阅读全文
摘要: SOA是什么?我们为什么需要SOA?服务是什么?我们怎样设计服务?SOA是怎样为业务提供解决方案的?所有这些,正如本书中瞎子与大象的故事一样,每个人都每个人的答案,本书试图穿透所有这些迷雾,为我们揭开笼罩在SOA身上迷雾,还SOA一个清晰的本真。
本书不像一般的书籍,满纸概念,空洞而不知所云。作者语言如行云流水,在字里行间我们也可以感受到内心隐隐的激动和激情。以本人的英文水平,尚觉得读此书实乃一大享受,英文水平高超的您读原版书籍的时候一定会有跟多的感受。
虽然英文水平不怎么样,但是出于对此书的喜爱,所以计划翻译此书,一来作为深入研究此书的契机,二可以为想通过本书更深入SOA的朋友少解阅读英文的痛苦。翻译本书纯粹是个人乐趣,不以盈利为目的,不妥之处读者海涵。
因为工作繁重,所以翻译速度不一定很快,计划每两周翻译一章。今日发第一部分,纯目录介绍。从目录中,我们可以知道内容的分量。确实是一本值得期待和拥有的好书!
阅读全文
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
摘要:

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