jd-gui反编译出来是字节码的解决方案

在分析一个软件的时候,加密代码反编译变成字节码了。记录一下解决方案。

1.DJ Java Decompiler 3.8把MD5Utils.class导出

2.把MD5Utils.class导入到idea。

//源文件


public class MD5Utils {
  public static String md5Password(String paramString, int paramInt) { // Byte code:
    //   0: ldc 'md5'
    //   2: invokestatic getInstance : (Ljava/lang/String;)Ljava/security/MessageDigest;
    //   5: aload_0
    //   6: invokevirtual getBytes : ()[B
    //   9: invokevirtual digest : ([B)[B
    //   12: astore_0
    //   13: new java/lang/StringBuffer
    //   16: dup
    //   17: invokespecial  : ()V
    //   20: astore #4
    //   22: aload_0
    //   23: arraylength
    //   24: istore_2
    //   25: iconst_0
    //   26: istore_1
    //   27: goto -> 84
    //   30: iload_3
    //   31: sipush #255
    //   34: iand
    //   35: invokestatic toHexString : (I)Ljava/lang/String;
    //   38: astore #5
    //   40: aload #5
    //   42: invokevirtual length : ()I
    //   45: iconst_1
    //   46: if_icmpne -> 57
    //   49: aload #4
    //   51: ldc '0'
    //   53: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   56: pop
    //   57: aload #4
    //   59: aload #5
    //   61: invokevirtual append : (Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   64: pop
    //   65: goto -> 96
    //   68: aload #4
    //   70: invokevirtual toString : ()Ljava/lang/String;
    //   73: astore_0
    //   74: aload_0
    //   75: areturn
    //   76: astore_0
    //   77: aload_0
    //   78: invokestatic printStackTrace : (Ljava/lang/Throwable;)V
    //   81: ldc ''
    //   83: areturn
    //   84: iload_1
    //   85: iload_2
    //   86: if_icmpge -> 68
    //   89: aload_0
    //   90: iload_1
    //   91: baload
    //   92: istore_3
    //   93: goto -> 30
    //   96: iload_1
    //   97: iconst_1
    //   98: iadd
    //   99: istore_1
    //   100: goto -> 84
    // Exception table:
    //   from	to	target	type
    //   0	25	76	java/security/NoSuchAlgorithmException
    //   30	57	76	java/security/NoSuchAlgorithmException
    //   57	65	76	java/security/NoSuchAlgorithmException
    //   68	74	76	java/security/NoSuchAlgorithmException }
}

//目标文件


import com.google.devtools.build.android.desugar.runtime.ThrowableExtension;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {
    public MD5Utils() {
    }

    public static String md5Password(String var0, int var1) {
        NoSuchAlgorithmException var10000;
        label46: {
            int var2;
            StringBuffer var4;
            byte[] var10;
            boolean var10001;
            try {
                var10 = MessageDigest.getInstance("md5").digest(var0.getBytes());
                var4 = new StringBuffer();
                var2 = var10.length;
            } catch (NoSuchAlgorithmException var9) {
                var10000 = var9;
                var10001 = false;
                break label46;
            }

            for(var1 = 0; var1 < var2; ++var1) {
                byte var3 = var10[var1];

                String var5;
                try {
                    var5 = Integer.toHexString(var3 & 255);
                    if (var5.length() == 1) {
                        var4.append("0");
                    }
                } catch (NoSuchAlgorithmException var8) {
                    var10000 = var8;
                    var10001 = false;
                    break label46;
                }

                try {
                    var4.append(var5);
                } catch (NoSuchAlgorithmException var7) {
                    var10000 = var7;
                    var10001 = false;
                    break label46;
                }
            }

            try {
                var0 = var4.toString();
                return var0;
            } catch (NoSuchAlgorithmException var6) {
                var10000 = var6;
                var10001 = false;
            }
        }

        NoSuchAlgorithmException var11 = var10000;
        ThrowableExtension.printStackTrace(var11);
        return "";
    }
}

很清晰明了了,整理一下就ok了。

你可能感兴趣的:(爬虫)