雪湖小札@blogjava
心情与技术文档同行 http://hi.baidu.com/jingleq
BlogJava
首页
新随笔
联系
聚合
管理
24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔档案
(24)
2012年2月 (1)
2007年11月 (1)
2007年7月 (1)
2007年6月 (13)
2007年5月 (8)
文章档案
(2)
2007年6月 (2)
搜索
最新评论
1. re: struts与flex通过xml交互模型
路过,哈
--豆抓
2. re: 跑在groovy上的rmi
Groovy可以充分利用Java世界中的一切资源,这也是Groovy的一大优势 :)
--山风小子
3. re: 征服javascript(七)-Jquery插件jquery.jq.mvc发布
玩jQuery有一段时间,看起来你这是一个有意思的东西
--NetFetch
4. re: antlr-语言编译的简化
是antlr2的写法
--山风小子
阅读排行榜
1. struts与flex通过xml交互模型(2149)
2. asm学习(6)--asm应用(使用jasml对antlrstudio破解)(1820)
3. 跑在groovy上的rmi(1318)
4. antlr-(一)语言编译的简化(1266)
5. 征服javascript(七)-Jquery插件jquery.jq.mvc发布 (1108)
评论排行榜
1. 征服javascript(七)-Jquery插件jquery.jq.mvc发布 (1)
2. struts与flex通过xml交互模型(1)
3. 跑在groovy上的rmi(1)
4. antlr-(一)语言编译的简化(1)
5. asm学习(6)--asm应用(使用jasml对antlrstudio破解)(0)
asm学习(6)--asm应用(使用jasml对antlrstudio破解)
antlr,语言识别的一个工具(anothertoolforlanguagerecognition,前身是pccts),它提供了一个框架,可以通过包含java、c++或c#动作的语法描述来构造语言识别器,编译器和解释器。antlrstudio是一款用于eclipse的插件,可以用来创建、调试antlr语法的集成环境。
在antlrstudio的官方网站上提供的eclipse插件并没有提供相应的licence.lic文件,所以我们还不能使用它的全部功能。
在CowNew开源团队网站
www.cownew.com
上由kingchou提出了一个破解方案,我的操作都是基于这个方案的。
方案是这样描述的:AntlrStudio中antlr_Studio.license包中主要的类,也是其抵挡未注册者使用的主要防线。1、当插件启动时会先调用ASLicenseManager类的checkForLicense()。2、方法checkForLicense在此调用LicenseManager类的daysLeft()获取剩余日期。3、进而触发License类,其读取License.lic注册文件的信息,并会调用SignatureUtil工具类对其签名做验证。在ASLicenseManager中有一个很薄弱的环节,即:
int i = licensemanager.daysLeft();
if (i != -2) {
if (hasAlreadyExpired() || i <= 0)
……
只要daysLeft()返回值为-2即判断为正式用户。因而只要修改LicenseManagerImpl的daysLeft()方法为:
public int daysLeft() {
……
return -2;
}
由xml1123提出的修改是:直接将i 赋值为-2
int i = licensemanager.daysLeft();
i=-2;
if (i != -2) {
……
我的作法是采取了xml1123的修改。
以下描述我的修改步骤:
(1).在eclipse\plugins\AntlrStudio_1.1.0中找到AntlrStudio.jar文件。解压AntlrStudio.jar\antlr_Studio\license中的ASLicenseManager.class出来,放到与jasml.jar(参考asm学习(0)--java字节码工具Jasml)同一级目录下。
(2).cmd进入控制台,cd到jasml.jar目录下,输入以下命令:
set classpath=%classpath%;jasml.jar;
java jasml -d ASLicenseManager.class
(3).打开生成的ASLicenseManager.jasm文件,找到
----------- 原文 ---------
invokevirtual int antlr_Studio.license.LicenseManager.daysLeft()
istore_1
iload_1
bipush 254
----------- 修改为 ----------
invokevirtual int antlr_Studio.license.LicenseManager.daysLeft()
istore_1
bipush 254
istore_1
iload_1
bipush 254
(4).通过jasm文件编译成.class文件。在控制台中输入命令:
java jasml -c -o ASLicenseManager.jasm
重新生成了ASLicenseManager.class文件
(5).把生成的ASLicenseManager.class文件覆盖在原来eclipse\plugins\AntlrStudio_1.1.0中找到的AntlrStudio.jar文件中的ASLicenseManager.class。
(6).新建一个license.lic文件,放到plugins\AntlrStudio_1.1.0下,里面的内容为:
2007
-
01
-
01
Signature
=
0001
启动eclipse成功进入。
修改好的ASLicenseManager.class.下载地址:
http://www.blogjava.net/Files/csnowfox/ASLicenseManager.rar
直接找到覆盖就行。
注意:此文仅供研究参考。提倡使用正版。
posted on 2007-06-17 19:50
csnowfox
阅读(1820)
评论(0)
编辑
收藏
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © csnowfox