簡體   English   中英

Java socket遠程桌面連接

[英]Java socket remote desktop connection

嗨,我正在嘗試連接到遠程桌面,但我似乎無法獲取任何數據包,有沒有辦法獲取任何數據包並打印它,無論它包含什么字符和數字,也不管它的大小如何,

任何幫助都很棒,謝謝。

這是我測試它的代碼:

public static void main(String[] args) {
    InetSocketAddress rdpSocket = new InetSocketAddress("127.0.0.1", 3389);
    Socket rdp_Con = new Socket();
    try {
        rdp_Con.connect(rdpSocket);
        if (rdp_Con.isConnected()) {
            System.out.println("Connected To Remote Desktop Checking Packets...");
            int red;
            byte[] buffer = new byte[4096];
            byte[] redData;
            while ((red = rdp_Con.getInputStream().read(buffer)) > -1) {
                redData = new byte[red];
                System.arraycopy(buffer, 0, redData, 0, red);
                System.out.println(Arrays.toString(redData));
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

算了吧。 RDP協議已加密,並從客戶端身份驗證開始。 在成功協商握手之前,RDP服務器將永遠不會向您發送任何內容,並且在進行握手時將對其進行加密。

嘗試其他協議。

你應該understatand RDP連接順序提到這里開始X.224連接請求PDU 這里

        InetSocketAddress rdpSocket = new InetSocketAddress("192.168.52.159", 3389);
    Socket rdp_Con = new Socket();
    try {
        rdp_Con.connect(rdpSocket);
        DataInputStream ins = new DataInputStream(new BufferedInputStream(rdp_Con.getInputStream()));
        DataOutputStream out = new DataOutputStream(new BufferedOutputStream(rdp_Con.getOutputStream()));
        if (rdp_Con.isConnected()) {
           
            System.out.println("Connected To Remote Desktop Checking Packets...");
            //X.224 Connection Request PDU encoded in HEX (hexdump)
            String X224rq ="0300002a25e00000000000436f6f6b69653a206d737473686173683d726f6f740d0a010008000b000000";
            // Convert Hex sequence to byte 
            byte[] bytes = new BigInteger(X224rq ,16).toByteArray();
            //send to RDP server 
            out.write(bytes);
            out.flush();
            //Define packet to be recieved from rdp server
            byte [] packet = new byte[20];
            //read Packets
            ins.readFully(packet,0,10);
            //display Server X.224 Connection Confirm PDU
            System.out.println("recv: " + Hex.toHexString(packet)); 
            // TODO ;continue sequence as described in rdp protocol
            
            }
        } catch (IOException e) {
        e.printStackTrace();
    }
    rdp_Con.close();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM