| 
 | 
 
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册  
 
×
 
目前在研究某个软件,请问这个JAVA函数返回是一个布尔值,请问反汇编如何让这个函数永远返回1。 
这里是java代码 
/* 3000 */     Security.addProvider((Provider)(certicom = new Certicom())); String str; if ((str = (String)((a != null) ? a : (a = certicom.getName()))) == null) 
/*      */       throw new d(-514, 4026);  
/*      */     SystemConfig systemConfig; 
/*      */     (systemConfig = SystemConfig.getConfig()).setConformance(16); 
/*      */     systemConfig.setPtCompression(2); 
/*      */     systemConfig.setFormat(10); 
/*      */     switch (paramInt) { 
/*      */       case 2: 
/*      */         break; 
/*      */       case 3: 
/*      */         systemConfig.setCurve("sect163k1"); 
/*      */         break; 
/*      */       case 4: 
/*      */         systemConfig.setCurve("sect239k1"); 
/*      */         break; 
/*      */       default: 
/*      */         throw new d(-515, 4027); 
/*      */     }  
/*      */     PublicKey publicKey; 
/*      */     if ((publicKey = paraml.a(paramInt)) == null) 
/*      */       throw new d(-515, 4028);  
/*      */     byte[ arrayOfByte = publicKey.getEncoded(); 
/*      */     try { 
/*      */       PublicKey publicKey1; 
/*      */       KeyFactory keyFactory = KeyFactory.getInstance("ECDSA"); 
/*      */       if (paramInt == 2) { 
/*      */         ECDSA.setThreadOldHashTruncate(true); 
/*      */         int[ arrayOfInt = { 9 }; 
/*      */         String str1 = "1.3.132.0.4"; 
/*      */         F2mParameterSpec f2mParameterSpec = new F2mParameterSpec(Conversion.HexString2OS("3088250ca6e7c7fe649ce85820f7"), Conversion.HexString2OS("e8bee4d3e2260744188be0e9c723"), Conversion.HexString2OS("10e723ab14d696e6768756151756febf8fcb49a9"), Conversion.HexString2OS("9d73616f35f4ab1407d73562c10f"), Conversion.HexString2OS("a52830277958ee84d1315ed31886"), Conversion.HexString2OS("100000000000000d9ccec8a39e56f"), 2, 113, arrayOfInt, str1); 
/*      */         ECRawPublicKeySpec eCRawPublicKeySpec = new ECRawPublicKeySpec(arrayOfByte, (ECParameterSpec)f2mParameterSpec); 
/*      */         publicKey1 = keyFactory.generatePublic((KeySpec)eCRawPublicKeySpec); 
/*      */       } else { 
/*      */         X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec((byte[)publicKey1); 
/*      */         publicKey1 = keyFactory.generatePublic(x509EncodedKeySpec); 
/*      */       }  
/*      */       Signature signature; 
/*      */       (signature = Signature.getInstance("ECDSA", str)).initVerify(publicKey1); 
/*      */       signature.update(paramArrayOfbyte1); 
/*      */       bool = signature.verify(paramArrayOfbyte2); 
/*      */     } catch (NoSuchAlgorithmException noSuchAlgorithmException) { 
/*      */       throw new d(-515, 4029); 
/*      */     } catch (InvalidKeySpecException invalidKeySpecException) { 
/*      */       throw new d(-515, 4030); 
/*      */     } catch (InvalidKeyException invalidKeyException) { 
/*      */       throw new d(-515, 4031); 
/*      */     } catch (NoSuchProviderException noSuchProviderException) { 
/*      */       throw new d(-515, 4032); 
/*      */     } catch (SignatureException signatureException) { 
/*      */       throw new d(-515, 4033); 
/*      */     }  
/*      */     return bool; 
/*      */   } 
/*      */ } 
 
这里是对应的反汇编代码 
1065 ldc #7 <ECDSA>1067 aload 51069 invokestatic #133 <java/security/Signature.getInstance : (Ljava/lang/String;Ljava/lang/String;)Ljava/security/Signature;>1072 dup1073 astore 61075 aload 81077 invokevirtual #134 <java/security/Signature.initVerify : (Ljava/security/PublicKey;)V>1080 aload 61082 aload_01083 invokevirtual #135 <java/security/Signature.update : ([B)V>1086 aload 61088 aload_11089 invokevirtual #136 <java/security/Signature.verify : ([B)Z>1092 istore 101094 goto 1157 (+63)1097 pop1098 new #34 <com/a/a/d>1101 dup1102 sipush 650211105 sipush 41071108 invokespecial #99 <com/a/a/d.<init> : (II)V>1111 athrow1112 pop1113 new #34 <com/a/a/d>1116 dup1117 sipush 650211120 sipush 41081123 invokespecial #99 <com/a/a/d.<init> : (II)V>1126 athrow1127 pop1128 new #34 <com/a/a/d>1131 dup1132 sipush 650211135 sipush 41091138 invokespecial #99 <com/a/a/d.<init> : (II)V>1141 athrow1142 pop1143 new #34 <com/a/a/d>1146 dup1147 sipush 650211150 sipush 41101153 invokespecial #99 <com/a/a/d.<init> : (II)V>1156 athrow1157 iload 101159 ireturn 
 
 
 |   
    
    
        
        - 
            
            
 
         
        
     
    
 
 
 
 
 |