RdpUtils.cs

(开头部分) 7KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
using static Utils.DllUtils;

namespace Utils {
    public static class RdpUtils {


        private static string Encrypt(string password) {
            byte[] bytes = Encoding.Unicode.GetBytes(password);
            DATA_BLOB dATA_BLOB = default;
            DATA_BLOB dATA_BLOB2 = default;
            DATA_BLOB dATA_BLOB3 = default;
            dATA_BLOB.cbData = bytes.Length;
            dATA_BLOB.pbData = Marshal.AllocHGlobal(bytes.Length);
            Marshal.Copy(bytes, 0, dATA_BLOB.pbData, bytes.Length);
            dATA_BLOB3.cbData = 0;
            dATA_BLOB3.pbData = IntPtr.Zero;
            dATA_BLOB2.cbData = 0;
            dATA_BLOB2.pbData = IntPtr.Zero;
            CRYPTPROTECT_PROMPTSTRUCT cRYPTPROTECT_PROMPTSTRUCT = new CRYPTPROTECT_PROMPTSTRUCT {
                cbSize = Marshal.SizeOf(typeof(CRYPTPROTECT_PROMPTSTRUCT)),
                dwPromptFlags = 0,
                hwndApp = IntPtr.Zero,
                szPrompt = null
            };
            if (CryptProtectData(ref dATA_BLOB, "psw", ref dATA_BLOB3, IntPtr.Zero, ref cRYPTPROTECT_PROMPTSTRUCT, 1, ref dATA_BLOB2)) {
                if (IntPtr.Zero != dATA_BLOB.pbData) {
                    Marshal.FreeHGlobal(dATA_BLOB.pbData);
                }
                if (IntPtr.Zero != dATA_BLOB3.pbData) {
                    Marshal.FreeHGlobal(dATA_BLOB3.pbData);
                }
                byte[] array = new byte[dATA_BLOB2.cbData];
                Marshal.Copy(dATA_BLOB2.pbData, array, 0, dATA_BLOB2.cbData);
                return BitConverter.ToString(array).Replace("-", string.Empty);
            }
            return string.Empty;

        }
        /*
         * 创建rdp文件
         * filename 要创建的rdp文件名,可以绝对路径,也可以相对路径
         * address 服务器地址
         * username 用户名
         * password 密码
         * */
        public static void CreateProfile(string filename, string address, string username, string password) {

            if (!File.Exists(filename)) {
                // 取得该文件的目录,如果文件名为相对路径,且只有文件名,那么路径赋值空格,当为空格的时候,不会对路径进行操作
                string directory = filename.IndexOf("\\") > -1 ? filename.Substring(0, filename.LastIndexOf("\\")) : "";
                if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) {
                    Directory.CreateDirectory(directory);
                }
                using (StreamWriter streamWriter = new StreamWriter(filename, true)) {
                    streamWriter.WriteLine("allow desktop composition:i:0");
                    streamWriter.WriteLine("allow font smoothing:i:0");
后面还有 83 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。