Luсky+Рatcher v11.3.3版本的 MD5 值为:fcc08dfa98a57a21951c5463e292fdaf

以下内容为反编译后的 C1584.java 源代码,内容仅作参考


package javaroot.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import net.lingala.zip4j.util.InternalZipConstants;
import org.jf.dexlib2.analysis.RegisterType;
import p037.C2500;
import sun.security.util.DerValue;

public class C1584 {

    class C1585 {
        C1585() {
        }
    }

    public static void main(String[] strArr) {
        File file;
        String str;
        MappedByteBuffer map;
        String str2 = "Error: core.odex not found!\n\nPlease Odex core.jar and try again!";
        C2500.m7142(new C1585());
        byte[] bArr = {57, 102, 8, 0, 57, 102, 4, 0, RegisterType.REFERENCE, DerValue.tag_IA5String, RegisterType.REFERENCE, 6, RegisterType.REFERENCE, 6, RegisterType.DOUBLE_HI, 6};
        byte[] bArr2 = {0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
        byte[] bArr3 = {RegisterType.REFERENCE, 102, 56, 102, 102, 102, 26, 102, 102, 102, 26, 102, 102, 102, 113, 102, 102, 102, 102, 102, 19, 102, -19, -1};
        byte[] bArr4 = {0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0};
        byte[] bArr5 = {DerValue.TAG_CONTEXT, 0, 57, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 53, -120, 102, 102, 26};
        byte[] bArr6 = {0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0};
        try {
            file = new File("/system/framework/core.odex");
            try {
                if (!file.exists()) {
                    String[] strArr2 = {"/data/dalvik-cache/", "/data/dalvik-cache/arm/", "/sd-ext/data/dalvik-cache/", "/cache/dalvik-cache/", "/sd-ext/data/cache/dalvik-cache/", "/data/cache/dalvik-cache/"};
                    int i = 0;
                    for (int i2 = 6; i < i2; i2 = 6) {
                        File file2 = new File(strArr2[i] + "system@framework@core.jar@classes.dex");
                        if (file2.exists()) {
                            System.out.println("Dalvik Cache (" + file2.toString() + ")!");
                            file = file2;
                        }
                        i++;
                    }
                }
            } catch (FileNotFoundException unused) {
                System.out.println("Error: core.odex not found!\n\nPlease Odex core.jar and try again!");
                try {
                    try {
                        if (!C2500.m6948("/system/framework/services.jar").exists()) {
                        }
                        File file3 = new File("/system/framework/patch3.done");
                        file3.delete();
                        FileChannel channel = new RandomAccessFile(file, InternalZipConstants.READ_MODE).getChannel();
                        map = channel.map(FileChannel.MapMode.READ_ONLY, 0L, (int) channel.size());
                        while (map.hasRemaining()) {
                            try {
                            } catch (Exception e) {
                                e = e;
                                str = str2;
                            }
                        }
                        str = str2;
                        channel.close();
                    } catch (FileNotFoundException unused2) {
                        str = "Error: core.odex not found!\n\nPlease Odex core.jar and try again!";
                    }
                } catch (Exception e2) {
                    System.out.println("Exception e" + e2.toString());
                }
                C2500.m6899();
                return;
            } catch (Exception e3) {
                e = e3;
                System.out.println("Exception e" + e.toString());
                if (!C2500.m6948("/system/framework/services.jar").exists()) {
                }
                File file32 = new File("/system/framework/patch3.done");
                file32.delete();
                FileChannel channel2 = new RandomAccessFile(file, InternalZipConstants.READ_MODE).getChannel();
                map = channel2.map(FileChannel.MapMode.READ_ONLY, 0L, (int) channel2.size());
                while (map.hasRemaining()) {
                }
                str = str2;
                channel2.close();
                C2500.m6899();
                return;
            }
        } catch (FileNotFoundException unused3) {
            file = null;
        } catch (Exception e4) {
            e = e4;
            file = null;
        }
        if (file.exists()) {
            File file4 = new File("/system/framework/patch1.done");
            File file5 = new File("/system/framework/patch2.done");
            File file6 = new File("/system/framework/patch1.2.done");
            File file7 = new File("/system/framework/patch3.done");
            file4.delete();
            file5.delete();
            file6.delete();
            file7.delete();
            if (!C2500.m6948("/system/framework/services.jar").exists()) {
                file = new File("/system/framework/services.odex");
                if (!file.exists()) {
                    throw new FileNotFoundException();
                }
            }
            File file322 = new File("/system/framework/patch3.done");
            file322.delete();
            FileChannel channel22 = new RandomAccessFile(file, InternalZipConstants.READ_MODE).getChannel();
            map = channel22.map(FileChannel.MapMode.READ_ONLY, 0L, (int) channel22.size());
            while (map.hasRemaining()) {
                int position = map.position();
                byte b = map.get();
                if (b == bArr[0]) {
                    int i3 = position + 1;
                    map.position(i3);
                    byte b2 = map.get();
                    str = str2;
                    int i4 = 1;
                    while (true) {
                        try {
                            if (b2 != bArr[i4] && bArr2[i4] != 1) {
                                break;
                            }
                            int i5 = i4 + 1;
                            if (i5 == 16) {
                                System.out.println("Core patch3 found!\n");
                                file322.createNewFile();
                                break;
                            } else {
                                i4 = i5;
                                b2 = map.get();
                            }
                        } catch (Exception e5) {
                            e = e5;
                            try {
                                System.out.println("" + e);
                                channel22.close();
                            } catch (FileNotFoundException unused4) {
                                System.out.println(str);
                                C2500.m6899();
                                return;
                            }
                            C2500.m6899();
                            return;
                        }
                    }
                    map.position(i3);
                } else {
                    str = str2;
                }
                if (b == bArr3[0]) {
                    int i6 = position + 1;
                    map.position(i6);
                    byte b3 = map.get();
                    int i7 = 1;
                    while (true) {
                        if (b3 != bArr3[i7] && bArr4[i7] != 1) {
                            break;
                        }
                        int i8 = i7 + 1;
                        if (i8 == 24) {
                            System.out.println("Core patch3 found!\n");
                            file322.createNewFile();
                            break;
                        } else {
                            i7 = i8;
                            b3 = map.get();
                        }
                    }
                    map.position(i6);
                }
                if (b == bArr5[0]) {
                    int i9 = position + 1;
                    map.position(i9);
                    byte b4 = map.get();
                    int i10 = 1;
                    while (true) {
                        if (b4 != bArr5[i10] && bArr6[i10] != 1) {
                            break;
                        }
                        int i11 = i10 + 1;
                        if (i11 == 19) {
                            System.out.println("Core patch3 found!\n");
                            file322.createNewFile();
                            break;
                        } else {
                            i10 = i11;
                            b4 = map.get();
                        }
                    }
                    map.position(i9);
                }
                map.position(position + 1);
                str2 = str;
            }
            str = str2;
            channel22.close();
            C2500.m6899();
            return;
        }
        throw new FileNotFoundException();
    }
}