|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
目前在研究某个软件,请问这个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
|
-
|