The shipped VncThumbnailViewerWin1.4.2.exe is a native launcher stub with a Java JAR appended. This commit adds: - src/: full Java source recovered from the bundled .class files (CFR), plus src/summary.txt with decompiler caveats - ANALYSIS.md: architecture, data flow, hosts-file format, and security notes - build-app-image.ps1: reproducible jpackage build that repackages the original classes and bundles a slim jlinked runtime (java.base + java.desktop) into a self-contained native app-image (no Java required on the target) The 74 MB app-image is shipped as a release asset rather than tracked. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
54 lines
1.8 KiB
Java
54 lines
1.8 KiB
Java
/*
|
|
* Decompiled with CFR 0.152.
|
|
*/
|
|
import java.applet.Applet;
|
|
import java.io.IOException;
|
|
import java.net.Socket;
|
|
|
|
class HTTPConnectSocketFactory
|
|
implements SocketFactory {
|
|
HTTPConnectSocketFactory() {
|
|
}
|
|
|
|
public Socket createSocket(String string, int n, Applet applet) throws IOException {
|
|
return this.createSocket(string, n, applet.getParameter("PROXYHOST1"), applet.getParameter("PROXYPORT1"));
|
|
}
|
|
|
|
public Socket createSocket(String string, int n, String[] stringArray) throws IOException {
|
|
return this.createSocket(string, n, this.readArg(stringArray, "PROXYHOST1"), this.readArg(stringArray, "PROXYPORT1"));
|
|
}
|
|
|
|
public Socket createSocket(String string, int n, String string2, String string3) throws IOException {
|
|
int n2 = 0;
|
|
if (string3 != null) {
|
|
try {
|
|
n2 = Integer.parseInt(string3);
|
|
}
|
|
catch (NumberFormatException numberFormatException) {
|
|
// empty catch block
|
|
}
|
|
}
|
|
if (string2 == null || n2 == 0) {
|
|
System.out.println("Incomplete parameter list for HTTPConnectSocket");
|
|
return new Socket(string, n);
|
|
}
|
|
System.out.println("HTTP CONNECT via proxy " + string2 + " port " + n2);
|
|
HTTPConnectSocket hTTPConnectSocket = new HTTPConnectSocket(string, n, string2, n2);
|
|
return hTTPConnectSocket;
|
|
}
|
|
|
|
private String readArg(String[] stringArray, String string) {
|
|
for (int i = 0; i < stringArray.length; i += 2) {
|
|
if (!stringArray[i].equalsIgnoreCase(string)) continue;
|
|
try {
|
|
return stringArray[i + 1];
|
|
}
|
|
catch (Exception exception) {
|
|
return null;
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
|