A Cooly Weblog

   ::  ::  ::  ::  :: 管理

MyEclipse各版本破解源代码

Posted on 2007-01-04 20:20 acooly 阅读(436) 评论(0)  编辑  收藏 所属分类: Java开发
public   class  Main {
    
private   static   final  String L  =   " Decompiling this copyrighted software" + "is a violation of both your" +  "license agreement and the Digital Millenium Copyright Act of 1998" +  "(http://www.loc.gov/copyright/legislation/dmca.pdf)." + "Under section 1204 of the DMCA, penalties range up to" + "a $500,000 fine or up to five years imprisonment for "+ "a first offense. Think about it; pay for a license,"+ "avoid prosecution, and feel better about yourself. " ;

    
public   static   void  main(String[] args) {
        String userId 
=   " zhangpu " ; // mLR8ZC-056-55-4467865306604733
        
//  MyEclipse4.1 GA
        
//  其中491(4.9.1)/400(4.0)/401(4.1)/501(5.1.0),()内为版本号,9912310代表注册码过期时间2099/12/31
        String need  =  userId.substring( 0 1 +   " YE3MP-501-00-9912310 " ;
        
//  MyEclipse4.0.0 GA
        
//  String need = userId.substring(0,1) + "YE3MP-400-01-9912310";
        
//  MyEclipse4.9.1
        
//  String need = userId.substring(0,1) + "YE3MP-491-01-9912310";
        
//  MyEclipse5.1.0 GA
        
//  String need = userId.substring(0,1) + "YE3MP-501-00-9912310";
        String dx  =  need  +  L  +  userId;
        
int  suf  =  decode(dx);
        
//  System.out.println("SUF:"+suf);
        String code  =  need  +  suf;
        System.out.println(change(code));
    }

    
static   int  decode(String s) {
        
int  i  =   0 ;
        
char  ac[]  =  s.toCharArray();
        
int  j  =   0 ;
        
for  ( int  k  =  ac.length; j  <  k; j ++ ) {
            i 
=   31   *  i  +  ac[j];
        }
        
return  Math.abs(i);
    }

    
static  String change(String s) {
        
byte  abyte0[]  =  s.getBytes();
        
char  ac[]  =   new   char [s.length()];
        
int  i  =   0 ;
        
for  ( int  k  =  abyte0.length; i  <  k; i ++ ) {
            
int  j  =  abyte0[i];
            
if  (j  >=   48   &&  j  <=   57 )
                j 
=  ((j  -   48 +   5 %   10   +   48 ;
            
else   if  (j  >=   65   &&  j  <=   90 )
                j 
=  ((j  -   65 +   13 %   26   +   65 ;
            
else   if  (j  >=   97   &&  j  <=   122 )
                j 
=  ((j  -   97 +   13 %   26   +   97 ;
            ac[i] 
=  ( char ) j;
        }
        
return  String.valueOf(ac);
    }
}