首页
社区
课程
招聘
一个java的crackme
发表于: 2004-6-6 22:26 6614

一个java的crackme

2004-6-6 22:26
6614
收藏
免费 5
支持
分享
最新回复 (4)
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
2
用记事本打开程序找到如下文字:

  private void calculateSerial(){
    boolean fakeSuccess=false;
    String name = textField1.getText();
    String serial = textField2.getText();
   
    if(name.length()==0 || serial.length()==0)
      label3.setText(
                     new Character('Y').toString() +
                     new Character('o').toString() +  
                     new Character('u').toString() +
                     new Character(' ').toString() +
                     new Character('M').toString() +
                     new Character('u').toString() +
                     new Character('s').toString() +
                     new Character('t').toString() +
                     new Character(' ').toString() +
                     new Character('E').toString() +
                     new Character('n').toString() +
                     new Character('t').toString() +
                     new Character('e').toString() +                  
                     new Character('r').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +
                     new Character(' ').toString() +
                     new Character('N').toString() +
                     new Character('a').toString() +
                     new Character('m').toString() +
                     new Character('e').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +
                     new Character('n').toString() +
                     new Character('d').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +
                     new Character(' ').toString() +
                     new Character('S').toString() +
                     new Character('e').toString() +
                     new Character('r').toString() +
                     new Character('i').toString() +
                     new Character('a').toString() +
                     new Character('l').toString()     
      );   
    else{
      char[] charName = name.toCharArray();
      char[] charSerial = serial.toCharArray();      
      Character[] chName=new Character[charName.length];
      Character[] chSerial = new Character[charSerial.length];
      
      if(name.length()>6 && serial.length()==9){
        for(int i=0;i<charName.length;i++)
          chName[i]=new Character(charName[i]);
        for(int i=0;i<charSerial.length;i++)
          chSerial[i]=new Character(charSerial[i]);
        
        if(chName[0].compareTo(chSerial[4]) == 0){
          if(chSerial[0].compareTo(chSerial[8]) == 0){
            int tmp = (int) ((Character.getNumericValue(charName[1])+
                              Character.getNumericValue(charName[2])+
                              Character.getNumericValue(charName[3]))/3);
            if( Character.getNumericValue(charSerial[2]) == tmp){
              int tmp1 = (int) ((Character.getNumericValue(charName[charName.length-3])+
                              Character.getNumericValue(charName[charName.length-2])+
                              Character.getNumericValue(charName[charName.length-1]))/3);
              if( Character.getNumericValue(charSerial[6] )== tmp1){
                fakeSuccess=true;
              }
            }  
          }
        }
      }
      if(fakeSuccess)
      label3.setText(
                     new Character('T').toString() +
                     new Character('r').toString() +  
                     new Character('y').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +
                     new Character('n').toString() +
                     new Character('o').toString() +
                     new Character('t').toString() +
                     new Character('h').toString() +
                     new Character('e').toString() +
                     new Character('r').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +                  
                     new Character('p').toString() +
                     new Character('p').toString() +
                     new Character('r').toString() +
                     new Character('o').toString() +
                     new Character('a').toString() +
                     new Character('c').toString() +
                     new Character('h').toString() +
                     new Character('.').toString() +
                     new Character(' ').toString() +
                     new Character('R').toString() +
                     new Character('e').toString() +
                     new Character('g').toString() +
                     new Character('i').toString() +
                     new Character('s').toString() +
                     new Character('t').toString() +
                     new Character('r').toString() +
                     new Character('a').toString() +
                     new Character('t').toString() +
                     new Character('i').toString() +
                     new Character('o').toString() +
                     new Character('n').toString() +
                     new Character(' ').toString() +   
                     new Character('F').toString() +
                     new Character('A').toString() +
                     new Character('I').toString() +
                     new Character('L').toString() +
                     new Character('E').toString() +
                     new Character('D').toString()      
      );   
      else
      label3.setText(
                     new Character('I').toString() +
                     new Character('n').toString() +  
                     new Character('v').toString() +
                     new Character('a').toString() +
                     new Character('l').toString() +
                     new Character('i').toString() +
                     new Character('d').toString() +
                     new Character(' ').toString() +
                     new Character('S').toString() +
                     new Character('e').toString() +
                     new Character('r').toString() +
                     new Character('i').toString() +
                     new Character('a').toString() +                  
                     new Character('l').toString() +
                     new Character('.').toString() +
                     new Character(' ').toString() +
                     new Character('T').toString() +
                     new Character('r').toString() +
                     new Character('y').toString() +
                     new Character(' ').toString() +
                     new Character('A').toString() +
                     new Character('g').toString() +
                     new Character('a').toString() +
                     new Character('i').toString() +
                     new Character('n').toString()
      );      
    }   
    textField1.setText("");
    textField2.setText("");        
  }

明显是注册比较的过程,但按其流程还是不能注册。难道是故意放在那骗人的?
对JAVA程序的跟踪找不到一点头绪,在XP下用OD根本不知用什么方法使其中断。压抑!
2004-6-7 12:55
0
雪    币: 280
活跃值: (281)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
3
顺便放上我对刚才代码的分析,大家看看对不对。
首先Name长度必须大于6,Serial长度必须等于9,
其次Name的首位必须与Serial的5,9位相同,
然后Name的2、3、4位平均必须与Serial的3位相同,
最后Name的倒数2、3、4位平均必须与Serial的7位相同。
2004-6-7 13:03
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
2005-10-12 15:58
0
雪    币: 328
活跃值: (39)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
请登录 www.crackmes.de 搜索 java 的crackme 找到 daPope #1

并且我已经将破解方法以及教程放到上面

该 crackme 只要添加一行代码就可以成为自身的 keygen

HHAA
2006-1-10 00:17
0
游客
登录 | 注册 方可回帖
返回
//