关于作者

用户名:newok
笔名:newok
地区:

日历  

快速登录

+ 用户名:
+ 密 码:

我的博采 我的论坛 我的RSS

在线留言



j2ee&java

访问统计:
文章个数:13
评论个数:27
留言条数:4



Powered by BlogDriver 2.1

响马日志

 

此山是我占,此路是我开,要想打此过,留下买路前!!

文章

MyEclipse 4.0(8月29日release的4.0正式版) crack

请一定搞清版本!!!
http://newok.blogchina.com/inc/core.txt下载后, 将扩展名改成jar.
再直接覆盖[$MyEclipse安装路径]\eclipse\plugins\com.genuitec.eclipse.core_4.0.0下的同名文件即可, 记得先备份.


- 作者: newok 2005年08月30日, 星期二 18:56  回复(1) |  引用(0) 加入博采

hibernate 使用discriminator的问题
如果你的discriminator的类型是character或者interger等非string类型, 要在父类class的中定义
discriminator-value属性, 如

<class name="Person"
discriminator-value="200">

.......
<discriminator
type="character">
</discriminator>
.......
</class>

即使你的父类没有任何实际意义.否则会出现Could not format discriminator value to SQL string异常.

当然,如果你的discriminator类型是string(这也是hibernate默认的)就不需要再定义discriminator-value属性.

- 作者: newok 2005年08月18日, 星期四 18:20  回复(0) |  引用(0) 加入博采

myeclipse4.0M2 FOR eclipse3.1的破解

同3.8.4一样, 上次忘了提及一个地方,修改

com.genuitec.eclipse.core.LicenseWarningDialog类,覆盖父类的open方法.

代码如下:

  CtMethod m = CtNewMethod.make("public int open() { return -1 ;}", cc3) ;

- 作者: newok 2005年07月15日, 星期五 09:55  回复(8) |  引用(0) 加入博采

myeclipse 4.0m2 for eclipse3.1
其实和前边的3.8.4一样, 不过上次忘了一个地方,就是有个LicenseWarningDialog也需要修改, 很简单的,增加一方法 ,覆盖父类的方法,
CtMethod m = CtNewMethod.make("public int open() { return -1 ;}", cc3) ;

- 作者: newok 2005年07月15日, 星期五 09:49  回复(1) |  引用(0) 加入博采

关于jstl标记rt的含义
rt是request time的缩写,名称里包含有rt的tag libraries支持的是request-time的表示方法,如:
    <c:out value='<%= ((Foo)session.getAttribute("foo")).getBar()%>'/>

不包含rt的支持的是EL表示方法,如:
    <c:out value='${sessionScope.foo.bar}'/>

虽然表示方法不同,但是效果都一样, 可以根据自己的习惯选择。


- 作者: newok 2005年04月14日, 星期四 14:18  回复(0) |  引用(0) 加入博采

MyEclipse 3.8.4的破解
安装3.8.4后,没有找到破解,可能是太新了,于是只能让javassist出马了。
要推出出注册码的算法实在麻烦, 图省事,只是让myeclipse永远不过器。具体的的办法如同我前边写的破解firestorm一样,这里不不再详细描述了。
只是简单的说说。

找到core.jar包,打开后,发现有几个使用了混淆器的类。没什么说的,这一定是关于注册的的几个类。把它们都反编译看后大概浏览下, 很快找到一个C类判断过期时,调用D类的一个方法, 用javassit直接修改D类的方法,让他永远都返回TRUE。然后把新的class打包到core.jar, 调了时间,运行,一切正常。提示信息说5月某天过期, 实际现在计算机时间已经是7月了。

再说一点,在浏览的时候,突然在A类里发现了一个IP地址,可他又不是myeclipseide.com所指向的地址。再仔细看代码,发现里面包含网络通 讯的代码。恩,想想以前用crack过的myeclipse的时候, 当crack过后,总是还会时不时会提醒你注册,很可能就是通过服务器验证发现这是CRACK过的。不管,改了再说。用ultraedit直接编辑16进 制代码, 随便改个ip就可以了。然后再打包到core.jar.q

改好的core.jar大家可以在这里下载:http://www.newok.com/core.jar.
覆盖Program Files\MyEclipse\eclipse\plugins\com.genuitec.eclipse.core_3.8.4下的同名文件就可以,记得先备份, 同时一定要确定你的myeclipse版本是3.8.4。


注:又重新更新了下, 把注册提示去除了, 如果已经下载过,可以重新下载覆盖。

- 作者: newok 2005年04月6日, 星期三 19:01  回复(3) |  引用(0) 加入博采

lomboz 和 eclipse 3.1m3 的配合使用问题

近日安装 lomboz for eclipse3.1m3出现问题, 按lomboz的安装步骤安装后,eclipse不能识别出lomboz,也未给出任何提示.
进入Help->Software Updates->Manage Configration中,点击工具栏中的'Show Disable Features', 然后展开左边的列表, 发现lomboz的状态是不可用. 选择lomboz, 点击右边的Enable, 结果出错, 查看提示信息是:未发现'com.ibm.etools.emf.event'...., 看来这就是出错的原因, 离成功不远了.

经过一番搜索, 发信com.ibm.etools.emf.event存在于Visual Editor SDK插件中, 然后下载这个插件后并安装. 重新Enable lomboz, 安装成功!

还有一种发法, 就是找到lomboz的feature.xml文件, 把关于com.ibm.etools.emf.event的代码注释掉也可以, 不过可能有一定的副作用.




- 作者: newok 2005年01月3日, 星期一 18:39  回复(2) |  引用(0) 加入博采

关于JAVA 中接口
1.接口中所有的属性和方法均是public, 即使没有加public 修饰符, 如果使用private 和protected,编译会出错.
2.所有的属性均是final的,即使没有加final修饰符.
3.所有的方法均是abstract的,即使没有加abstract修饰符.


实现多个接口时,如果在接口中出现相同的方法, 如下:
interface I1 {
    void m1() ;
}

interface I2 {
    void m1() ;
}
则只需要实现一次就可以,如下:
public class C1 implements I1, I2 {
       void m1() {
              //...
       }
}


- 作者: newok 2004年12月28日, 星期二 15:16  回复(0) |  引用(0) 加入博采

Firestorm的破解
Firestorm是一个用JAVA写的代码生成工具,可以替你节省很多的代码量,可以说同类软件中功能最强的一个。

Firestorm是一个用JAVA写的代码生成工具,可以替你节省很多的代码量,可以说同类软件中功能最强的一个。
你可以在网上下载到最新的2.3试用版本,同时网站会发给你一个试用的license文件。既然是试用,
那么在使用上肯定有一定的限制。主要限制有3个:
    1.只能最多生成5张表的DAO;
    2.有时间限制;
    3.不能自己定制代码生成;

为了能够更好的试用这个软件,我得改改它,去掉这些限制。将firestorm.jar打开后,可以看到它使用了
混淆器进行代码保护,不同于大多数的混淆器生成的文件,它的class和package大部分都是以关键字来命名,
所以如果你用JAD之类的工具把它反编译后是不能再把它编译成功,编译器会提示出错误。

反编译后,找到几个有关注册的关键文件,发现它使用的是数字签名技术来做的保护,所以想逆向找出
注册码的计算方法是不可行的了,只能通过修改文件的方法来破解。通常我们是先反编译,然后再修改
反编译后生成的原文件,最后再重新编译。但是由于文件名和包名的关系我们无法进行编译,除非把它的
这些‘非法'的文件名和包名全部改成符合java语言规范的名称,由于类,包众多,互相调用也很
频繁,所以这种方法几乎不可能的。

另外一种方法就是使用softice之类的调试软件来破解,不过这个脱离JAVA的范畴,这里不做讨论。

还有一种方法可能很少有人用,就是先反编译得到原文件,然后找到关键的方法后修改它的字节码,
也就是class文件,这中方法往往需要你知道一些有关CLASS文件格式方面的知识(如果没有也不用担心),
有许多的处理字节码的工具可以帮助你,比较流行的这类工具主要有:apache.org的BCEL;
jboss.com的javassist;objectweb.org的asm。都是出身名门哈。这3个工具各有特点,
这次我选用javassist,因为它修改class文件最方便,甚至不需要懂得字节码和class文件格式。

让我们来看看具体步骤:


step1:
    下载并安装FIRESTORM。
step2:
    反编译jar文件,阅读代码,找到关键的方法。当然,我这里写出来,你就不用再麻烦了。(其实这步是最
    麻烦的)。
    找到com.codefutures.if.if文件中的方法
        public static boolean a(java.security.PublicKey publickey,
                byte abyte0[], byte abyte1[])
            throws java.security.NoSuchAlgorithmException,
            java.security.NoSuchProviderException,
            java.security.InvalidKeyException,
            java.security.SignatureException {
            java.security.Signature signature = java.security.Signature.getInstance("SHA1withDSA", "SUN");
            signature.initVerify(publickey);
            signature.update(abyte0);
            return signature.verify(abyte1);
        }

    这个方法是对公钥进行检验,修改的思路就是直接让他返回一个true.

step2:
    收到firestorm.license文件后不要急着安装,先修改如下:
        <custom-codegen>no</custom-codegen>
            改为
        <custom-codegen>yes</custom-codegen>

        <restriction>5</restriction>
            改为
        <restriction>none</restriction>

        <expiry-date>[日期]</expiry-date>
            改为
        <expiry-date>never</expiry-date>

    修改后放到firestorm的安装路径的license目录。

step3:
    修改com.codefutures.if.if的class文件.这里我们需要写一个小程序来完成实现:
        import javassist.ClassPool;
        import javassist.CtClass;
        import javassist.CtMethod;


        public class Test {
            
            public static void main(String[] args) throws Exception {
                ClassPool pool = ClassPool.getDefault();

                //设置目标类的路径,确保能够找到需要修改的类,这里我指向firestorm.jar
                //解包后的路径
                pool.insertClassPath("d:/work/firestorm/firestorm") ;    
                
                //获得要修改的类
                CtClass cc = pool.get("com.codefutures.if.if");
                //设置方法需要的参数
                CtClass[] param = new CtClass[3] ;                
                param[0] = pool.get("java.security.PublicKey") ;
                param[1] = pool.get("byte[]") ;
                param[2] = pool.get("byte[]") ;

                //得到方法
                CtMethod m = cc.getDeclaredMethod("a", param);
                //插入新的代码
                m.insertBefore("{return true ;}") ;
                //保存到文件里
                cc.writeFile() ;
            }
        }

    
    修改完后,你可以反编译修改过的的class文件,看看代码是否加入成功。

step4:
    将所有的class文件重新打包成firestorm.jar,然后替换
    [firestorm安装路径]/lib/firestorm.jar,再启动firestorm即可。

- 作者: newok 2004年12月14日, 星期二 13:01  回复(12) |  引用(0) 加入博采

informixt tip----返回最新插入的记录ID(serial)
informixt tip----返回最新插入的记录ID(serial)


1.返回最近插入的记录ID(serial)

create table test(id serial, name varchar(50)) ;

insert into test('test1') ;

select first 1 dbinfo('sqlca.sqlerrd1')  from test ;


2.返回最近操作(select, delete, insert, 存储过程,函数)影响到的记录条数:

select first 1 dbinfo('sqlca.sqlerrd2')  from test ;

3.返回最近插入的记录ID(serial8)

select first 1 dbinfo('serial8')  from test ;


注:操作和查询要在同一session里。

- 作者: newok 2004年12月10日, 星期五 16:34  回复(0) |  引用(0) 加入博采