Last active
March 27, 2021 13:00
-
-
Save MewX/0294f004a2a8ede26a94f4a38df392e5 to your computer and use it in GitHub Desktop.
ConTenDo Viewer debugging logs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.b.a.a.a.c; | |
import com.b.a.a.a; | |
import com.b.a.a.a.b.b; | |
import java.util.WeakHashMap; | |
public class a implements a { | |
private static WeakHashMap<Object, byte[]> b = (WeakHashMap)new WeakHashMap<>(); | |
public static Object a(byte[] paramArrayOfbyte) { | |
Object object = new Object(); | |
b.put(object, paramArrayOfbyte); | |
return object; | |
} | |
public static byte[] a(byte[] paramArrayOfbyte1, byte[] paramArrayOfbyte2) { | |
byte[] arrayOfByte1 = new byte[paramArrayOfbyte1.length]; | |
byte[] arrayOfByte2 = new byte[paramArrayOfbyte2.length]; | |
System.arraycopy(paramArrayOfbyte2, 0, arrayOfByte2, 0, paramArrayOfbyte2.length); | |
b b = new b(paramArrayOfbyte1.length, 2, paramArrayOfbyte2.length, 4); | |
byte[] arrayOfByte3 = new byte[Math.min(paramArrayOfbyte2.length, 64)]; | |
b.nextBytes(arrayOfByte3); | |
byte b1 = 0; | |
int i = arrayOfByte3.length; | |
while (b1 < i) { | |
arrayOfByte2[b1] = (byte)((arrayOfByte2[b1] ^ arrayOfByte3[b1]) & 0xFF); | |
b1++; | |
} | |
a(arrayOfByte1, 0, paramArrayOfbyte1, arrayOfByte2, 0, 0, paramArrayOfbyte1.length); | |
return arrayOfByte1; | |
} | |
public static void a(byte[] paramArrayOfbyte1, int paramInt1, byte[] paramArrayOfbyte2, byte[] paramArrayOfbyte3, int paramInt2, int paramInt3, int paramInt4) { | |
int i = paramArrayOfbyte3.length; | |
int j = paramInt2 % i; | |
int k = paramInt2; | |
for (byte b = 0; b < paramInt4; b++) { | |
paramArrayOfbyte1[paramInt1++] = (byte)(paramArrayOfbyte2[paramInt3++] ^ paramArrayOfbyte3[j] ^ (k ^ k >> 8 ^ k >> 16 ^ k >> 24) & 0xFF); | |
if (++j >= i) | |
j = 0; | |
k++; | |
} | |
} | |
public static void a(byte[] paramArrayOfbyte1, int paramInt1, byte[] paramArrayOfbyte2, Object paramObject, int paramInt2, int paramInt3, int paramInt4) { | |
byte[] arrayOfByte = b.get(paramObject); | |
a(paramArrayOfbyte1, paramInt1, paramArrayOfbyte2, arrayOfByte, paramInt2, paramInt3, paramInt4); | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The API file | |
// Another reference | |
public Object a(byte[] paramArrayOfbyte) { | |
if (paramArrayOfbyte.length >= 1024 && ((paramArrayOfbyte[0] == 73 && paramArrayOfbyte[1] == 71 && paramArrayOfbyte[2] == 69 && paramArrayOfbyte[3] == 70) || (paramArrayOfbyte[0] == 67 && paramArrayOfbyte[1] == 68 && paramArrayOfbyte[2] == 69 && paramArrayOfbyte[3] == 70))) { | |
if (paramArrayOfbyte.length != 1024) { | |
byte[] arrayOfByte = new byte[1024]; | |
System.arraycopy(paramArrayOfbyte, 0, arrayOfByte, 0, 1024); | |
paramArrayOfbyte = arrayOfByte; | |
} | |
int i = b(paramArrayOfbyte); | |
if (i != 0) | |
return this.h.a(i); // turns out to be a digest algorithm. | |
} | |
return null; | |
} | |
// Looks like decryption, the keys in encrypted files actually have overlaps. | |
private int b(byte[] paramArrayOfbyte) { | |
if (!this.q.get()) | |
throw new f(b.a.getString("requireLogin")); | |
byte[] arrayOfByte1 = new byte[12]; | |
byte[] arrayOfByte2 = new byte[12]; | |
System.arraycopy(paramArrayOfbyte, 4, arrayOfByte1, 0, 12); | |
System.arraycopy(paramArrayOfbyte, 16, arrayOfByte2, 0, 12); | |
String str1 = (new String(paramArrayOfbyte, 28, 32)).intern(); | |
String str2 = a.a(this.n, str1); | |
if (str2 != null) { | |
int i = this.h.a(str2.getBytes()); | |
this.h.b(this.h.b()); | |
return i; | |
} | |
return 0; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Looks like the decryption | |
public synchronized byte[] b() { | |
byte[] arrayOfByte = null; | |
try { | |
byte[] arrayOfByte1 = this.e.a(); | |
this.g = null; | |
byte[] arrayOfByte2 = c(); | |
int i = 0; | |
int j = 0; | |
while (arrayOfByte == null) { | |
if (i) | |
arrayOfByte = new byte[i + 4]; | |
int m = 0; | |
m = com.b.a.a.a.a.a.a(arrayOfByte, 1, m); | |
m = a(arrayOfByte, arrayOfByte1, m); | |
j = m; | |
m = a(arrayOfByte, arrayOfByte2, m); | |
m = a(arrayOfByte, (Collection<byte[]>)this.c, m); | |
i = m; | |
} | |
int k; | |
for (k = j; k < i; k++) | |
arrayOfByte[k] = (byte)((arrayOfByte[k] ^ this.e.nextInt(256)) & 0xFF); | |
this.h.reset(); | |
this.h.update(arrayOfByte, 0, i); | |
com.b.a.a.a.a.a.a(arrayOfByte, (int)(this.h.getValue() & 0xFFFFFFFFFFFFFFFFL), i); | |
if (this.d != null) | |
for (k = 0; k < this.d.length; k++) | |
this.d[k] = null; | |
if (this.c != null) | |
this.c.clear(); | |
} catch (Throwable throwable) {} | |
return arrayOfByte; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protected boolean y() throws IOException { | |
this.s = false; | |
FileInputStream fileInputStream = new FileInputStream(c()); | |
try { | |
byte[] arrayOfByte = new byte[4]; | |
int i = fileInputStream.read(arrayOfByte); | |
if (i == 4 && ((arrayOfByte[0] == 73 && arrayOfByte[1] == 71 && arrayOfByte[2] == 69 && arrayOfByte[3] == 70) || (arrayOfByte[0] == 67 && arrayOfByte[1] == 68 && arrayOfByte[2] == 69 && arrayOfByte[3] == 70))) | |
this.s = true; | |
} finally { | |
fileInputStream.close(); | |
} | |
if (super.y()) | |
return true; | |
if (this.s && !com.b.a.a.a().h()) | |
throw new f(b.a.getString("requireLogin")); | |
return false; | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Should trace this | |
@FXML | |
private void openAction(ActionEvent paramActionEvent) { | |
if (this.b != null) { | |
File file = this.b.h(); | |
try { | |
b b1 = d.a(file); | |
this.d.a((b)b1); | |
} catch (Exception exception) { | |
a.log(Level.WARNING, ", exception); | |
} | |
} else { | |
this.d.a(this.c); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment