导航菜单

页面标题

页面副标题

万能钥匙 v1.1.23 - c.java 源代码

正在查看: 万能钥匙 v1.1.23 应用的 c.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package com.finogeeks.lib.applet.debugger.client;

import android.net.LocalSocket;
import android.net.LocalSocketAddress;
import com.finogeeks.lib.applet.f.c.o;
import com.finogeeks.lib.applet.f.c.t;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketAddress;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.net.SocketFactory;

public class c extends SocketFactory implements o {
    private final Map<String, String> b = new LinkedHashMap();
    private final Map<String, String> c = new LinkedHashMap();
    private int d = 1;

    public class a extends Socket {
        private LocalSocket a;

        public a() {
        }

        @Override
        public void bind(SocketAddress socketAddress) {
            this.a.bind(new LocalSocketAddress(socketAddress.toString()));
        }

        @Override
        public void connect(SocketAddress socketAddress, int i) {
            String a = c.this.a(((InetSocketAddress) socketAddress).getAddress());
            if (a == null) {
                throw new IOException("can not find path with this socket");
            }
            LocalSocket localSocket = new LocalSocket();
            this.a = localSocket;
            localSocket.connect(new LocalSocketAddress(a));
        }

        @Override
        public InputStream getInputStream() {
            return this.a.getInputStream();
        }

        @Override
        public OutputStream getOutputStream() {
            return this.a.getOutputStream();
        }

        @Override
        public boolean isConnected() {
            return this.a.isConnected();
        }
    }

    public synchronized String a(InetAddress inetAddress) {
        return this.c.get(inetAddress.getHostName());
    }

    private synchronized String b(String str) {
        String str2;
        str2 = this.b.get(str);
        if (str2 == null) {
            StringBuilder sb = new StringBuilder();
            int i = this.d;
            this.d = i + 1;
            sb.append(i);
            sb.append(".fino");
            str2 = sb.toString();
            this.b.put(str, str2);
            this.c.put(str2, str);
        }
        return str2;
    }

    public t a(String str, String str2, String str3, String str4) {
        t.a c = new t.a().e("http").c(b(str));
        if (str2 != null) {
            c.a(str2);
        }
        if (str3 != null) {
            c.a(str3);
        }
        if (str4 != null) {
            c.a(str4);
        }
        return c.a();
    }

    @Override
    public List<InetAddress> a(String str) {
        return str.endsWith(".fino") ? Collections.singletonList(InetAddress.getByAddress(str, new byte[]{0, 0, 0, 0})) : o.a.a(str);
    }

    @Override
    public Socket createSocket() {
        return new a();
    }

    @Override
    public Socket createSocket(String str, int i) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Socket createSocket(String str, int i, InetAddress inetAddress, int i2) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Socket createSocket(InetAddress inetAddress, int i) {
        throw new UnsupportedOperationException();
    }

    @Override
    public Socket createSocket(InetAddress inetAddress, int i, InetAddress inetAddress2, int i2) {
        throw new UnsupportedOperationException();
    }
}