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();
}
}